blob: 4b5444a3cfd82424dec289f7d862251ba8721086 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// 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");
|