2018-04-21 22:15:02 -04:00

42 lines
589 B
JavaScript

"use strict";
class Base {}
Object.defineProperty(Base.prototype, 0, {
value: 0,
writable: true,
configurable: true,
});
Object.defineProperty(Base.prototype, 1, {
value: 1,
writable: true,
configurable: true,
});
let i = 0;
const proper = {
get prop() {
return i++;
},
};
class Obj extends Base {
update() {
super[proper.prop]++;
}
update2() {
super[i]++;
}
}
const obj = new Obj();
obj.update();
expect(i).toBe(1);
expect(obj[0]).toBe(1);
expect(obj[1]).toBe(1);
obj.update2();
expect(i).toBe(1);
expect(obj[0]).toBe(1);
expect(obj[1]).toBe(2);