Allen Wirfs-Brock (2013-08-21T15:27:07.000Z)
domenic at domenicdenicola.com (2013-08-25T01:01:32.873Z)
On Aug 21, 2013, at 7:46 AM, Erik Arvidsson wrote: > I don't think it is worth covering these kind of new scenarios. We are > patching a broken feature here. > > Still, it is easy to allow that if we really wanted to. We can make > ObjectEnvironment [[HasBinding]] do object.[[Get]](@@unscopeable) > every time then. @@unscopable and its interaction with the with state is specified in the ES6 draft that I will release this weak It is specified as Erik describes, @@unscopable is only access when a with is entered. The computability use case was designed to support doesn't involve dynamically adding properties to a with object. Instead, the problem is inherited properties of the with object shadowing out scope bindings. It's possible to opt-out of the mechanism via: ```js Object.mixin( withobj, { [@@unscopable]: [] }); with (withobj) { for (v of values()) ... } ```