| // While |super| is common in classes, it also works in object litterals, |
| // where there is no guarantee of strict mode. Check that we do not somehow |
| // get strict mode semantics when they were not called for |
| |
| // |undefined|, writable: false |
| Object.defineProperty(Object.prototype, "prop", { writable: false }); |
| |
| class strictAssignmentTest { |
| constructor() { |
| // Strict mode. Throws. |
| super.prop = 14; |
| } |
| } |
| |
| assertThrowsInstanceOf(()=>new strictAssignmentTest(), TypeError); |
| |
| // Non-strict. Silent failure. |
| ({ test() { super.prop = 14; } }).test(); |
| |
| assertEq(Object.prototype.prop, undefined); |
| |
| if (typeof reportCompare === 'function') |
| reportCompare(0,0,"OK"); |