W3C home > Mailing lists > Public > whatwg@whatwg.org > April 2010

[whatwg] Adding ECMAScript 5 array extras to HTMLCollection

From: Geoffrey Sneddon <gsneddon@opera.com>
Date: Wed, 28 Apr 2010 10:39:19 +0200
Message-ID: <4BD7F437.4030602@opera.com>
On 27/04/10 20:23, David Bruant wrote:
> Le 27/04/2010 03:54, Geoffrey Sneddon a ?crit :
>> On 26/04/10 19:50, And Clover wrote:
>>> David Flanagan wrote:
>>>
>>>> Rather that trying to make DOM collections feel like arrays,
>>>> how about just giving them a toArray() method?
>>>
>>> I like that, as a practical and explicit (JavaScript-specific)
>>> binding.
>>>
>>> In the longer term, what's the thinking on a more basic change:
>>>
>>> - Require specific DOM interfaces like NodeList, HTMLCollection,
>>> Element etc. to be available for prototype monkey-patching under
>>> their interface names as properties of `window`?
>>>
>>> Then we wouldn't have to worry about what Array-like methods need
>>> to be provided on HTMLCollection, because application and
>>> framework authors could choose whichever they liked to prototype
>>> in.
>>>
>>> IE8/Moz/Op/Saf/Chr already do this to a significant extent, but
>>> there's no standard that says they have to. It would allow DOM
>>> extension to be put on a much less shaky footing than the messy
>>> hack Prototype 1.x uses.
>>>
>>> Is this something that's a reasonable requirement for browsers in
>>>  future?
>>
>> HTML5 through WebIDL and its ECMAScript binding already does
>> require this.
>>
> I can see where interfaces are expected to be exposed
> ([NamedConstructor]) in the global object, but I don't see where it
> is said that the prototype of the constructor must be extensible. I
> don't even see this in the section which is the relevent one in my
> opinion (Interface prototype object) I have read this version of
> WebIDL : http://dev.w3.org/2006/webapi/WebIDL/

Section 4.1.1 Interface object:

> The interface object MUST also have a property named "prototype" with
> attributes { DontDelete, ReadOnly } whose value is an object called
> the interface prototype object. This object provides access to the
> functions that correspond to the operations defined on the interface,
> and is described in more detail in section 4.4.3 below.

-- 
Geoffrey Sneddon ? Opera Software
<http://gsnedders.com/>
<http://www.opera.com/>
Received on Wednesday, 28 April 2010 01:39:19 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:22 UTC