"use strict"; var y = new Proxy({}, { getOwnPropertyDescriptor(target, key) { if (key === "a") { return { configurable: true, get: function(v) {} }; } else { assertEq(key, "b"); return { configurable: true, writable: false, value: 15 }; } }, defineProperty() { throw "not invoked"; } }) // This will invoke [[Set]] on the target, with the proxy as receiver. assertThrowsInstanceOf(() => y.a = 1, TypeError); assertThrowsInstanceOf(() => y.b = 2, TypeError); if (typeof reportCompare === "function") reportCompare(true, true);