mirror of
https://github.com/tc39/test262.git
synced 2025-10-17 22:09:07 +02:00
parent
432bc2b863
commit
ac316607ba
@ -92,7 +92,7 @@ class ClassWithPrivateAccessor extends NonExtensibleBase {
|
||||
|
||||
const a = new ClassWithPrivateAccessor(false);
|
||||
// extensible objects can be extended
|
||||
assert.sameValue(m.publicAccessor, 42);
|
||||
assert.sameValue(a.publicAccessor, 42);
|
||||
|
||||
// where superclass prevented extensions & subclass extended
|
||||
assert.throws(TypeError, function () {
|
||||
|
@ -35,14 +35,14 @@ class ClassWithPrivateField extends TrojanBase {
|
||||
super(obj);
|
||||
this.#val = 42;
|
||||
}
|
||||
val() {
|
||||
return this.#val;
|
||||
static val(obj) {
|
||||
return obj.#val;
|
||||
}
|
||||
}
|
||||
|
||||
const t = new ClassWithPrivateField({});
|
||||
// extensible objects can be extended
|
||||
assert.sameValue(t.val(), 42);
|
||||
assert.sameValue(ClassWithPrivateField.val(t), 42);
|
||||
|
||||
// where superclass prevented extensions & subclass extended
|
||||
assert.throws(TypeError, function () {
|
||||
@ -59,15 +59,14 @@ class ClassWithPrivateMethod extends TrojanBase {
|
||||
#privateMethod() {
|
||||
return 42;
|
||||
};
|
||||
// public methods are on the prototype, so are ok.
|
||||
publicMethod() {
|
||||
return this.#privateMethod();
|
||||
static val(obj) {
|
||||
return obj.#privateMethod();
|
||||
}
|
||||
}
|
||||
|
||||
const m = new ClassWithPrivateMethod({});
|
||||
// extensible objects can be extended
|
||||
assert.sameValue(m.publicMethod(), 42);
|
||||
assert.sameValue(ClassWithPrivateMethod.val(m), 42);
|
||||
|
||||
// where superclass prevented extensions & subclass extended
|
||||
assert.throws(TypeError, function () {
|
||||
@ -84,15 +83,14 @@ class ClassWithPrivateAccessor extends TrojanBase {
|
||||
get #privateAccessor() {
|
||||
return 42;
|
||||
};
|
||||
// public accessors are on the prototype, so are ok.
|
||||
get publicAccessor() {
|
||||
return this.#privateAccessor;
|
||||
static val(obj) {
|
||||
return obj.#privateAccessor;
|
||||
}
|
||||
}
|
||||
|
||||
const a = new ClassWithPrivateAccessor({});
|
||||
// extensible objects can be extended
|
||||
assert.sameValue(m.publicAccessor, 42);
|
||||
assert.sameValue(ClassWithPrivateAccessor.val(a), 42);
|
||||
|
||||
// where superclass prevented extensions & subclass extended
|
||||
assert.throws(TypeError, function () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user