"use strict"; class Base { get test() { return 1; } }; 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.throws(() => { // this requires helpers to be in file (not external), so they // are in "strict" mode code. obj.set(); }); assert.equal(Base.prototype.test, 1); assert.equal(Obj.prototype.test, 2); assert.equal(obj.test, 2);