class base { constructor() { } static found() { this.foundCalled = true; } static get accessor() { assertEq(this, derived); return 45; } notFound() { } } class derived extends base { constructor() { } static found() { throw "NO!"; } static get accessor() { throw "NO!"; } static test() { assertEq(super["notFound"], undefined); super.found(); // foundCalled is set on |derived| specifically. let calledDesc = Object.getOwnPropertyDescriptor(derived, "foundCalled"); assertEq(calledDesc.value, true); assertEq(super.accessor, 45); } } derived.test(); if (typeof reportCompare === 'function') reportCompare(0,0,"OK");