node/deps/v8/test/mjsunit/harmony/private-fields-nonextensible-global-proxy.js
Michaël Zasso 6bbc5596b1
deps: update V8 to 10.2.154.2
PR-URL: https://github.com/nodejs/node/pull/42740
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
2022-04-21 11:54:15 +02:00

26 lines
717 B
JavaScript

// Copyright 2022 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.
class Base {
constructor(arg) {
return arg;
}
}
class ClassNonExtensibleWithPrivateField extends Base {
#privateField = (() => {
Object.preventExtensions(this);
return "defined";
})();
// In case the object has a null prototype, we'll use a static
// method to access the field.
static getPrivateField(obj) { return obj.#privateField; }
constructor(arg) {
super(arg);
}
}
new ClassNonExtensibleWithPrivateField(globalThis);
assertEquals("defined", ClassNonExtensibleWithPrivateField.getPrivateField(globalThis));