[whatwg] Why do HTML*Collection's nameItem need to return 5 different objects?
Ian Hickson
ian at hixie.ch
Fri Dec 14 15:52:28 PST 2012
On Thu, 6 Sep 2012, Simon Pieters wrote:
> On Wed, 05 Sep 2012 22:47:07 +0200, Ian Hickson <ian at hixie.ch> wrote:
> >
> > http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1736
> >
> > Webkit returns undefined, whereas IE, Gecko, and Opera all return an
> > HTMLCollection. (IE returns an HTMLCollection with a tags() method,
> > Gecko and Opera do not. The spec requires an HTMLAllCollection, which
> > is the kind of collection that has a tags() method in the spec; in IE,
> > all collections have a tags() method, and document.all is actually a
> > regular HTMLCollection. We could change the spec here, e.g. to put
> > tags() on all collections or to just forget about tags() on the
> > subcollection here.)
>
> I thought we had agreed to drop tags() everywhere except for the
> document.all collection. I guess the collection returned by
> document.all.foo wasn't discussed back then, though. Opera and Firefox
> don't support tags() there, which suggests it's not needed for compat,
> so maybe the spec should side with Opera/Firefox and return
> HTMLCollection instead of HTMLAllCollection.
Ok, I've made document.all.foo return an HTMLCollection.
On Thu, 6 Sep 2012, Ojan Vafai wrote:
> On Wed, Sep 5, 2012 at 1:47 PM, Ian Hickson <ian at hixie.ch> wrote:
> >
> > For HTMLOptionsElement, the situation is more murky.
> >
> > http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1739
> >
> > From what I can tell, IE doesn't do direct named access, you have to
> > do it via item() or namedItem(). The spec didn't support item() access
> > for names, though all the browsers did. I've filed a bug on DOM Core
> > for that. Using namedItem(), you see that IE returns a live
> > HTMLCollection, the spec returns a live NodeList, WebKit returns a
> > static NodeList, and Opera and Firefox return just the first option.
> > (There's a note in the spec asking if we should switch to
> > HTMLCollection rather than NodeList.)
>
> I haven't followed the details closely enough to know which APIs should
> be returning which types of lists/collections. As a general point
> though, anywhere we can avoid live NodeLists/Collections is a big
> improvement. They impose a significant implementation cost both in terms
> of complexity and in terms of performance impact.
Ok, I've changed to match Opera and Firefox on this one, since that was
the least complex solution.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list