Sam Weinig wrote:
Sergey,

And as for Safari. Yes, it does have document.querySelector, but! because of some reason it doesn't have DocumentSelector/ElementSelector objects exposed, it doesn't return StaticNodeList from document.querySelectorAll, so, the question is - does it now support "Selectors API"? Your answer is "yes". mine, according to your specification - no.

I am curious as to why think there should be DocumentSelector/ElementSelector objects exposed in a conforming UA. The spec states:

The assumption probably arises from the fact that many of the DOM2 interfaces, such as Document, Element, Node, etc. are exposed like that. While it makes sense for some of those because, for example, the have constants defined for them (e.g. Node.ELEMENT_NODE) or because it allows for their prototypes to be extended (e.g. Element.prototype), the value of exposing them for selectors api is questionable at best.

Regarding the returning a StaticNodeList, the implementation in Safari returns an object that implements the StaticNodeList interface, though that happens to be the same as the NodeList interface. One potential issue here is that we don't expose a StaticNodeList constructor on the window (window.StaticNodeList) but instead use the NodeList's constructor.

Given that, I believe it would be better if the spec was more honest about this issue by simply stating that an object implementing the NodeList interface is returned, but that the list is not live. I will consider making that change soon.

--
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/

Reply via email to