Erik Arvidsson (2014-04-30T23:23:28.000Z)
domenic at domenicdenicola.com (2014-05-08T15:11:33.337Z)
The algorithms in the spec bug uses an object and HasOwnProperty check instead of an array and looping from 0 to length - 1. That has a lot of benefits since there are less things that can go wrong (no getters, no toString etc). However, we might want to change to use HasProperty instead of HasOwnProperty, and have a null prototype Object for Array.prototype[Symbol.unscopables]. The reason is that would make it easier to make these more contained. For example, in the DOM world we want to add append to Node [*] and animate to Element. If we used HasProperty we could do something like ```js Node.prototype[Symbol.unscopable] = { __proto__: null, append: true }; Element.prototype[Symbol.unscopable] = { __proto__: Node.prototype[Symbol.unscopable], animate: true }; ``` If we used HasOwnProperty we would either need to change a subclass when a superclass changes or we would need to do the more complicated solution with manually walking the prototype chain in ObjectEnvironment HasBinding. [*] not entirely true, it would go on the ParentNode interface