Source code

Revision control

Copy as Markdown

Other Tools

// Array.of does a strict assignment to the new object's .length.
// The assignment is strict even if the code we're calling from is not strict.
load(libdir + "asserts.js");
function Empty() {}
Empty.of = Array.of;
Object.defineProperty(Empty.prototype, "length", {get: () => 0});
var nothing = new Empty;
nothing.length = 2; // no exception; this is not a strict mode assignment
assertThrowsInstanceOf(() => Empty.of(), TypeError);