Some pseudos can contain selector groups, so it would be more than just split on comma. On Oct 18, 2011 7:40 PM, "Alex Russell" <slightly...@google.com> wrote:
> On Tue, Oct 18, 2011 at 6:00 PM, Erik Arvidsson <a...@chromium.org> wrote: > > On Tue, Oct 18, 2011 at 09:42, Alex Russell <slightly...@google.com> > wrote: > >> Ah, but we don't need to care what CSS thinks of our DOM-only API. We > >> can live and let live by building on ":scope" and specifying find* as > >> syntactic sugar, defined as: > >> > >> HTMLDocument.prototype.find = > >> HTMLElement.prototype.find = function(rootedSelector) { > >> return this.querySelector(":scope " + rootedSelector); > >> } > >> > >> HTMLDocument.prototype.findAll = > >> HTMLElement.prototype.findAll = function(rootedSelector) { > >> return this.querySelectorAll(":scope " + rootedSelector); > >> } > > > > I like the way you think. Can I subscribe to your mailing list? > > Heh. Yes ;-) > > > One thing to point out with the desugar is that it has a bug and most > > JS libs have the same but. querySelectorAll allows multiple selectors, > > separated by a comma and to do this correctly you need to parse the > > selector which of course requires tons of code so no one does this. > > Lets fix that by building this into the platform. > > I agree. I left should have mentioned it. The resolution I think is > most natural is to split on "," and assume that all selectors in the > list are ":scope" prefixed and that. A minor point is how to order the > items in the returned flattened list are ordered (document order? the > natural result of concat()?). > >