testDirectProxyDefineProperty3.js (471B)
1 load(libdir + "asserts.js"); 2 3 /* 4 * Throw a TypeError if the trap defines a new property on a non-extensible 5 * object 6 */ 7 var target = {}; 8 Object.preventExtensions(target); 9 10 var handler = { defineProperty: function (target, name, desc) { return true; } }; 11 12 for (let p of [new Proxy(target, handler), Proxy.revocable(target, handler).proxy]) { 13 assertThrowsInstanceOf(function () { 14 Object.defineProperty(p, 'foo', { configurable: true }); 15 }, TypeError); 16 }