class base { constructor() { } } let seenValues; Object.defineProperty(base.prototype, "minutes", { set(x) { assertEq(x, 525600); seenValues.push(x); } }); Object.defineProperty(base.prototype, "intendent", { set(x) { assertEq(x, "Fred"); seenValues.push(x) } }); const testArr = [525600, "Fred"]; class derived extends base { constructor() { super(); } prepForTest() { seenValues = []; } testAsserts() { assertDeepEq(seenValues, testArr); } testProps() { this.prepForTest(); [super.minutes, super.intendent] = testArr; this.testAsserts(); } testElems() { this.prepForTest(); [super["minutes"], super["intendent"]] = testArr; this.testAsserts(); } } let d = new derived(); d.testProps(); d.testElems(); if (typeof reportCompare === 'function') reportCompare(0,0,"OK");