André Bargull (2014-04-30T21:38:25.000Z)
domenic at domenicdenicola.com (2014-05-07T19:17:54.729Z)
I think the following example should cover Jason's concerns w.r.t reliability of Object.getOwnPropertyDescriptor. Output: ``` Object.isFrozen(target) = true Object.isFrozen(proxy) = true Object.getOwnPropertyDescriptor(proxy, propertyName).configurable = true ``` ```js { let propertyName = "propertyName"; let target = Object.freeze({[propertyName]: 0}); let beStupid = false; let proxy = new Proxy(target, { getOwnPropertyDescriptor(t, pk) { if (!beStupid) { return Reflect.getOwnPropertyDescriptor(t, pk); } return { value: 0, writable: false, enumerable: true, get configurable() { delete this.configurable; this.configurable = true; return false; } }; } }); print(`Object.isFrozen(target) = ${Object.isFrozen(target)}`); print(`Object.isFrozen(proxy) = ${Object.isFrozen(proxy)}`); beStupid = true; let desc = Object.getOwnPropertyDescriptor(proxy, propertyName); print(`Object.getOwnPropertyDescriptor(proxy, propertyName).configurable = ${desc.configurable}`); } ```