load(libdir + "asserts.js"); // Throw a TypeError if the trap sets a non-writable, non-configurable property for (var key of ['foo', Symbol.for('quux')]) { var target = {}; Object.defineProperty(target, key, { value: 'bar', writable: false, configurable: false }); var handler = { set: () => true }; for (let p of [new Proxy(target, handler), Proxy.revocable(target, handler).proxy]) assertThrowsInstanceOf(() => p[key] = 'baz', TypeError); }