load(libdir + "asserts.js"); /* * Throw a TypeError if the trap reports an existing own property as * non-existent on a non-extensible object */ var target = {}; Object.defineProperty(target, 'foo', { configurable: true }); Object.preventExtensions(target); var handler = { getOwnPropertyDescriptor: () => undefined }; for (let p of [new Proxy(target, handler), Proxy.revocable(target, handler).proxy]) assertThrowsInstanceOf(() => Object.getOwnPropertyDescriptor(p, 'foo'), TypeError);