Re: QSA, the problem with ":scope", and naming

On Mon, Oct 31, 2011 at 2:18 PM, Charles Pritchard <chuck@jumis.com> wrote:
> On 10/31/11 2:03 PM, Cameron McCormack wrote:
>>
>> On 31/10/11 1:56 PM, Alex Russell wrote:
>>>
>>> Live NodeList instances don't need to be considered here. They're the
>>> result of an API which generates them, and that API can be described
>>> in terms of Proxies. No need to complicate NodeList or imply that we
>>> need a different type.
>>>
>>> Making NodeList instances real array unifies them all. We can get that
>>> done too.
>>
>> Don't live and static NodeLists use the same prototype?  If they are
>> separate, I don't see any problem with making them "real arrays", but I am
>> not sure what the implications of that are.  Array.isArray == true, I guess?
>>  Do we have that ability within the bounds of ECMAScript yet? Note that we
>> can already make NodeList.prototype === Array.prototype if we want, using
>> appropriate Web IDL annotations.
>
> Array seems to work fine in WebKit:
> document.getElementsByTagName('div').__proto__.__proto__ = Array.prototype;
>
> dojo just reimplements NodeList as an array:
> http://dojotoolkit.org/reference-guide/dojo/NodeList.html

The reason we did it that way is because there's no other way to
create an intermediate type with the magic ".length" property.

> I don't understand what "real array" means, other than the prototype
> equivalence.
>
> If NodeList were an array, what's the behavior of running push on NodeList?
> The list may end up with non-node objects if push is not supplemented.
>
> -Charles
>
>
>

Received on Monday, 31 October 2011 23:27:11 UTC