Source code

Revision control

Copy as Markdown

Other Tools

load(libdir + "asserts.js");
/*
* Throw a TypeError if the trap defines a new property on a non-extensible
* object
*/
var target = {};
Object.preventExtensions(target);
var handler = { defineProperty: function (target, name, desc) { return true; } };
for (let p of [new Proxy(target, handler), Proxy.revocable(target, handler).proxy]) {
assertThrowsInstanceOf(function () {
Object.defineProperty(p, 'foo', { configurable: true });
}, TypeError);
}