Justin Ridgewell ec3722b3f9
Get set helpers (#7687)
* Improve get/set helper

* fixtures

* Edge cases

* Add loose edge cases

* Spec compliant

* Add issue case

* Even more edge cases!

* Final updates

* Fix name

* Use Reflect.{get, set} when available

* Avoid block scoping in loose

* Remove semicolon

* Do not redefine a non-enumerable

* Get strictness from call site, not helpers

* Add called assertions

* Classes are always strict

* Update test fixture
2018-04-11 11:56:59 -04:00

26 lines
437 B
JavaScript

"use strict";
let value = 1;
class Base {
set test(v) {
value = v;
}
}
class Obj extends Base {
set() {
return super.test = 3;
}
}
Object.defineProperty(Obj.prototype, 'test', {
value: 2,
writable: true,
configurable: true,
});
const obj = new Obj();
assert.equal(obj.set(), 3);
assert.equal(value, 3);
assert.equal(Base.prototype.test, undefined);
assert.equal(Obj.prototype.test, 2);
assert.equal(obj.test, 2);