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); | |
} |