36 lines
761 B
JavaScript
36 lines
761 B
JavaScript
|
// Copyright 2019 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
// Flags: --harmony-private-fields
|
||
|
|
||
|
(function CaptureStackTracePrivateSymbol() {
|
||
|
var o = {};
|
||
|
Object.preventExtensions(o);
|
||
|
|
||
|
try { Error.captureStackTrace(o); } catch (e) {}
|
||
|
try { Error.captureStackTrace(o); } catch (e) {}
|
||
|
})();
|
||
|
|
||
|
(function PrivateFieldAfterPreventExtensions() {
|
||
|
class C {
|
||
|
constructor() {
|
||
|
this.x = 1;
|
||
|
Object.preventExtensions(this);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class D extends C {
|
||
|
#i = 42;
|
||
|
|
||
|
set(i) { this.#i = i; }
|
||
|
get(i) { return this.#i; }
|
||
|
}
|
||
|
|
||
|
let d = new D();
|
||
|
d.x = 0.1;
|
||
|
assertEquals(42, d.get());
|
||
|
d.set(43);
|
||
|
assertEquals(43, d.get());
|
||
|
})();
|