1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
let effect = false;
class TestSuper {
constructor() {
}
static bar() {}
}
class Test extends TestSuper {
constructor() {
super();
}
static foo() {}
}
const setEffect = {
get() {
effect = true;
},
};
const addGetters = obj => {
Object.defineProperty(obj, 'x', setEffect);
Object.defineProperty(obj.foo, 'x', setEffect);
Object.defineProperty(obj.bar, 'x', setEffect);
};
const checkEffect = () => {
assert.ok(effect);
effect = false;
};
addGetters(Test);
Test.x;
checkEffect();
Test.foo.x;
checkEffect();
TestSuper.bar.x;
checkEffect();
|