Changeset 174535 in webkit


Ignore:
Timestamp:
Oct 9, 2014, 3:14:29 PM (11 years ago)
Author:
benjamin@webkit.org
Message:

Add the baseline implementation of :not(selectorList)
https://bugs.webkit.org/show_bug.cgi?id=137548

Reviewed by Andreas Kling.

Source/WebCore:

This patch extend the pseudo class :not() to support the new definition
in CSS Selectors level 4.

Instead of supporting a single simple selector, :not() now support
an arbitrary selector list, excepted pseudo elements.

One side effect of this change is :visited and :link are no longer supported
inside :not(). The reason has to do with complexity and performance.
Since :not() and :matches() can have arbitrary selector list, keeping track of
:visited and :link can have many combination superposing, some valid, some invalid.

Supporting :visited and :link should be possible by chaning the way we handle
them for style resolution, but given the limited use cases for such features
I'll wait to see if there is any interest before changing everything.

This patch only covers SelectorChecker to keep things simple. The CSS JIT
will come later.

Tests: fast/css/not-basics.html

fast/css/parsing-css-not-1.html
fast/css/parsing-css-not-2.html
fast/css/parsing-css-not-3.html
fast/css/parsing-css-not-4.html
fast/css/parsing-css-not-5.html
fast/css/parsing-css-not-6.html
fast/css/parsing-css-not-7.html
fast/css/parsing-css-not-8.html
fast/css/parsing-css-not-9.html
fast/css/parsing-css-nth-child-of-4.html
fast/selectors/not-basics.html
fast/selectors/not-nested.html
fast/selectors/not-selector-list.html

  • css/CSSGrammar.y.in:

Rename selectorListDoesNotMatchAnyPseudoElement() to selectorListDoesNotMatchAnyPseudoElement()
since both :not() and :nth-child(An+B of selectorList) have the same requirements at the moment.

  • css/CSSParserValues.cpp:

(WebCore::selectorListMatchesPseudoElement):
The patch adding :matches() introduced the possibility of putting pseudo element
arbitrary deep in a sequence of nested :matches(). Since this case is forbidded
by :not() and :nth-child(An+B of selectorList), selectorListMatchesPseudoElement()
now becomes recursive to find those pseudo elements.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):
CSSOM for the extended :not().

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::determineLinkMatchType):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
Disable the new capabilities from the JIT for now.

LayoutTests:

There are 3 big kind of changes to the tests:
1) The new implementation intentionally breaks :not() of :visited and :link.

Some test for the basic :not(:link) and :not(:visited) are consequently failing.

2) Some tests were ensuring that :not() only support simple selectors, those are

becoming irrelevant.

3) New test for the feature.

This patch intentionally breaks :not(:link). The test fast/history/link-inside-not.html
time out since it is waiting for the link to match.

  • fast/css/invalid-not-with-simple-selector-sequence-expected.txt: Removed.
  • fast/css/invalid-not-with-simple-selector-sequence.html: Removed.

This test originally came from IEtestcenter. None of it is useful, all the "invalid"
cases are now fully functional selectors.

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:

Parsing and CSS OM tests for the new :not().

  • fast/css/parsing-css-matches-5-expected.txt:
  • fast/css/parsing-css-matches-5.html:
  • fast/css/parsing-css-matches-6-expected.txt:
  • fast/css/parsing-css-matches-6.html:
  • fast/css/parsing-css-matches-7-expected.txt:
  • fast/css/parsing-css-matches-7.html:
  • fast/css/parsing-css-matches-8-expected.txt:
  • fast/css/parsing-css-matches-8.html:

Update the tests of :matches() to account for the extended :not().

  • fast/dom/SelectorAPI/resig-SelectorsAPI-test-expected.txt:

Some cases covered by this test are now valid. The test is kept as is for
its historical value, but all the FAIL cover valid use cases in Level 4.

  • platform/mac/css3/selectors3/html/css3-modsel-61-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-83-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-61-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-83-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-61-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-83-expected.txt:
  • platform/mac/fast/selectors/061-expected.txt:
  • platform/mac/fast/selectors/083-expected.txt:

Those tests are changing because of the breakage of :link and :visited.

  • fast/css/not-basics-expected.html: Added.
  • fast/css/not-basics.html: Added.

Basic use cases of the extended :not() that should always style correctly.

  • fast/css/parsing-css-not-1-expected.txt: Added.
  • fast/css/parsing-css-not-1.html: Added.
  • fast/css/parsing-css-not-2-expected.txt: Added.
  • fast/css/parsing-css-not-2.html: Added.
  • fast/css/parsing-css-not-3-expected.txt: Added.
  • fast/css/parsing-css-not-3.html: Added.
  • fast/css/parsing-css-not-4-expected.txt: Added.
  • fast/css/parsing-css-not-4.html: Added.
  • fast/css/parsing-css-not-5-expected.txt: Added.
  • fast/css/parsing-css-not-5.html: Copied from LayoutTests/fast/css/parsing-css-matches-5.html.
  • fast/css/parsing-css-not-6-expected.txt: Added.
  • fast/css/parsing-css-not-6.html: Copied from LayoutTests/fast/css/parsing-css-matches-6.html.
  • fast/css/parsing-css-not-7-expected.txt: Copied from LayoutTests/fast/css/parsing-css-matches-7-expected.txt.
  • fast/css/parsing-css-not-7.html: Copied from LayoutTests/fast/css/parsing-css-matches-7.html.
  • fast/css/parsing-css-not-8-expected.txt: Copied from LayoutTests/fast/css/parsing-css-matches-8-expected.txt.
  • fast/css/parsing-css-not-8.html: Copied from LayoutTests/fast/css/parsing-css-matches-8.html.
  • fast/css/parsing-css-not-9-expected.txt: Added.
  • fast/css/parsing-css-not-9.html: Copied from LayoutTests/fast/css/parsing-css-matches-8.html.

Parsing of :not(). A lot of them were inspired by Yusuke Suzuki's test suite
for :matches(). A lot of test case apply to :not(), the main difference is that
pseudo elements must fail inside :not().

  • fast/css/parsing-css-nth-child-of-4-expected.txt: Added.
  • fast/css/parsing-css-nth-child-of-4.html: Added.

With the introduction of :matches(), it is possible to have arbitrarily deep pseudo elements.
The tests for :not() cover the case fixed with this patch, this addition covers :nth-child(of).

  • fast/selectors/not-basics-expected.txt: Added.
  • fast/selectors/not-basics.html: Added.
  • fast/selectors/not-nested-expected.txt: Added.
  • fast/selectors/not-nested.html: Added.
  • fast/selectors/not-selector-list-expected.txt: Added.
  • fast/selectors/not-selector-list.html: Added.

Test coverage for the new features.

Location:
trunk
Files:
28 added
2 deleted
29 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r174533 r174535  
     12014-10-09  Benjamin Poulain  <benjamin@webkit.org>
     2
     3        Add the baseline implementation of :not(selectorList)
     4        https://bugs.webkit.org/show_bug.cgi?id=137548
     5
     6        Reviewed by Andreas Kling.
     7
     8        There are 3 big kind of changes to the tests:
     9        1) The new implementation intentionally breaks :not() of :visited and :link.
     10           Some test for the basic :not(:link) and :not(:visited) are consequently failing.
     11        2) Some tests were ensuring that :not() only support simple selectors, those are
     12           becoming irrelevant.
     13        3) New test for the feature.
     14
     15        * TestExpectations:
     16        This patch intentionally breaks :not(:link). The test fast/history/link-inside-not.html
     17        time out since it is waiting for the link to match.
     18
     19        * fast/css/invalid-not-with-simple-selector-sequence-expected.txt: Removed.
     20        * fast/css/invalid-not-with-simple-selector-sequence.html: Removed.
     21        This test originally came from IEtestcenter. None of it is useful, all the "invalid"
     22        cases are now fully functional selectors.
     23
     24        * fast/css/css-selector-text-expected.txt:
     25        * fast/css/css-selector-text.html:
     26        * fast/css/css-set-selector-text-expected.txt:
     27        * fast/css/css-set-selector-text.html:
     28        Parsing and CSS OM tests for the new :not().
     29
     30        * fast/css/parsing-css-matches-5-expected.txt:
     31        * fast/css/parsing-css-matches-5.html:
     32        * fast/css/parsing-css-matches-6-expected.txt:
     33        * fast/css/parsing-css-matches-6.html:
     34        * fast/css/parsing-css-matches-7-expected.txt:
     35        * fast/css/parsing-css-matches-7.html:
     36        * fast/css/parsing-css-matches-8-expected.txt:
     37        * fast/css/parsing-css-matches-8.html:
     38        Update the tests of :matches() to account for the extended :not().
     39
     40        * fast/dom/SelectorAPI/resig-SelectorsAPI-test-expected.txt:
     41        Some cases covered by this test are now valid. The test is kept as is for
     42        its historical value, but all the FAIL cover valid use cases in Level 4.
     43
     44        * platform/mac/css3/selectors3/html/css3-modsel-61-expected.txt:
     45        * platform/mac/css3/selectors3/html/css3-modsel-83-expected.txt:
     46        * platform/mac/css3/selectors3/xhtml/css3-modsel-61-expected.txt:
     47        * platform/mac/css3/selectors3/xhtml/css3-modsel-83-expected.txt:
     48        * platform/mac/css3/selectors3/xml/css3-modsel-61-expected.txt:
     49        * platform/mac/css3/selectors3/xml/css3-modsel-83-expected.txt:
     50        * platform/mac/fast/selectors/061-expected.txt:
     51        * platform/mac/fast/selectors/083-expected.txt:
     52        Those tests are changing because of the breakage of :link and :visited.
     53
     54        * fast/css/not-basics-expected.html: Added.
     55        * fast/css/not-basics.html: Added.
     56        Basic use cases of the extended :not() that should always style correctly.
     57
     58        * fast/css/parsing-css-not-1-expected.txt: Added.
     59        * fast/css/parsing-css-not-1.html: Added.
     60        * fast/css/parsing-css-not-2-expected.txt: Added.
     61        * fast/css/parsing-css-not-2.html: Added.
     62        * fast/css/parsing-css-not-3-expected.txt: Added.
     63        * fast/css/parsing-css-not-3.html: Added.
     64        * fast/css/parsing-css-not-4-expected.txt: Added.
     65        * fast/css/parsing-css-not-4.html: Added.
     66        * fast/css/parsing-css-not-5-expected.txt: Added.
     67        * fast/css/parsing-css-not-5.html: Copied from LayoutTests/fast/css/parsing-css-matches-5.html.
     68        * fast/css/parsing-css-not-6-expected.txt: Added.
     69        * fast/css/parsing-css-not-6.html: Copied from LayoutTests/fast/css/parsing-css-matches-6.html.
     70        * fast/css/parsing-css-not-7-expected.txt: Copied from LayoutTests/fast/css/parsing-css-matches-7-expected.txt.
     71        * fast/css/parsing-css-not-7.html: Copied from LayoutTests/fast/css/parsing-css-matches-7.html.
     72        * fast/css/parsing-css-not-8-expected.txt: Copied from LayoutTests/fast/css/parsing-css-matches-8-expected.txt.
     73        * fast/css/parsing-css-not-8.html: Copied from LayoutTests/fast/css/parsing-css-matches-8.html.
     74        * fast/css/parsing-css-not-9-expected.txt: Added.
     75        * fast/css/parsing-css-not-9.html: Copied from LayoutTests/fast/css/parsing-css-matches-8.html.
     76        Parsing of :not(). A lot of them were inspired by Yusuke Suzuki's test suite
     77        for :matches(). A lot of test case apply to :not(), the main difference is that
     78        pseudo elements must fail inside :not().
     79
     80        * fast/css/parsing-css-nth-child-of-4-expected.txt: Added.
     81        * fast/css/parsing-css-nth-child-of-4.html: Added.
     82        With the introduction of :matches(), it is possible to have arbitrarily deep pseudo elements.
     83        The tests for :not() cover the case fixed with this patch, this addition covers :nth-child(of).
     84
     85        * fast/selectors/not-basics-expected.txt: Added.
     86        * fast/selectors/not-basics.html: Added.
     87        * fast/selectors/not-nested-expected.txt: Added.
     88        * fast/selectors/not-nested.html: Added.
     89        * fast/selectors/not-selector-list-expected.txt: Added.
     90        * fast/selectors/not-selector-list.html: Added.
     91        Test coverage for the new features.
     92
    1932014-10-09  Simon Fraser  <simon.fraser@apple.com>
    294
  • trunk/LayoutTests/TestExpectations

    r174495 r174535  
    217217# Promises/A+ 2.3.3 has many tests and it sometimes exceeds the time limit.
    218218webkit.org/b/136878 js/promises-tests/promises-tests-2-3-3.html [ Slow ]
     219
     220# Intentional breaking of :not(:link) and :not(:visited) for the development of the extended :not() from CSS Selector Level 4.
     221fast/history/link-inside-not.html [ Failure ]
     222
  • trunk/LayoutTests/fast/css/css-selector-text-expected.txt

    r174259 r174535  
    128128PASS parseThenSerializeRule(':-webkit-any(:matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before)) { }') is ':-webkit-any(:matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before)) { }'
    129129
     130PASS parseThenSerializeRule(':not(div) { }') is ':not(div) { }'
     131PASS parseThenSerializeRule(':not(.div) { }') is ':not(.div) { }'
     132PASS parseThenSerializeRule(':not(#div) { }') is ':not(#div) { }'
     133PASS parseThenSerializeRule(':not([div]) { }') is ':not([div]) { }'
     134PASS parseThenSerializeRule(':not(:empty) { }') is ':not(:empty) { }'
     135PASS parseThenSerializeRule(':not(div.div#div[div]:empty) { }') is ':not(div.div#div[div]:empty) { }'
     136PASS parseThenSerializeRule(':not(div.div:empty[div]#div) { }') is ':not(div.div:empty[div]#div) { }'
     137PASS parseThenSerializeRule(':not(div.div, #div[div], :empty) { }') is ':not(div.div, #div[div], :empty) { }'
     138PASS parseThenSerializeRule(':not(div, .div, #div, [div], :empty) { }') is ':not(div, .div, #div, [div], :empty) { }'
     139PASS parseThenSerializeRule(':not(:not(div)) { }') is ':not(:not(div)) { }'
     140PASS parseThenSerializeRule(':not(:not(div)):not(:not(foo)):not(:not(bar)) { }') is ':not(:not(div)):not(:not(foo)):not(:not(bar)) { }'
     141PASS parseThenSerializeRule(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz)) { }') is ':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz)) { }'
     142PASS parseThenSerializeRule(':not(:matches(*)) { }') is ':not(:matches(*)) { }'
     143PASS parseThenSerializeRule(':not(:matches(foo, bar)) { }') is ':not(:matches(foo, bar)) { }'
     144PASS parseThenSerializeRule(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar])) { }') is ':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar])) { }'
     145PASS parseThenSerializeRule(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar])) { }') is ':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar])) { }'
     146PASS parseThenSerializeRule(':nth-child(2n of :not(a.b, c#d.e)) { }') is ':nth-child(2n of :not(a.b, c#d.e)) { }'
     147PASS parseThenSerializeRule(':not(:nth-child(2n of :not(a.b, c#d.e))) { }') is ':not(:nth-child(2n of :not(a.b, c#d.e))) { }'
     148PASS parseThenSerializeRule(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) { }') is ':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) { }'
     149PASS parseThenSerializeRule('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) { }') is 'a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) { }'
     150
    130151PASS parseThenSerializeRule('::-webkit-file-upload-button { }') is '*::-webkit-file-upload-button { }'
    131152PASS parseThenSerializeRule('::-webkit-search-cancel-button { }') is '*::-webkit-search-cancel-button { }'
     
    197218PASS parseThenSerializeRule(':matches(.ok a> .ok ::first-letter, .ok b   ~.ok :first-line, .ok c .ok    ::after, .ok d + .ok ::before) { }') is ':matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before) { }'
    198219
     220PASS parseThenSerializeRule(':not(single    ) { }') is ':not(single) { }'
     221PASS parseThenSerializeRule(':not(a,b    ,p) { }') is ':not(a, b, p) { }'
     222PASS parseThenSerializeRule(':not(#alice,                   #bob,#chris) { }') is ':not(#alice, #bob, #chris) { }'
     223PASS parseThenSerializeRule(':not(  .selector,#tama,                #hanayo,#midoriko) { }') is ':not(.selector, #tama, #hanayo, #midoriko) { }'
     224PASS parseThenSerializeRule(':not(    .name,#ok,:visited   ) { }') is ':not(.name, #ok, :visited) { }'
     225PASS parseThenSerializeRule(':not(    .name,#ok,    :visited, :link) { }') is ':not(.name, #ok, :visited, :link) { }'
     226PASS parseThenSerializeRule(':not(    .name,#ok,    :not(:visited    )) { }') is ':not(.name, #ok, :not(:visited)) { }'
     227PASS parseThenSerializeRule(':not(.name,  #ok,:not(:link)) { }') is ':not(.name, #ok, :not(:link)) { }'
     228PASS parseThenSerializeRule(':not(.name,#ok,:not(:link)) { }') is ':not(.name, #ok, :not(:link)) { }'
     229PASS parseThenSerializeRule(':not(    .name,#ok,:-webkit-any(   hello)) { }') is ':not(.name, #ok, :-webkit-any(hello)) { }'
     230PASS parseThenSerializeRule(':not(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }') is ':not(.name, #ok, :-webkit-any(.selector,#tama,#hanayo,#midoriko)) { }'
     231PASS parseThenSerializeRule(':not(       [type="file"]) { }') is ':not([type="file"]) { }'
     232PASS parseThenSerializeRule(':not(  :hover    ) { }') is ':not(:hover) { }'
     233PASS parseThenSerializeRule('input:not([type="file"],:hover,:focus):enabled { }') is 'input:not([type="file"], :hover, :focus):enabled { }'
     234PASS parseThenSerializeRule(':not(input[type="file"], a:hover, button:focus) { }') is ':not(input[type="file"], a:hover, button:focus) { }'
     235PASS parseThenSerializeRule(':not( .class1.class2.class3   ) { }') is ':not(.class1.class2.class3) { }'
     236PASS parseThenSerializeRule(':not(.class1:hover   ) { }') is ':not(.class1:hover) { }'
     237PASS parseThenSerializeRule(':not(a.class1.class2.class3:hover   ) { }') is ':not(a.class1.class2.class3:hover) { }'
     238PASS parseThenSerializeRule(':not(:matches(single    ),:matches(a,b    ,p),:matches(#alice,                   #bob,#chris)) { }') is ':not(:matches(single), :matches(a, b, p), :matches(#alice, #bob, #chris)) { }'
     239
    199240PASS successfullyParsed is true
    200241
  • trunk/LayoutTests/fast/css/css-selector-text.html

    r174259 r174535  
    173173debug('');
    174174
     175testSelectorRoundTrip(':not(div)');
     176testSelectorRoundTrip(':not(.div)');
     177testSelectorRoundTrip(':not(#div)');
     178testSelectorRoundTrip(':not([div])');
     179testSelectorRoundTrip(':not(:empty)');
     180testSelectorRoundTrip(':not(div.div#div[div]:empty)');
     181testSelectorRoundTrip(':not(div.div:empty[div]#div)');
     182testSelectorRoundTrip(':not(div.div, #div[div], :empty)');
     183testSelectorRoundTrip(':not(div, .div, #div, [div], :empty)');
     184
     185testSelectorRoundTrip(':not(:not(div))');
     186testSelectorRoundTrip(':not(:not(div)):not(:not(foo)):not(:not(bar))');
     187testSelectorRoundTrip(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))');
     188
     189testSelectorRoundTrip(':not(:matches(*))');
     190testSelectorRoundTrip(':not(:matches(foo, bar))');
     191testSelectorRoundTrip(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))');
     192testSelectorRoundTrip(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))');
     193
     194testSelectorRoundTrip(':nth-child(2n of :not(a.b, c#d.e))');
     195testSelectorRoundTrip(':not(:nth-child(2n of :not(a.b, c#d.e)))');
     196
     197testSelectorRoundTrip(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');
     198testSelectorRoundTrip('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');
     199
     200debug('');
     201
    175202shouldBe("parseThenSerializeRule('::-webkit-file-upload-button { }')", "'*::-webkit-file-upload-button { }'");
    176203shouldBe("parseThenSerializeRule('::-webkit-search-cancel-button { }')", "'*::-webkit-search-cancel-button { }'");
     
    260287debug('');
    261288
     289shouldBe("parseThenSerializeRule(':not(single    ) { }')", "':not(single) { }'");
     290shouldBe("parseThenSerializeRule(':not(a,b    ,p) { }')", "':not(a, b, p) { }'");
     291shouldBe("parseThenSerializeRule(':not(#alice,                   #bob,#chris) { }')", "':not(#alice, #bob, #chris) { }'");
     292shouldBe("parseThenSerializeRule(':not(  .selector,#tama,                #hanayo,#midoriko) { }')", "':not(.selector, #tama, #hanayo, #midoriko) { }'");
     293shouldBe("parseThenSerializeRule(':not(    .name,#ok,:visited   ) { }')", "':not(.name, #ok, :visited) { }'");
     294shouldBe("parseThenSerializeRule(':not(    .name,#ok,    :visited, :link) { }')", "':not(.name, #ok, :visited, :link) { }'");
     295shouldBe("parseThenSerializeRule(':not(    .name,#ok,    :not(:visited    )) { }')", "':not(.name, #ok, :not(:visited)) { }'");
     296shouldBe("parseThenSerializeRule(':not(.name,  #ok,:not(:link)) { }')", "':not(.name, #ok, :not(:link)) { }'");
     297shouldBe("parseThenSerializeRule(':not(.name,#ok,:not(:link)) { }')", "':not(.name, #ok, :not(:link)) { }'");
     298shouldBe("parseThenSerializeRule(':not(    .name,#ok,:-webkit-any(   hello)) { }')", "':not(.name, #ok, :-webkit-any(hello)) { }'");
     299shouldBe("parseThenSerializeRule(':not(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }')", "':not(.name, #ok, :-webkit-any(.selector,#tama,#hanayo,#midoriko)) { }'");
     300shouldBe("parseThenSerializeRule(':not(       [type=\"file\"]) { }')", "':not([type=\"file\"]) { }'");
     301shouldBe("parseThenSerializeRule(':not(  :hover    ) { }')", "':not(:hover) { }'");
     302shouldBe("parseThenSerializeRule('input:not([type=\"file\"],:hover,:focus):enabled { }')", "'input:not([type=\"file\"], :hover, :focus):enabled { }'");
     303shouldBe("parseThenSerializeRule(':not(input[type=\"file\"], a:hover, button:focus) { }')", "':not(input[type=\"file\"], a:hover, button:focus) { }'");
     304shouldBe("parseThenSerializeRule(':not( .class1.class2.class3   ) { }')", "':not(.class1.class2.class3) { }'");
     305shouldBe("parseThenSerializeRule(':not(.class1:hover   ) { }')", "':not(.class1:hover) { }'");
     306shouldBe("parseThenSerializeRule(':not(a.class1.class2.class3:hover   ) { }')", "':not(a.class1.class2.class3:hover) { }'");
     307shouldBe("parseThenSerializeRule(':not(:matches(single    ),:matches(a,b    ,p),:matches(#alice,                   #bob,#chris)) { }')", "':not(:matches(single), :matches(a, b, p), :matches(#alice, #bob, #chris)) { }'");
     308
     309debug('');
     310
    262311</script>
    263312<script src="../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/fast/css/css-set-selector-text-expected.txt

    r174259 r174535  
    138138PASS setThenReadSelectorText(':-webkit-any(:matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before))') is ':-webkit-any(:matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before))'
    139139
     140PASS setThenReadSelectorText(':not(div)') is ':not(div)'
     141PASS setThenReadSelectorText(':not(.div)') is ':not(.div)'
     142PASS setThenReadSelectorText(':not(#div)') is ':not(#div)'
     143PASS setThenReadSelectorText(':not([div])') is ':not([div])'
     144PASS setThenReadSelectorText(':not(:empty)') is ':not(:empty)'
     145PASS setThenReadSelectorText(':not(div.div#div[div]:empty)') is ':not(div.div#div[div]:empty)'
     146PASS setThenReadSelectorText(':not(div.div:empty[div]#div)') is ':not(div.div:empty[div]#div)'
     147PASS setThenReadSelectorText(':not(div.div, #div[div], :empty)') is ':not(div.div, #div[div], :empty)'
     148PASS setThenReadSelectorText(':not(div, .div, #div, [div], :empty)') is ':not(div, .div, #div, [div], :empty)'
     149PASS setThenReadSelectorText(':not(:not(div))') is ':not(:not(div))'
     150PASS setThenReadSelectorText(':not(:not(div)):not(:not(foo)):not(:not(bar))') is ':not(:not(div)):not(:not(foo)):not(:not(bar))'
     151PASS setThenReadSelectorText(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))') is ':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))'
     152PASS setThenReadSelectorText(':not(:matches(*))') is ':not(:matches(*))'
     153PASS setThenReadSelectorText(':not(:matches(foo, bar))') is ':not(:matches(foo, bar))'
     154PASS setThenReadSelectorText(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))') is ':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))'
     155PASS setThenReadSelectorText(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))') is ':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))'
     156PASS setThenReadSelectorText(':nth-child(2n of :not(a.b, c#d.e))') is ':nth-child(2n of :not(a.b, c#d.e))'
     157PASS setThenReadSelectorText(':not(:nth-child(2n of :not(a.b, c#d.e)))') is ':not(:nth-child(2n of :not(a.b, c#d.e)))'
     158PASS setThenReadSelectorText(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)') is ':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)'
     159PASS setThenReadSelectorText('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)') is 'a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)'
     160
    140161PASS setThenReadSelectorText('::-webkit-file-upload-button') is '*::-webkit-file-upload-button'
    141162PASS setThenReadSelectorText('::-webkit-search-cancel-button') is '*::-webkit-search-cancel-button'
     
    207228PASS setThenReadSelectorText(':matches(.ok a> .ok ::first-letter, .ok b   ~.ok :first-line, .ok c .ok    ::after, .ok d + .ok ::before)') is ':matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before)'
    208229
     230PASS setThenReadSelectorText(':not(single    )') is ':not(single)'
     231PASS setThenReadSelectorText(':not(a,b    ,p)') is ':not(a, b, p)'
     232PASS setThenReadSelectorText(':not(#alice,                   #bob,#chris)') is ':not(#alice, #bob, #chris)'
     233PASS setThenReadSelectorText(':not(  .selector,#tama,                #hanayo,#midoriko)') is ':not(.selector, #tama, #hanayo, #midoriko)'
     234PASS setThenReadSelectorText(':not(    .name,#ok,:visited   )') is ':not(.name, #ok, :visited)'
     235PASS setThenReadSelectorText(':not(    .name,#ok,    :visited, :link)') is ':not(.name, #ok, :visited, :link)'
     236PASS setThenReadSelectorText(':not(    .name,#ok,    :not(:visited    ))') is ':not(.name, #ok, :not(:visited))'
     237PASS setThenReadSelectorText(':not(.name,  #ok,:not(:link))') is ':not(.name, #ok, :not(:link))'
     238PASS setThenReadSelectorText(':not(.name,#ok,:not(:link))') is ':not(.name, #ok, :not(:link))'
     239PASS setThenReadSelectorText(':not(    .name,#ok,:-webkit-any(   hello))') is ':not(.name, #ok, :-webkit-any(hello))'
     240PASS setThenReadSelectorText(':not(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))') is ':not(.name, #ok, :-webkit-any(.selector,#tama,#hanayo,#midoriko))'
     241PASS setThenReadSelectorText(':not(       [type="file"])') is ':not([type="file"])'
     242PASS setThenReadSelectorText(':not(  :hover    )') is ':not(:hover)'
     243PASS setThenReadSelectorText('input:not([type="file"],:hover,:focus):enabled') is 'input:not([type="file"], :hover, :focus):enabled'
     244PASS setThenReadSelectorText(':not(input[type="file"], a:hover, button:focus)') is ':not(input[type="file"], a:hover, button:focus)'
     245PASS setThenReadSelectorText(':not( .class1.class2.class3   )') is ':not(.class1.class2.class3)'
     246PASS setThenReadSelectorText(':not(.class1:hover   )') is ':not(.class1:hover)'
     247PASS setThenReadSelectorText(':not(a.class1.class2.class3:hover   )') is ':not(a.class1.class2.class3:hover)'
     248PASS setThenReadSelectorText(':not(:matches(single    ),:matches(a,b    ,p),:matches(#alice,                   #bob,#chris))') is ':not(:matches(single), :matches(a, b, p), :matches(#alice, #bob, #chris))'
     249
    209250PASS successfullyParsed is true
    210251
  • trunk/LayoutTests/fast/css/css-set-selector-text.html

    r174259 r174535  
    189189debug('');
    190190
     191testSelectorRoundTrip(':not(div)');
     192testSelectorRoundTrip(':not(.div)');
     193testSelectorRoundTrip(':not(#div)');
     194testSelectorRoundTrip(':not([div])');
     195testSelectorRoundTrip(':not(:empty)');
     196testSelectorRoundTrip(':not(div.div#div[div]:empty)');
     197testSelectorRoundTrip(':not(div.div:empty[div]#div)');
     198testSelectorRoundTrip(':not(div.div, #div[div], :empty)');
     199testSelectorRoundTrip(':not(div, .div, #div, [div], :empty)');
     200
     201testSelectorRoundTrip(':not(:not(div))');
     202testSelectorRoundTrip(':not(:not(div)):not(:not(foo)):not(:not(bar))');
     203testSelectorRoundTrip(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))');
     204
     205testSelectorRoundTrip(':not(:matches(*))');
     206testSelectorRoundTrip(':not(:matches(foo, bar))');
     207testSelectorRoundTrip(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))');
     208testSelectorRoundTrip(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))');
     209
     210testSelectorRoundTrip(':nth-child(2n of :not(a.b, c#d.e))');
     211testSelectorRoundTrip(':not(:nth-child(2n of :not(a.b, c#d.e)))');
     212
     213testSelectorRoundTrip(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');
     214testSelectorRoundTrip('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');
     215
     216debug('');
     217
    191218shouldBe("setThenReadSelectorText('::-webkit-file-upload-button')", "'*::-webkit-file-upload-button'");
    192219shouldBe("setThenReadSelectorText('::-webkit-search-cancel-button')", "'*::-webkit-search-cancel-button'");
     
    276303debug('');
    277304
     305shouldBe("setThenReadSelectorText(':not(single    )')", "':not(single)'");
     306shouldBe("setThenReadSelectorText(':not(a,b    ,p)')", "':not(a, b, p)'");
     307shouldBe("setThenReadSelectorText(':not(#alice,                   #bob,#chris)')", "':not(#alice, #bob, #chris)'");
     308shouldBe("setThenReadSelectorText(':not(  .selector,#tama,                #hanayo,#midoriko)')", "':not(.selector, #tama, #hanayo, #midoriko)'");
     309shouldBe("setThenReadSelectorText(':not(    .name,#ok,:visited   )')", "':not(.name, #ok, :visited)'");
     310shouldBe("setThenReadSelectorText(':not(    .name,#ok,    :visited, :link)')", "':not(.name, #ok, :visited, :link)'");
     311shouldBe("setThenReadSelectorText(':not(    .name,#ok,    :not(:visited    ))')", "':not(.name, #ok, :not(:visited))'");
     312shouldBe("setThenReadSelectorText(':not(.name,  #ok,:not(:link))')", "':not(.name, #ok, :not(:link))'");
     313shouldBe("setThenReadSelectorText(':not(.name,#ok,:not(:link))')", "':not(.name, #ok, :not(:link))'");
     314shouldBe("setThenReadSelectorText(':not(    .name,#ok,:-webkit-any(   hello))')", "':not(.name, #ok, :-webkit-any(hello))'");
     315shouldBe("setThenReadSelectorText(':not(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))')", "':not(.name, #ok, :-webkit-any(.selector,#tama,#hanayo,#midoriko))'");
     316shouldBe("setThenReadSelectorText(':not(       [type=\"file\"])')", "':not([type=\"file\"])'");
     317shouldBe("setThenReadSelectorText(':not(  :hover    )')", "':not(:hover)'");
     318shouldBe("setThenReadSelectorText('input:not([type=\"file\"],:hover,:focus):enabled')", "'input:not([type=\"file\"], :hover, :focus):enabled'");
     319shouldBe("setThenReadSelectorText(':not(input[type=\"file\"], a:hover, button:focus)')", "':not(input[type=\"file\"], a:hover, button:focus)'");
     320shouldBe("setThenReadSelectorText(':not( .class1.class2.class3   )')", "':not(.class1.class2.class3)'");
     321shouldBe("setThenReadSelectorText(':not(.class1:hover   )')", "':not(.class1:hover)'");
     322shouldBe("setThenReadSelectorText(':not(a.class1.class2.class3:hover   )')", "':not(a.class1.class2.class3:hover)'");
     323shouldBe("setThenReadSelectorText(':not(:matches(single    ),:matches(a,b    ,p),:matches(#alice,                   #bob,#chris))')", "':not(:matches(single), :matches(a, b, p), :matches(#alice, #bob, #chris))'");
     324
     325debug('');
     326
    278327</script>
    279328<script src="../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/fast/css/parsing-css-matches-5-expected.txt

    r174259 r174535  
    1010PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1111PASS document.querySelector(":matches(,)") threw exception Error: SyntaxError: DOM Exception 12.
    12 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13 PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1412PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1513PASS document.querySelector(":matches(.123class)") threw exception Error: SyntaxError: DOM Exception 12.
  • trunk/LayoutTests/fast/css/parsing-css-matches-5.html

    r174259 r174535  
    2626    ",",
    2727
    28     // Currently not allows functional pseudo classes inside :not.
    29     ":not(:matches(cocoa, cappuccino))",
    30 
    3128    ".123class",
    3229    "#123id",
  • trunk/LayoutTests/fast/css/parsing-css-matches-6-expected.txt

    r174259 r174535  
    1111PASS document.querySelector(":matches(*,,)") threw exception Error: SyntaxError: DOM Exception 12.
    1212PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13 PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    14 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1513PASS document.querySelector(":matches(*,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    1614PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    3937PASS document.querySelector(":matches(foobar,,)") threw exception Error: SyntaxError: DOM Exception 12.
    4038PASS document.getElementById('style-container').sheet.cssRules.length is 0
    41 PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    42 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    4339PASS document.querySelector(":matches(foobar,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    4440PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    6763PASS document.querySelector(":matches(#id,,)") threw exception Error: SyntaxError: DOM Exception 12.
    6864PASS document.getElementById('style-container').sheet.cssRules.length is 0
    69 PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    70 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    7165PASS document.querySelector(":matches(#id,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    7266PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    9589PASS document.querySelector(":matches(.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    9690PASS document.getElementById('style-container').sheet.cssRules.length is 0
    97 PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    98 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    9991PASS document.querySelector(":matches(.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10092PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    123115PASS document.querySelector(":matches(:first-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    124116PASS document.getElementById('style-container').sheet.cssRules.length is 0
    125 PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    126 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    127117PASS document.querySelector(":matches(:first-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    128118PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    151141PASS document.querySelector(":matches(:last-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    152142PASS document.getElementById('style-container').sheet.cssRules.length is 0
    153 PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    154 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    155143PASS document.querySelector(":matches(:last-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    156144PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    179167PASS document.querySelector(":matches(:visited,,)") threw exception Error: SyntaxError: DOM Exception 12.
    180168PASS document.getElementById('style-container').sheet.cssRules.length is 0
    181 PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    182 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    183169PASS document.querySelector(":matches(:visited,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    184170PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    207193PASS document.querySelector(":matches(::first-letter,,)") threw exception Error: SyntaxError: DOM Exception 12.
    208194PASS document.getElementById('style-container').sheet.cssRules.length is 0
    209 PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    210 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    211195PASS document.querySelector(":matches(::first-letter,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    212196PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    235219PASS document.querySelector(":matches(::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    236220PASS document.getElementById('style-container').sheet.cssRules.length is 0
    237 PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    238 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    239221PASS document.querySelector(":matches(::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    240222PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    263245PASS document.querySelector(":matches(::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    264246PASS document.getElementById('style-container').sheet.cssRules.length is 0
    265 PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    266 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    267247PASS document.querySelector(":matches(::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    268248PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    291271PASS document.querySelector(":matches(::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    292272PASS document.getElementById('style-container').sheet.cssRules.length is 0
    293 PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    294 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    295273PASS document.querySelector(":matches(::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    296274PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    319297PASS document.querySelector(":matches(foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    320298PASS document.getElementById('style-container').sheet.cssRules.length is 0
    321 PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    322 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    323299PASS document.querySelector(":matches(foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    324300PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    347323PASS document.querySelector(":matches(.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    348324PASS document.getElementById('style-container').sheet.cssRules.length is 0
    349 PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    350 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    351325PASS document.querySelector(":matches(.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    352326PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    375349PASS document.querySelector(":matches(#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    376350PASS document.getElementById('style-container').sheet.cssRules.length is 0
    377 PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    378 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    379351PASS document.querySelector(":matches(#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    380352PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    403375PASS document.querySelector(":matches(a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    404376PASS document.getElementById('style-container').sheet.cssRules.length is 0
    405 PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    406 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    407377PASS document.querySelector(":matches(a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    408378PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    431401PASS document.querySelector(":matches(a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    432402PASS document.getElementById('style-container').sheet.cssRules.length is 0
    433 PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    434 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    435403PASS document.querySelector(":matches(a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    436404PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    459427PASS document.querySelector(":matches(a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    460428PASS document.getElementById('style-container').sheet.cssRules.length is 0
    461 PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    462 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    463429PASS document.querySelector(":matches(a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    464430PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    487453PASS document.querySelector(":matches(a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    488454PASS document.getElementById('style-container').sheet.cssRules.length is 0
    489 PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    490 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    491455PASS document.querySelector(":matches(a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    492456PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    515479PASS document.querySelector(":matches(a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    516480PASS document.getElementById('style-container').sheet.cssRules.length is 0
    517 PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    518 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    519481PASS document.querySelector(":matches(a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    520482PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    543505PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    544506PASS document.getElementById('style-container').sheet.cssRules.length is 0
    545 PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    546 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    547507PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    548508PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    571531PASS document.querySelector(":matches(:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    572532PASS document.getElementById('style-container').sheet.cssRules.length is 0
    573 PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    574 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    575533PASS document.querySelector(":matches(:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    576534PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    593551PASS document.querySelector(":matches(:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    594552PASS document.getElementById('style-container').sheet.cssRules.length is 0
     553PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     554PASS document.getElementById('style-container').sheet.cssRules.length is 0
     555PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     556PASS document.getElementById('style-container').sheet.cssRules.length is 0
     557PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     558PASS document.getElementById('style-container').sheet.cssRules.length is 0
     559PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     560PASS document.getElementById('style-container').sheet.cssRules.length is 0
     561PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     562PASS document.getElementById('style-container').sheet.cssRules.length is 0
     563PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     564PASS document.getElementById('style-container').sheet.cssRules.length is 0
     565PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     566PASS document.getElementById('style-container').sheet.cssRules.length is 0
     567PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     568PASS document.getElementById('style-container').sheet.cssRules.length is 0
     569PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     570PASS document.getElementById('style-container').sheet.cssRules.length is 0
     571PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     572PASS document.getElementById('style-container').sheet.cssRules.length is 0
     573PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     574PASS document.getElementById('style-container').sheet.cssRules.length is 0
     575PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     576PASS document.getElementById('style-container').sheet.cssRules.length is 0
     577PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     578PASS document.getElementById('style-container').sheet.cssRules.length is 0
    595579PASS document.querySelector(":matches(:nth-child(even of a, b, c),)") threw exception Error: SyntaxError: DOM Exception 12.
    596580PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    598582PASS document.getElementById('style-container').sheet.cssRules.length is 0
    599583PASS document.querySelector(":matches(:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    600 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    601 PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    602584PASS document.getElementById('style-container').sheet.cssRules.length is 0
    603585PASS document.querySelector(":matches(:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
  • trunk/LayoutTests/fast/css/parsing-css-matches-6.html

    r174259 r174535  
    5151    ":-webkit-any(.selector,#tama,#hanayo,#midoriko)",
    5252    ":not(:link)",
     53    ":not(:matches(cocoa, cappuccino))",
    5354    ":nth-child(even of a, b, c)",
    5455];
     
    5960    "    ",
    6061    ",",
    61 
    62     // Currently not allows functional pseudo classes inside :not.
    63     ":not(:matches(cocoa, cappuccino))",
    6462
    6563    ".123class",
  • trunk/LayoutTests/fast/css/parsing-css-matches-7-expected.txt

    r174259 r174535  
    1111PASS document.querySelector(":matches(*,*,,)") threw exception Error: SyntaxError: DOM Exception 12.
    1212PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13 PASS document.querySelector(":matches(*,*,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    14 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1513PASS document.querySelector(":matches(*,*,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    1614PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    3937PASS document.querySelector(":matches(*,#id,,)") threw exception Error: SyntaxError: DOM Exception 12.
    4038PASS document.getElementById('style-container').sheet.cssRules.length is 0
    41 PASS document.querySelector(":matches(*,#id,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    42 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    4339PASS document.querySelector(":matches(*,#id,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    4440PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    6763PASS document.querySelector(":matches(*,:first-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    6864PASS document.getElementById('style-container').sheet.cssRules.length is 0
    69 PASS document.querySelector(":matches(*,:first-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    70 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    7165PASS document.querySelector(":matches(*,:first-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    7266PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    9589PASS document.querySelector(":matches(*,:visited,,)") threw exception Error: SyntaxError: DOM Exception 12.
    9690PASS document.getElementById('style-container').sheet.cssRules.length is 0
    97 PASS document.querySelector(":matches(*,:visited,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    98 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    9991PASS document.querySelector(":matches(*,:visited,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10092PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    123115PASS document.querySelector(":matches(*,::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    124116PASS document.getElementById('style-container').sheet.cssRules.length is 0
    125 PASS document.querySelector(":matches(*,::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    126 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    127117PASS document.querySelector(":matches(*,::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    128118PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    151141PASS document.querySelector(":matches(*,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    152142PASS document.getElementById('style-container').sheet.cssRules.length is 0
    153 PASS document.querySelector(":matches(*,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    154 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    155143PASS document.querySelector(":matches(*,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    156144PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    179167PASS document.querySelector(":matches(*,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    180168PASS document.getElementById('style-container').sheet.cssRules.length is 0
    181 PASS document.querySelector(":matches(*,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    182 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    183169PASS document.querySelector(":matches(*,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    184170PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    207193PASS document.querySelector(":matches(*,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    208194PASS document.getElementById('style-container').sheet.cssRules.length is 0
    209 PASS document.querySelector(":matches(*,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    210 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    211195PASS document.querySelector(":matches(*,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    212196PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    235219PASS document.querySelector(":matches(*,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    236220PASS document.getElementById('style-container').sheet.cssRules.length is 0
    237 PASS document.querySelector(":matches(*,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    238 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    239221PASS document.querySelector(":matches(*,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    240222PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    263245PASS document.querySelector(":matches(*,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    264246PASS document.getElementById('style-container').sheet.cssRules.length is 0
    265 PASS document.querySelector(":matches(*,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    266 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    267247PASS document.querySelector(":matches(*,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    268248PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    291271PASS document.querySelector(":matches(*,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    292272PASS document.getElementById('style-container').sheet.cssRules.length is 0
    293 PASS document.querySelector(":matches(*,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    294 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    295273PASS document.querySelector(":matches(*,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    296274PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    313291PASS document.querySelector(":matches(*,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    314292PASS document.getElementById('style-container').sheet.cssRules.length is 0
     293PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     294PASS document.getElementById('style-container').sheet.cssRules.length is 0
     295PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     296PASS document.getElementById('style-container').sheet.cssRules.length is 0
     297PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     298PASS document.getElementById('style-container').sheet.cssRules.length is 0
     299PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     300PASS document.getElementById('style-container').sheet.cssRules.length is 0
     301PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     302PASS document.getElementById('style-container').sheet.cssRules.length is 0
     303PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     304PASS document.getElementById('style-container').sheet.cssRules.length is 0
     305PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     306PASS document.getElementById('style-container').sheet.cssRules.length is 0
     307PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     308PASS document.getElementById('style-container').sheet.cssRules.length is 0
     309PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     310PASS document.getElementById('style-container').sheet.cssRules.length is 0
     311PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     312PASS document.getElementById('style-container').sheet.cssRules.length is 0
     313PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     314PASS document.getElementById('style-container').sheet.cssRules.length is 0
     315PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     316PASS document.getElementById('style-container').sheet.cssRules.length is 0
     317PASS document.querySelector(":matches(*,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     318PASS document.getElementById('style-container').sheet.cssRules.length is 0
    315319PASS document.querySelector(":matches(#id,#id,)") threw exception Error: SyntaxError: DOM Exception 12.
    316320PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    319323PASS document.querySelector(":matches(#id,#id,,)") threw exception Error: SyntaxError: DOM Exception 12.
    320324PASS document.getElementById('style-container').sheet.cssRules.length is 0
    321 PASS document.querySelector(":matches(#id,#id,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    322 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    323325PASS document.querySelector(":matches(#id,#id,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    324326PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    347349PASS document.querySelector(":matches(#id,:first-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    348350PASS document.getElementById('style-container').sheet.cssRules.length is 0
    349 PASS document.querySelector(":matches(#id,:first-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    350 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    351351PASS document.querySelector(":matches(#id,:first-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    352352PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    375375PASS document.querySelector(":matches(#id,:visited,,)") threw exception Error: SyntaxError: DOM Exception 12.
    376376PASS document.getElementById('style-container').sheet.cssRules.length is 0
    377 PASS document.querySelector(":matches(#id,:visited,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    378 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    379377PASS document.querySelector(":matches(#id,:visited,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    380378PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    403401PASS document.querySelector(":matches(#id,::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    404402PASS document.getElementById('style-container').sheet.cssRules.length is 0
    405 PASS document.querySelector(":matches(#id,::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    406 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    407403PASS document.querySelector(":matches(#id,::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    408404PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    431427PASS document.querySelector(":matches(#id,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    432428PASS document.getElementById('style-container').sheet.cssRules.length is 0
    433 PASS document.querySelector(":matches(#id,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    434 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    435429PASS document.querySelector(":matches(#id,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    436430PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    459453PASS document.querySelector(":matches(#id,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    460454PASS document.getElementById('style-container').sheet.cssRules.length is 0
    461 PASS document.querySelector(":matches(#id,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    462 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    463455PASS document.querySelector(":matches(#id,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    464456PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    487479PASS document.querySelector(":matches(#id,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    488480PASS document.getElementById('style-container').sheet.cssRules.length is 0
    489 PASS document.querySelector(":matches(#id,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    490 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    491481PASS document.querySelector(":matches(#id,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    492482PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    515505PASS document.querySelector(":matches(#id,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    516506PASS document.getElementById('style-container').sheet.cssRules.length is 0
    517 PASS document.querySelector(":matches(#id,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    518 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    519507PASS document.querySelector(":matches(#id,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    520508PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    543531PASS document.querySelector(":matches(#id,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    544532PASS document.getElementById('style-container').sheet.cssRules.length is 0
    545 PASS document.querySelector(":matches(#id,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    546 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    547533PASS document.querySelector(":matches(#id,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    548534PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    571557PASS document.querySelector(":matches(#id,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    572558PASS document.getElementById('style-container').sheet.cssRules.length is 0
    573 PASS document.querySelector(":matches(#id,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    574 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    575559PASS document.querySelector(":matches(#id,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    576560PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    593577PASS document.querySelector(":matches(#id,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    594578PASS document.getElementById('style-container').sheet.cssRules.length is 0
     579PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     580PASS document.getElementById('style-container').sheet.cssRules.length is 0
     581PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     582PASS document.getElementById('style-container').sheet.cssRules.length is 0
     583PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     584PASS document.getElementById('style-container').sheet.cssRules.length is 0
     585PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     586PASS document.getElementById('style-container').sheet.cssRules.length is 0
     587PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     588PASS document.getElementById('style-container').sheet.cssRules.length is 0
     589PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     590PASS document.getElementById('style-container').sheet.cssRules.length is 0
     591PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     592PASS document.getElementById('style-container').sheet.cssRules.length is 0
     593PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     594PASS document.getElementById('style-container').sheet.cssRules.length is 0
     595PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     596PASS document.getElementById('style-container').sheet.cssRules.length is 0
     597PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     598PASS document.getElementById('style-container').sheet.cssRules.length is 0
     599PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     600PASS document.getElementById('style-container').sheet.cssRules.length is 0
     601PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     602PASS document.getElementById('style-container').sheet.cssRules.length is 0
     603PASS document.querySelector(":matches(#id,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     604PASS document.getElementById('style-container').sheet.cssRules.length is 0
    595605PASS document.querySelector(":matches(:first-child,:first-child,)") threw exception Error: SyntaxError: DOM Exception 12.
    596606PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    599609PASS document.querySelector(":matches(:first-child,:first-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    600610PASS document.getElementById('style-container').sheet.cssRules.length is 0
    601 PASS document.querySelector(":matches(:first-child,:first-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    602 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    603611PASS document.querySelector(":matches(:first-child,:first-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    604612PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    627635PASS document.querySelector(":matches(:first-child,:visited,,)") threw exception Error: SyntaxError: DOM Exception 12.
    628636PASS document.getElementById('style-container').sheet.cssRules.length is 0
    629 PASS document.querySelector(":matches(:first-child,:visited,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    630 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    631637PASS document.querySelector(":matches(:first-child,:visited,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    632638PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    655661PASS document.querySelector(":matches(:first-child,::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    656662PASS document.getElementById('style-container').sheet.cssRules.length is 0
    657 PASS document.querySelector(":matches(:first-child,::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    658 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    659663PASS document.querySelector(":matches(:first-child,::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    660664PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    683687PASS document.querySelector(":matches(:first-child,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    684688PASS document.getElementById('style-container').sheet.cssRules.length is 0
    685 PASS document.querySelector(":matches(:first-child,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    686 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    687689PASS document.querySelector(":matches(:first-child,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    688690PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    711713PASS document.querySelector(":matches(:first-child,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    712714PASS document.getElementById('style-container').sheet.cssRules.length is 0
    713 PASS document.querySelector(":matches(:first-child,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    714 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    715715PASS document.querySelector(":matches(:first-child,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    716716PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    739739PASS document.querySelector(":matches(:first-child,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    740740PASS document.getElementById('style-container').sheet.cssRules.length is 0
    741 PASS document.querySelector(":matches(:first-child,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    742 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    743741PASS document.querySelector(":matches(:first-child,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    744742PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    767765PASS document.querySelector(":matches(:first-child,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    768766PASS document.getElementById('style-container').sheet.cssRules.length is 0
    769 PASS document.querySelector(":matches(:first-child,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    770 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    771767PASS document.querySelector(":matches(:first-child,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    772768PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    795791PASS document.querySelector(":matches(:first-child,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    796792PASS document.getElementById('style-container').sheet.cssRules.length is 0
    797 PASS document.querySelector(":matches(:first-child,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    798 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    799793PASS document.querySelector(":matches(:first-child,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    800794PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    823817PASS document.querySelector(":matches(:first-child,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    824818PASS document.getElementById('style-container').sheet.cssRules.length is 0
    825 PASS document.querySelector(":matches(:first-child,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    826 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    827819PASS document.querySelector(":matches(:first-child,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    828820PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    845837PASS document.querySelector(":matches(:first-child,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    846838PASS document.getElementById('style-container').sheet.cssRules.length is 0
     839PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     840PASS document.getElementById('style-container').sheet.cssRules.length is 0
     841PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     842PASS document.getElementById('style-container').sheet.cssRules.length is 0
     843PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     844PASS document.getElementById('style-container').sheet.cssRules.length is 0
     845PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     846PASS document.getElementById('style-container').sheet.cssRules.length is 0
     847PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     848PASS document.getElementById('style-container').sheet.cssRules.length is 0
     849PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     850PASS document.getElementById('style-container').sheet.cssRules.length is 0
     851PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     852PASS document.getElementById('style-container').sheet.cssRules.length is 0
     853PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     854PASS document.getElementById('style-container').sheet.cssRules.length is 0
     855PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     856PASS document.getElementById('style-container').sheet.cssRules.length is 0
     857PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     858PASS document.getElementById('style-container').sheet.cssRules.length is 0
     859PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     860PASS document.getElementById('style-container').sheet.cssRules.length is 0
     861PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     862PASS document.getElementById('style-container').sheet.cssRules.length is 0
     863PASS document.querySelector(":matches(:first-child,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     864PASS document.getElementById('style-container').sheet.cssRules.length is 0
    847865PASS document.querySelector(":matches(:visited,:visited,)") threw exception Error: SyntaxError: DOM Exception 12.
    848866PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    851869PASS document.querySelector(":matches(:visited,:visited,,)") threw exception Error: SyntaxError: DOM Exception 12.
    852870PASS document.getElementById('style-container').sheet.cssRules.length is 0
    853 PASS document.querySelector(":matches(:visited,:visited,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    854 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    855871PASS document.querySelector(":matches(:visited,:visited,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    856872PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    879895PASS document.querySelector(":matches(:visited,::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    880896PASS document.getElementById('style-container').sheet.cssRules.length is 0
    881 PASS document.querySelector(":matches(:visited,::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    882 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    883897PASS document.querySelector(":matches(:visited,::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    884898PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    907921PASS document.querySelector(":matches(:visited,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    908922PASS document.getElementById('style-container').sheet.cssRules.length is 0
    909 PASS document.querySelector(":matches(:visited,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    910 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    911923PASS document.querySelector(":matches(:visited,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    912924PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    935947PASS document.querySelector(":matches(:visited,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    936948PASS document.getElementById('style-container').sheet.cssRules.length is 0
    937 PASS document.querySelector(":matches(:visited,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    938 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    939949PASS document.querySelector(":matches(:visited,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    940950PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    963973PASS document.querySelector(":matches(:visited,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    964974PASS document.getElementById('style-container').sheet.cssRules.length is 0
    965 PASS document.querySelector(":matches(:visited,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    966 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    967975PASS document.querySelector(":matches(:visited,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    968976PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    991999PASS document.querySelector(":matches(:visited,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    9921000PASS document.getElementById('style-container').sheet.cssRules.length is 0
    993 PASS document.querySelector(":matches(:visited,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    994 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    9951001PASS document.querySelector(":matches(:visited,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    9961002PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10191025PASS document.querySelector(":matches(:visited,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    10201026PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1021 PASS document.querySelector(":matches(:visited,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1022 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10231027PASS document.querySelector(":matches(:visited,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10241028PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10471051PASS document.querySelector(":matches(:visited,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    10481052PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1049 PASS document.querySelector(":matches(:visited,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1050 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10511053PASS document.querySelector(":matches(:visited,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10521054PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10691071PASS document.querySelector(":matches(:visited,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    10701072PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1073PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1074PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1075PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1076PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1077PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1078PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1079PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1080PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1081PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1082PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1083PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1084PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1085PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1086PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1087PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1088PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1089PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1090PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1091PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1092PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1093PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1094PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1095PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1096PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1097PASS document.querySelector(":matches(:visited,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1098PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10711099PASS document.querySelector(":matches(::first-line,::first-line,)") threw exception Error: SyntaxError: DOM Exception 12.
    10721100PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10751103PASS document.querySelector(":matches(::first-line,::first-line,,)") threw exception Error: SyntaxError: DOM Exception 12.
    10761104PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1077 PASS document.querySelector(":matches(::first-line,::first-line,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1078 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10791105PASS document.querySelector(":matches(::first-line,::first-line,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10801106PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11031129PASS document.querySelector(":matches(::first-line,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11041130PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1105 PASS document.querySelector(":matches(::first-line,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1106 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11071131PASS document.querySelector(":matches(::first-line,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11081132PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11311155PASS document.querySelector(":matches(::first-line,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    11321156PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1133 PASS document.querySelector(":matches(::first-line,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1134 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11351157PASS document.querySelector(":matches(::first-line,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11361158PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11591181PASS document.querySelector(":matches(::first-line,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11601182PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1161 PASS document.querySelector(":matches(::first-line,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1162 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11631183PASS document.querySelector(":matches(::first-line,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11641184PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11871207PASS document.querySelector(":matches(::first-line,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11881208PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1189 PASS document.querySelector(":matches(::first-line,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1190 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11911209PASS document.querySelector(":matches(::first-line,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11921210PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12151233PASS document.querySelector(":matches(::first-line,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    12161234PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1217 PASS document.querySelector(":matches(::first-line,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1218 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12191235PASS document.querySelector(":matches(::first-line,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12201236PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12431259PASS document.querySelector(":matches(::first-line,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    12441260PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1245 PASS document.querySelector(":matches(::first-line,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1246 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12471261PASS document.querySelector(":matches(::first-line,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12481262PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12651279PASS document.querySelector(":matches(::first-line,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    12661280PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1281PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1282PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1283PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1284PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1285PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1286PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1287PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1288PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1289PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1290PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1291PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1292PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1293PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1294PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1295PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1296PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1297PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1298PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1299PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1300PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1301PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1302PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1303PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1304PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1305PASS document.querySelector(":matches(::first-line,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1306PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12671307PASS document.querySelector(":matches(::after,::after,)") threw exception Error: SyntaxError: DOM Exception 12.
    12681308PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12711311PASS document.querySelector(":matches(::after,::after,,)") threw exception Error: SyntaxError: DOM Exception 12.
    12721312PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1273 PASS document.querySelector(":matches(::after,::after,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1274 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12751313PASS document.querySelector(":matches(::after,::after,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12761314PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12991337PASS document.querySelector(":matches(::after,.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    13001338PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1301 PASS document.querySelector(":matches(::after,.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1302 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13031339PASS document.querySelector(":matches(::after,.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13041340PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13271363PASS document.querySelector(":matches(::after,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13281364PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1329 PASS document.querySelector(":matches(::after,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1330 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13311365PASS document.querySelector(":matches(::after,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13321366PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13551389PASS document.querySelector(":matches(::after,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13561390PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1357 PASS document.querySelector(":matches(::after,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1358 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13591391PASS document.querySelector(":matches(::after,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13601392PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13831415PASS document.querySelector(":matches(::after,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13841416PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1385 PASS document.querySelector(":matches(::after,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1386 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13871417PASS document.querySelector(":matches(::after,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13881418PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14111441PASS document.querySelector(":matches(::after,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    14121442PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1413 PASS document.querySelector(":matches(::after,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1414 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14151443PASS document.querySelector(":matches(::after,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14161444PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14331461PASS document.querySelector(":matches(::after,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    14341462PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1463PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1464PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1465PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1466PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1467PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1468PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1469PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1470PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1471PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1472PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1473PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1474PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1475PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1476PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1477PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1478PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1479PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1480PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1481PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1482PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1483PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1484PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1485PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1486PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1487PASS document.querySelector(":matches(::after,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1488PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14351489PASS document.querySelector(":matches(.class:not(.notclass),.class:not(.notclass),)") threw exception Error: SyntaxError: DOM Exception 12.
    14361490PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14391493PASS document.querySelector(":matches(.class:not(.notclass),.class:not(.notclass),,)") threw exception Error: SyntaxError: DOM Exception 12.
    14401494PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1441 PASS document.querySelector(":matches(.class:not(.notclass),.class:not(.notclass),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1442 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14431495PASS document.querySelector(":matches(.class:not(.notclass),.class:not(.notclass),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14441496PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14671519PASS document.querySelector(":matches(.class:not(.notclass),a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    14681520PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1469 PASS document.querySelector(":matches(.class:not(.notclass),a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1470 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14711521PASS document.querySelector(":matches(.class:not(.notclass),a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14721522PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14951545PASS document.querySelector(":matches(.class:not(.notclass),a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    14961546PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1497 PASS document.querySelector(":matches(.class:not(.notclass),a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1498 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14991547PASS document.querySelector(":matches(.class:not(.notclass),a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15001548PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15231571PASS document.querySelector(":matches(.class:not(.notclass),a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    15241572PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1525 PASS document.querySelector(":matches(.class:not(.notclass),a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1526 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15271573PASS document.querySelector(":matches(.class:not(.notclass),a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15281574PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15511597PASS document.querySelector(":matches(.class:not(.notclass),:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    15521598PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1553 PASS document.querySelector(":matches(.class:not(.notclass),:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1554 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15551599PASS document.querySelector(":matches(.class:not(.notclass),:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15561600PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15731617PASS document.querySelector(":matches(.class:not(.notclass),:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    15741618PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1619PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1620PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1621PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1622PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1623PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1624PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1625PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1626PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1627PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1628PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1629PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1630PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1631PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1632PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1633PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1634PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1635PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1636PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1637PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1638PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1639PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1640PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1641PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1642PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1643PASS document.querySelector(":matches(.class:not(.notclass),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1644PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15751645PASS document.querySelector(":matches(a > b,a > b,)") threw exception Error: SyntaxError: DOM Exception 12.
    15761646PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15791649PASS document.querySelector(":matches(a > b,a > b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    15801650PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1581 PASS document.querySelector(":matches(a > b,a > b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1582 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15831651PASS document.querySelector(":matches(a > b,a > b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15841652PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16071675PASS document.querySelector(":matches(a > b,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    16081676PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1609 PASS document.querySelector(":matches(a > b,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1610 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16111677PASS document.querySelector(":matches(a > b,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16121678PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16351701PASS document.querySelector(":matches(a > b,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    16361702PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1637 PASS document.querySelector(":matches(a > b,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1638 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16391703PASS document.querySelector(":matches(a > b,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16401704PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16631727PASS document.querySelector(":matches(a > b,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    16641728PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1665 PASS document.querySelector(":matches(a > b,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1666 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16671729PASS document.querySelector(":matches(a > b,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16681730PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16851747PASS document.querySelector(":matches(a > b,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    16861748PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1749PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1750PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1751PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1752PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1753PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1754PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1755PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1756PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1757PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1758PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1759PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1760PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1761PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1762PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1763PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1764PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1765PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1766PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1767PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1768PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1769PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1770PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1771PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1772PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1773PASS document.querySelector(":matches(a > b,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1774PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16871775PASS document.querySelector(":matches(a + b,a + b,)") threw exception Error: SyntaxError: DOM Exception 12.
    16881776PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16911779PASS document.querySelector(":matches(a + b,a + b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    16921780PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1693 PASS document.querySelector(":matches(a + b,a + b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1694 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16951781PASS document.querySelector(":matches(a + b,a + b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16961782PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17191805PASS document.querySelector(":matches(a + b,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    17201806PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1721 PASS document.querySelector(":matches(a + b,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1722 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17231807PASS document.querySelector(":matches(a + b,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17241808PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17471831PASS document.querySelector(":matches(a + b,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    17481832PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1749 PASS document.querySelector(":matches(a + b,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1750 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17511833PASS document.querySelector(":matches(a + b,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17521834PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17691851PASS document.querySelector(":matches(a + b,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    17701852PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1853PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1854PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1855PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1856PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1857PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1858PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1859PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1860PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1861PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1862PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1863PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1864PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1865PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1866PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1867PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1868PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1869PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1870PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1871PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1872PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1873PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1874PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1875PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1876PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1877PASS document.querySelector(":matches(a + b,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1878PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17711879PASS document.querySelector(":matches(a + b > c ~ d e + g,a + b > c ~ d e + g,)") threw exception Error: SyntaxError: DOM Exception 12.
    17721880PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17751883PASS document.querySelector(":matches(a + b > c ~ d e + g,a + b > c ~ d e + g,,)") threw exception Error: SyntaxError: DOM Exception 12.
    17761884PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1777 PASS document.querySelector(":matches(a + b > c ~ d e + g,a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1778 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17791885PASS document.querySelector(":matches(a + b > c ~ d e + g,a + b > c ~ d e + g,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17801886PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18031909PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    18041910PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1805 PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1806 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18071911PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    18081912PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18251929PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    18261930PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1931PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1932PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1933PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1934PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1935PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1936PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1937PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1938PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1939PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1940PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1941PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1942PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1943PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1944PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1945PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1946PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1947PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1948PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1949PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1950PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1951PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1952PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1953PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1954PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1955PASS document.querySelector(":matches(a + b > c ~ d e + g,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1956PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18271957PASS document.querySelector(":matches(:not(:link),:not(:link),)") threw exception Error: SyntaxError: DOM Exception 12.
    18281958PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18311961PASS document.querySelector(":matches(:not(:link),:not(:link),,)") threw exception Error: SyntaxError: DOM Exception 12.
    18321962PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1833 PASS document.querySelector(":matches(:not(:link),:not(:link),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1834 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18351963PASS document.querySelector(":matches(:not(:link),:not(:link),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    18361964PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18521980PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18531981PASS document.querySelector(":matches(:not(:link),:not(:link),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1982PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1983PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1984PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1985PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1986PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1987PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1988PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1989PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1990PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1991PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1992PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1993PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1994PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1995PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1996PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1997PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1998PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1999PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     2000PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2001PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     2002PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2003PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     2004PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2005PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     2006PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2007PASS document.querySelector(":matches(:not(:link),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     2008PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2009PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     2010PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2011PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     2012PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2013PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     2014PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2015PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     2016PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2017PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     2018PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2019PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     2020PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2021PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     2022PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2023PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     2024PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2025PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     2026PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2027PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     2028PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2029PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     2030PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2031PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     2032PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2033PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    18542034PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18552035PASS successfullyParsed is true
  • trunk/LayoutTests/fast/css/parsing-css-matches-7.html

    r174259 r174535  
    4141    // Functional pseudo classes.
    4242    ":not(:link)",
     43    ":not(:matches(cocoa, cappuccino))",
    4344];
    4445
     
    4849    "    ",
    4950    ",",
    50 
    51     // Currently not allows functional pseudo classes inside :not.
    52     ":not(:matches(cocoa, cappuccino))",
    5351
    5452    ".123class",
  • trunk/LayoutTests/fast/css/parsing-css-matches-8-expected.txt

    r174259 r174535  
    1111PASS document.querySelector(":matches(foobar,foobar,,)") threw exception Error: SyntaxError: DOM Exception 12.
    1212PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13 PASS document.querySelector(":matches(foobar,foobar,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    14 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1513PASS document.querySelector(":matches(foobar,foobar,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    1614PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    3937PASS document.querySelector(":matches(foobar,.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    4038PASS document.getElementById('style-container').sheet.cssRules.length is 0
    41 PASS document.querySelector(":matches(foobar,.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    42 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    4339PASS document.querySelector(":matches(foobar,.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    4440PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    6763PASS document.querySelector(":matches(foobar,:last-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    6864PASS document.getElementById('style-container').sheet.cssRules.length is 0
    69 PASS document.querySelector(":matches(foobar,:last-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    70 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    7165PASS document.querySelector(":matches(foobar,:last-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    7266PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    9589PASS document.querySelector(":matches(foobar,::first-letter,,)") threw exception Error: SyntaxError: DOM Exception 12.
    9690PASS document.getElementById('style-container').sheet.cssRules.length is 0
    97 PASS document.querySelector(":matches(foobar,::first-letter,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    98 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    9991PASS document.querySelector(":matches(foobar,::first-letter,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10092PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    123115PASS document.querySelector(":matches(foobar,::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    124116PASS document.getElementById('style-container').sheet.cssRules.length is 0
    125 PASS document.querySelector(":matches(foobar,::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    126 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    127117PASS document.querySelector(":matches(foobar,::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    128118PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    151141PASS document.querySelector(":matches(foobar,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    152142PASS document.getElementById('style-container').sheet.cssRules.length is 0
    153 PASS document.querySelector(":matches(foobar,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    154 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    155143PASS document.querySelector(":matches(foobar,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    156144PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    179167PASS document.querySelector(":matches(foobar,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    180168PASS document.getElementById('style-container').sheet.cssRules.length is 0
    181 PASS document.querySelector(":matches(foobar,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    182 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    183169PASS document.querySelector(":matches(foobar,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    184170PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    207193PASS document.querySelector(":matches(foobar,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    208194PASS document.getElementById('style-container').sheet.cssRules.length is 0
    209 PASS document.querySelector(":matches(foobar,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    210 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    211195PASS document.querySelector(":matches(foobar,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    212196PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    235219PASS document.querySelector(":matches(foobar,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    236220PASS document.getElementById('style-container').sheet.cssRules.length is 0
    237 PASS document.querySelector(":matches(foobar,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    238 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    239221PASS document.querySelector(":matches(foobar,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    240222PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    263245PASS document.querySelector(":matches(foobar,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    264246PASS document.getElementById('style-container').sheet.cssRules.length is 0
    265 PASS document.querySelector(":matches(foobar,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    266 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    267247PASS document.querySelector(":matches(foobar,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    268248PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    291271PASS document.querySelector(":matches(foobar,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    292272PASS document.getElementById('style-container').sheet.cssRules.length is 0
    293 PASS document.querySelector(":matches(foobar,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    294 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    295273PASS document.querySelector(":matches(foobar,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    296274PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    313291PASS document.querySelector(":matches(foobar,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    314292PASS document.getElementById('style-container').sheet.cssRules.length is 0
     293PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     294PASS document.getElementById('style-container').sheet.cssRules.length is 0
     295PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     296PASS document.getElementById('style-container').sheet.cssRules.length is 0
     297PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     298PASS document.getElementById('style-container').sheet.cssRules.length is 0
     299PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     300PASS document.getElementById('style-container').sheet.cssRules.length is 0
     301PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     302PASS document.getElementById('style-container').sheet.cssRules.length is 0
     303PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     304PASS document.getElementById('style-container').sheet.cssRules.length is 0
     305PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     306PASS document.getElementById('style-container').sheet.cssRules.length is 0
     307PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     308PASS document.getElementById('style-container').sheet.cssRules.length is 0
     309PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     310PASS document.getElementById('style-container').sheet.cssRules.length is 0
     311PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     312PASS document.getElementById('style-container').sheet.cssRules.length is 0
     313PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     314PASS document.getElementById('style-container').sheet.cssRules.length is 0
     315PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     316PASS document.getElementById('style-container').sheet.cssRules.length is 0
     317PASS document.querySelector(":matches(foobar,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     318PASS document.getElementById('style-container').sheet.cssRules.length is 0
    315319PASS document.querySelector(":matches(.class,.class,)") threw exception Error: SyntaxError: DOM Exception 12.
    316320PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    319323PASS document.querySelector(":matches(.class,.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    320324PASS document.getElementById('style-container').sheet.cssRules.length is 0
    321 PASS document.querySelector(":matches(.class,.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    322 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    323325PASS document.querySelector(":matches(.class,.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    324326PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    347349PASS document.querySelector(":matches(.class,:last-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    348350PASS document.getElementById('style-container').sheet.cssRules.length is 0
    349 PASS document.querySelector(":matches(.class,:last-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    350 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    351351PASS document.querySelector(":matches(.class,:last-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    352352PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    375375PASS document.querySelector(":matches(.class,::first-letter,,)") threw exception Error: SyntaxError: DOM Exception 12.
    376376PASS document.getElementById('style-container').sheet.cssRules.length is 0
    377 PASS document.querySelector(":matches(.class,::first-letter,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    378 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    379377PASS document.querySelector(":matches(.class,::first-letter,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    380378PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    403401PASS document.querySelector(":matches(.class,::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    404402PASS document.getElementById('style-container').sheet.cssRules.length is 0
    405 PASS document.querySelector(":matches(.class,::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    406 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    407403PASS document.querySelector(":matches(.class,::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    408404PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    431427PASS document.querySelector(":matches(.class,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    432428PASS document.getElementById('style-container').sheet.cssRules.length is 0
    433 PASS document.querySelector(":matches(.class,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    434 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    435429PASS document.querySelector(":matches(.class,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    436430PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    459453PASS document.querySelector(":matches(.class,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    460454PASS document.getElementById('style-container').sheet.cssRules.length is 0
    461 PASS document.querySelector(":matches(.class,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    462 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    463455PASS document.querySelector(":matches(.class,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    464456PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    487479PASS document.querySelector(":matches(.class,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    488480PASS document.getElementById('style-container').sheet.cssRules.length is 0
    489 PASS document.querySelector(":matches(.class,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    490 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    491481PASS document.querySelector(":matches(.class,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    492482PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    515505PASS document.querySelector(":matches(.class,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    516506PASS document.getElementById('style-container').sheet.cssRules.length is 0
    517 PASS document.querySelector(":matches(.class,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    518 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    519507PASS document.querySelector(":matches(.class,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    520508PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    543531PASS document.querySelector(":matches(.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    544532PASS document.getElementById('style-container').sheet.cssRules.length is 0
    545 PASS document.querySelector(":matches(.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    546 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    547533PASS document.querySelector(":matches(.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    548534PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    571557PASS document.querySelector(":matches(.class,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    572558PASS document.getElementById('style-container').sheet.cssRules.length is 0
    573 PASS document.querySelector(":matches(.class,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    574 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    575559PASS document.querySelector(":matches(.class,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    576560PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    593577PASS document.querySelector(":matches(.class,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    594578PASS document.getElementById('style-container').sheet.cssRules.length is 0
     579PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     580PASS document.getElementById('style-container').sheet.cssRules.length is 0
     581PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     582PASS document.getElementById('style-container').sheet.cssRules.length is 0
     583PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     584PASS document.getElementById('style-container').sheet.cssRules.length is 0
     585PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     586PASS document.getElementById('style-container').sheet.cssRules.length is 0
     587PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     588PASS document.getElementById('style-container').sheet.cssRules.length is 0
     589PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     590PASS document.getElementById('style-container').sheet.cssRules.length is 0
     591PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     592PASS document.getElementById('style-container').sheet.cssRules.length is 0
     593PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     594PASS document.getElementById('style-container').sheet.cssRules.length is 0
     595PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     596PASS document.getElementById('style-container').sheet.cssRules.length is 0
     597PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     598PASS document.getElementById('style-container').sheet.cssRules.length is 0
     599PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     600PASS document.getElementById('style-container').sheet.cssRules.length is 0
     601PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     602PASS document.getElementById('style-container').sheet.cssRules.length is 0
     603PASS document.querySelector(":matches(.class,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     604PASS document.getElementById('style-container').sheet.cssRules.length is 0
    595605PASS document.querySelector(":matches(:last-child,:last-child,)") threw exception Error: SyntaxError: DOM Exception 12.
    596606PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    599609PASS document.querySelector(":matches(:last-child,:last-child,,)") threw exception Error: SyntaxError: DOM Exception 12.
    600610PASS document.getElementById('style-container').sheet.cssRules.length is 0
    601 PASS document.querySelector(":matches(:last-child,:last-child,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    602 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    603611PASS document.querySelector(":matches(:last-child,:last-child,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    604612PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    627635PASS document.querySelector(":matches(:last-child,::first-letter,,)") threw exception Error: SyntaxError: DOM Exception 12.
    628636PASS document.getElementById('style-container').sheet.cssRules.length is 0
    629 PASS document.querySelector(":matches(:last-child,::first-letter,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    630 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    631637PASS document.querySelector(":matches(:last-child,::first-letter,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    632638PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    655661PASS document.querySelector(":matches(:last-child,::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    656662PASS document.getElementById('style-container').sheet.cssRules.length is 0
    657 PASS document.querySelector(":matches(:last-child,::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    658 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    659663PASS document.querySelector(":matches(:last-child,::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    660664PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    683687PASS document.querySelector(":matches(:last-child,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    684688PASS document.getElementById('style-container').sheet.cssRules.length is 0
    685 PASS document.querySelector(":matches(:last-child,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    686 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    687689PASS document.querySelector(":matches(:last-child,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    688690PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    711713PASS document.querySelector(":matches(:last-child,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    712714PASS document.getElementById('style-container').sheet.cssRules.length is 0
    713 PASS document.querySelector(":matches(:last-child,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    714 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    715715PASS document.querySelector(":matches(:last-child,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    716716PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    739739PASS document.querySelector(":matches(:last-child,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    740740PASS document.getElementById('style-container').sheet.cssRules.length is 0
    741 PASS document.querySelector(":matches(:last-child,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    742 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    743741PASS document.querySelector(":matches(:last-child,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    744742PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    767765PASS document.querySelector(":matches(:last-child,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    768766PASS document.getElementById('style-container').sheet.cssRules.length is 0
    769 PASS document.querySelector(":matches(:last-child,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    770 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    771767PASS document.querySelector(":matches(:last-child,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    772768PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    795791PASS document.querySelector(":matches(:last-child,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    796792PASS document.getElementById('style-container').sheet.cssRules.length is 0
    797 PASS document.querySelector(":matches(:last-child,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    798 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    799793PASS document.querySelector(":matches(:last-child,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    800794PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    823817PASS document.querySelector(":matches(:last-child,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    824818PASS document.getElementById('style-container').sheet.cssRules.length is 0
    825 PASS document.querySelector(":matches(:last-child,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    826 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    827819PASS document.querySelector(":matches(:last-child,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    828820PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    845837PASS document.querySelector(":matches(:last-child,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    846838PASS document.getElementById('style-container').sheet.cssRules.length is 0
     839PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     840PASS document.getElementById('style-container').sheet.cssRules.length is 0
     841PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     842PASS document.getElementById('style-container').sheet.cssRules.length is 0
     843PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     844PASS document.getElementById('style-container').sheet.cssRules.length is 0
     845PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     846PASS document.getElementById('style-container').sheet.cssRules.length is 0
     847PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     848PASS document.getElementById('style-container').sheet.cssRules.length is 0
     849PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     850PASS document.getElementById('style-container').sheet.cssRules.length is 0
     851PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     852PASS document.getElementById('style-container').sheet.cssRules.length is 0
     853PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     854PASS document.getElementById('style-container').sheet.cssRules.length is 0
     855PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     856PASS document.getElementById('style-container').sheet.cssRules.length is 0
     857PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     858PASS document.getElementById('style-container').sheet.cssRules.length is 0
     859PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     860PASS document.getElementById('style-container').sheet.cssRules.length is 0
     861PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     862PASS document.getElementById('style-container').sheet.cssRules.length is 0
     863PASS document.querySelector(":matches(:last-child,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     864PASS document.getElementById('style-container').sheet.cssRules.length is 0
    847865PASS document.querySelector(":matches(::first-letter,::first-letter,)") threw exception Error: SyntaxError: DOM Exception 12.
    848866PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    851869PASS document.querySelector(":matches(::first-letter,::first-letter,,)") threw exception Error: SyntaxError: DOM Exception 12.
    852870PASS document.getElementById('style-container').sheet.cssRules.length is 0
    853 PASS document.querySelector(":matches(::first-letter,::first-letter,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    854 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    855871PASS document.querySelector(":matches(::first-letter,::first-letter,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    856872PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    879895PASS document.querySelector(":matches(::first-letter,::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    880896PASS document.getElementById('style-container').sheet.cssRules.length is 0
    881 PASS document.querySelector(":matches(::first-letter,::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    882 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    883897PASS document.querySelector(":matches(::first-letter,::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    884898PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    907921PASS document.querySelector(":matches(::first-letter,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    908922PASS document.getElementById('style-container').sheet.cssRules.length is 0
    909 PASS document.querySelector(":matches(::first-letter,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    910 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    911923PASS document.querySelector(":matches(::first-letter,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    912924PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    935947PASS document.querySelector(":matches(::first-letter,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    936948PASS document.getElementById('style-container').sheet.cssRules.length is 0
    937 PASS document.querySelector(":matches(::first-letter,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    938 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    939949PASS document.querySelector(":matches(::first-letter,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    940950PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    963973PASS document.querySelector(":matches(::first-letter,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    964974PASS document.getElementById('style-container').sheet.cssRules.length is 0
    965 PASS document.querySelector(":matches(::first-letter,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    966 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    967975PASS document.querySelector(":matches(::first-letter,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    968976PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    991999PASS document.querySelector(":matches(::first-letter,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    9921000PASS document.getElementById('style-container').sheet.cssRules.length is 0
    993 PASS document.querySelector(":matches(::first-letter,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    994 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    9951001PASS document.querySelector(":matches(::first-letter,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    9961002PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10191025PASS document.querySelector(":matches(::first-letter,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    10201026PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1021 PASS document.querySelector(":matches(::first-letter,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1022 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10231027PASS document.querySelector(":matches(::first-letter,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10241028PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10471051PASS document.querySelector(":matches(::first-letter,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    10481052PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1049 PASS document.querySelector(":matches(::first-letter,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1050 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10511053PASS document.querySelector(":matches(::first-letter,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10521054PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10691071PASS document.querySelector(":matches(::first-letter,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    10701072PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1073PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1074PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1075PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1076PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1077PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1078PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1079PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1080PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1081PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1082PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1083PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1084PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1085PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1086PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1087PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1088PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1089PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1090PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1091PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1092PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1093PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1094PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1095PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1096PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1097PASS document.querySelector(":matches(::first-letter,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1098PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10711099PASS document.querySelector(":matches(::before,::before,)") threw exception Error: SyntaxError: DOM Exception 12.
    10721100PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    10751103PASS document.querySelector(":matches(::before,::before,,)") threw exception Error: SyntaxError: DOM Exception 12.
    10761104PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1077 PASS document.querySelector(":matches(::before,::before,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1078 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    10791105PASS document.querySelector(":matches(::before,::before,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    10801106PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11031129PASS document.querySelector(":matches(::before,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11041130PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1105 PASS document.querySelector(":matches(::before,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1106 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11071131PASS document.querySelector(":matches(::before,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11081132PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11311155PASS document.querySelector(":matches(::before,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11321156PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1133 PASS document.querySelector(":matches(::before,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1134 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11351157PASS document.querySelector(":matches(::before,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11361158PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11591181PASS document.querySelector(":matches(::before,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11601182PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1161 PASS document.querySelector(":matches(::before,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1162 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11631183PASS document.querySelector(":matches(::before,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11641184PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    11871207PASS document.querySelector(":matches(::before,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    11881208PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1189 PASS document.querySelector(":matches(::before,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1190 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    11911209PASS document.querySelector(":matches(::before,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    11921210PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12151233PASS document.querySelector(":matches(::before,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    12161234PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1217 PASS document.querySelector(":matches(::before,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1218 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12191235PASS document.querySelector(":matches(::before,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12201236PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12431259PASS document.querySelector(":matches(::before,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    12441260PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1245 PASS document.querySelector(":matches(::before,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1246 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12471261PASS document.querySelector(":matches(::before,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12481262PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12651279PASS document.querySelector(":matches(::before,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    12661280PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1281PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1282PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1283PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1284PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1285PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1286PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1287PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1288PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1289PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1290PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1291PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1292PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1293PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1294PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1295PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1296PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1297PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1298PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1299PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1300PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1301PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1302PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1303PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1304PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1305PASS document.querySelector(":matches(::before,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1306PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12671307PASS document.querySelector(":matches(foobar#id.class,foobar#id.class,)") threw exception Error: SyntaxError: DOM Exception 12.
    12681308PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12711311PASS document.querySelector(":matches(foobar#id.class,foobar#id.class,,)") threw exception Error: SyntaxError: DOM Exception 12.
    12721312PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1273 PASS document.querySelector(":matches(foobar#id.class,foobar#id.class,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1274 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    12751313PASS document.querySelector(":matches(foobar#id.class,foobar#id.class,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    12761314PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    12991337PASS document.querySelector(":matches(foobar#id.class,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13001338PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1301 PASS document.querySelector(":matches(foobar#id.class,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1302 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13031339PASS document.querySelector(":matches(foobar#id.class,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13041340PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13271363PASS document.querySelector(":matches(foobar#id.class,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13281364PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1329 PASS document.querySelector(":matches(foobar#id.class,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1330 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13311365PASS document.querySelector(":matches(foobar#id.class,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13321366PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13551389PASS document.querySelector(":matches(foobar#id.class,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    13561390PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1357 PASS document.querySelector(":matches(foobar#id.class,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1358 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13591391PASS document.querySelector(":matches(foobar#id.class,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13601392PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    13831415PASS document.querySelector(":matches(foobar#id.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    13841416PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1385 PASS document.querySelector(":matches(foobar#id.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1386 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    13871417PASS document.querySelector(":matches(foobar#id.class,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    13881418PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14111441PASS document.querySelector(":matches(foobar#id.class,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    14121442PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1413 PASS document.querySelector(":matches(foobar#id.class,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1414 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14151443PASS document.querySelector(":matches(foobar#id.class,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14161444PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14331461PASS document.querySelector(":matches(foobar#id.class,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    14341462PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1463PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1464PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1465PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1466PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1467PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1468PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1469PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1470PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1471PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1472PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1473PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1474PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1475PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1476PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1477PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1478PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1479PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1480PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1481PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1482PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1483PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1484PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1485PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1486PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1487PASS document.querySelector(":matches(foobar#id.class,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1488PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14351489PASS document.querySelector(":matches(#id:empty,#id:empty,)") threw exception Error: SyntaxError: DOM Exception 12.
    14361490PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14391493PASS document.querySelector(":matches(#id:empty,#id:empty,,)") threw exception Error: SyntaxError: DOM Exception 12.
    14401494PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1441 PASS document.querySelector(":matches(#id:empty,#id:empty,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1442 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14431495PASS document.querySelector(":matches(#id:empty,#id:empty,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14441496PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14671519PASS document.querySelector(":matches(#id:empty,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    14681520PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1469 PASS document.querySelector(":matches(#id:empty,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1470 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14711521PASS document.querySelector(":matches(#id:empty,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    14721522PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    14951545PASS document.querySelector(":matches(#id:empty,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    14961546PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1497 PASS document.querySelector(":matches(#id:empty,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1498 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    14991547PASS document.querySelector(":matches(#id:empty,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15001548PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15231571PASS document.querySelector(":matches(#id:empty,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    15241572PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1525 PASS document.querySelector(":matches(#id:empty,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1526 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15271573PASS document.querySelector(":matches(#id:empty,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15281574PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15511597PASS document.querySelector(":matches(#id:empty,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    15521598PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1553 PASS document.querySelector(":matches(#id:empty,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1554 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15551599PASS document.querySelector(":matches(#id:empty,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15561600PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15731617PASS document.querySelector(":matches(#id:empty,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    15741618PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1619PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1620PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1621PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1622PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1623PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1624PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1625PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1626PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1627PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1628PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1629PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1630PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1631PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1632PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1633PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1634PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1635PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1636PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1637PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1638PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1639PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1640PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1641PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1642PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1643PASS document.querySelector(":matches(#id:empty,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1644PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15751645PASS document.querySelector(":matches(a b,a b,)") threw exception Error: SyntaxError: DOM Exception 12.
    15761646PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    15791649PASS document.querySelector(":matches(a b,a b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    15801650PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1581 PASS document.querySelector(":matches(a b,a b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1582 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    15831651PASS document.querySelector(":matches(a b,a b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    15841652PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16071675PASS document.querySelector(":matches(a b,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    16081676PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1609 PASS document.querySelector(":matches(a b,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1610 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16111677PASS document.querySelector(":matches(a b,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16121678PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16351701PASS document.querySelector(":matches(a b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    16361702PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1637 PASS document.querySelector(":matches(a b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1638 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16391703PASS document.querySelector(":matches(a b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16401704PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16631727PASS document.querySelector(":matches(a b,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    16641728PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1665 PASS document.querySelector(":matches(a b,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1666 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16671729PASS document.querySelector(":matches(a b,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16681730PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16851747PASS document.querySelector(":matches(a b,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    16861748PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1749PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1750PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1751PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1752PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1753PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1754PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1755PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1756PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1757PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1758PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1759PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1760PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1761PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1762PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1763PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1764PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1765PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1766PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1767PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1768PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1769PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1770PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1771PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1772PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1773PASS document.querySelector(":matches(a b,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1774PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16871775PASS document.querySelector(":matches(a ~ b,a ~ b,)") threw exception Error: SyntaxError: DOM Exception 12.
    16881776PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    16911779PASS document.querySelector(":matches(a ~ b,a ~ b,,)") threw exception Error: SyntaxError: DOM Exception 12.
    16921780PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1693 PASS document.querySelector(":matches(a ~ b,a ~ b,:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1694 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    16951781PASS document.querySelector(":matches(a ~ b,a ~ b,.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    16961782PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17191805PASS document.querySelector(":matches(a ~ b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    17201806PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1721 PASS document.querySelector(":matches(a ~ b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1722 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17231807PASS document.querySelector(":matches(a ~ b,:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17241808PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17471831PASS document.querySelector(":matches(a ~ b,:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    17481832PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1749 PASS document.querySelector(":matches(a ~ b,:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1750 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17511833PASS document.querySelector(":matches(a ~ b,:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17521834PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17691851PASS document.querySelector(":matches(a ~ b,:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    17701852PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1853PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1854PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1855PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1856PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1857PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1858PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1859PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1860PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1861PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1862PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1863PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1864PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1865PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1866PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1867PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1868PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1869PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1870PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1871PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1872PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1873PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1874PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1875PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1876PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1877PASS document.querySelector(":matches(a ~ b,:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1878PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17711879PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:-webkit-any(.selector,#tama,#hanayo,#midoriko),)") threw exception Error: SyntaxError: DOM Exception 12.
    17721880PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    17751883PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:-webkit-any(.selector,#tama,#hanayo,#midoriko),,)") threw exception Error: SyntaxError: DOM Exception 12.
    17761884PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1777 PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1778 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    17791885PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:-webkit-any(.selector,#tama,#hanayo,#midoriko),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    17801886PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18031909PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    18041910PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1805 PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1806 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18071911PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    18081912PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18251929PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    18261930PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1931PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1932PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1933PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1934PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1935PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1936PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1937PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1938PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1939PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1940PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1941PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1942PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1943PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1944PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1945PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1946PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1947PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     1948PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1949PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     1950PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1951PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     1952PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1953PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     1954PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1955PASS document.querySelector(":matches(:-webkit-any(.selector,#tama,#hanayo,#midoriko),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1956PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18271957PASS document.querySelector(":matches(:nth-child(even of a, b, c),:nth-child(even of a, b, c),)") threw exception Error: SyntaxError: DOM Exception 12.
    18281958PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18311961PASS document.querySelector(":matches(:nth-child(even of a, b, c),:nth-child(even of a, b, c),,)") threw exception Error: SyntaxError: DOM Exception 12.
    18321962PASS document.getElementById('style-container').sheet.cssRules.length is 0
    1833 PASS document.querySelector(":matches(:nth-child(even of a, b, c),:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)))") threw exception Error: SyntaxError: DOM Exception 12.
    1834 PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18351963PASS document.querySelector(":matches(:nth-child(even of a, b, c),:nth-child(even of a, b, c),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
    18361964PASS document.getElementById('style-container').sheet.cssRules.length is 0
     
    18521980PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18531981PASS document.querySelector(":matches(:nth-child(even of a, b, c),:nth-child(even of a, b, c),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     1982PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1983PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     1984PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1985PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     1986PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1987PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     1988PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1989PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     1990PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1991PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     1992PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1993PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     1994PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1995PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     1996PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1997PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     1998PASS document.getElementById('style-container').sheet.cssRules.length is 0
     1999PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     2000PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2001PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     2002PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2003PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     2004PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2005PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     2006PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2007PASS document.querySelector(":matches(:nth-child(even of a, b, c),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
     2008PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2009PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),)") threw exception Error: SyntaxError: DOM Exception 12.
     2010PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2011PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),    )") threw exception Error: SyntaxError: DOM Exception 12.
     2012PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2013PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),,)") threw exception Error: SyntaxError: DOM Exception 12.
     2014PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2015PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),.123class)") threw exception Error: SyntaxError: DOM Exception 12.
     2016PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2017PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),#123id)") threw exception Error: SyntaxError: DOM Exception 12.
     2018PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2019PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),[])") threw exception Error: SyntaxError: DOM Exception 12.
     2020PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2021PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),())") threw exception Error: SyntaxError: DOM Exception 12.
     2022PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2023PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),))") threw exception Error: SyntaxError: DOM Exception 12.
     2024PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2025PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),{})") threw exception Error: SyntaxError: DOM Exception 12.
     2026PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2027PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),})") threw exception Error: SyntaxError: DOM Exception 12.
     2028PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2029PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:not()") threw exception Error: SyntaxError: DOM Exception 12.
     2030PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2031PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:matches()") threw exception Error: SyntaxError: DOM Exception 12.
     2032PASS document.getElementById('style-container').sheet.cssRules.length is 0
     2033PASS document.querySelector(":matches(:not(:matches(cocoa, cappuccino)),:not(:matches(cocoa, cappuccino)),:nth-child(2n+1 of)") threw exception Error: SyntaxError: DOM Exception 12.
    18542034PASS document.getElementById('style-container').sheet.cssRules.length is 0
    18552035PASS successfullyParsed is true
  • trunk/LayoutTests/fast/css/parsing-css-matches-8.html

    r174259 r174535  
    4141    ":-webkit-any(.selector,#tama,#hanayo,#midoriko)",
    4242    ":nth-child(even of a, b, c)",
     43    ":not(:matches(cocoa, cappuccino))",
    4344];
    4445
     
    4849    "    ",
    4950    ",",
    50 
    51     // Currently not allows functional pseudo classes inside :not.
    52     ":not(:matches(cocoa, cappuccino))",
    5351
    5452    ".123class",
  • trunk/LayoutTests/fast/dom/SelectorAPI/resig-SelectorsAPI-test-expected.txt

    r159326 r174535  
    55 Show only failing tests.
    66
    7 100.0%: 2163 passed, 1 failed
     799.2%: 2147 passed, 17 failed
    88PASS Element supports querySelector
    99PASS Element supports querySelectorAll
     
    556556PASS Syntax Error: Element.querySelector undefined
    557557PASS Syntax Error: Element.querySelector no value
    558 PASS Syntax Error: Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
    559 PASS Syntax Error: Element.querySelector: .blox16:not(.blox15[foo="blox14"])
    560 PASS Syntax Error: Element.querySelectorAll: div:not(:not(div))
    561 PASS Syntax Error: Element.querySelector: div:not(:not(div))
     558FAIL Syntax Error: Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
     559FAIL Syntax Error: Element.querySelector: .blox16:not(.blox15[foo="blox14"])
     560FAIL Syntax Error: Element.querySelectorAll: div:not(:not(div))
     561FAIL Syntax Error: Element.querySelector: div:not(:not(div))
    562562PASS Syntax Error: Element.querySelectorAll: div,
    563563PASS Syntax Error: Element.querySelector: div,
     
    11541154PASS Syntax Error: Disconnected Element.querySelector undefined
    11551155PASS Syntax Error: Disconnected Element.querySelector no value
    1156 PASS Syntax Error: Disconnected Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
    1157 PASS Syntax Error: Disconnected Element.querySelector: .blox16:not(.blox15[foo="blox14"])
    1158 PASS Syntax Error: Disconnected Element.querySelectorAll: div:not(:not(div))
    1159 PASS Syntax Error: Disconnected Element.querySelector: div:not(:not(div))
     1156FAIL Syntax Error: Disconnected Element.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
     1157FAIL Syntax Error: Disconnected Element.querySelector: .blox16:not(.blox15[foo="blox14"])
     1158FAIL Syntax Error: Disconnected Element.querySelectorAll: div:not(:not(div))
     1159FAIL Syntax Error: Disconnected Element.querySelector: div:not(:not(div))
    11601160PASS Syntax Error: Disconnected Element.querySelectorAll: div,
    11611161PASS Syntax Error: Disconnected Element.querySelector: div,
     
    16351635PASS Syntax Error: Fragment.querySelector undefined
    16361636PASS Syntax Error: Fragment.querySelector no value
    1637 PASS Syntax Error: Fragment.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
    1638 PASS Syntax Error: Fragment.querySelector: .blox16:not(.blox15[foo="blox14"])
    1639 PASS Syntax Error: Fragment.querySelectorAll: div:not(:not(div))
    1640 PASS Syntax Error: Fragment.querySelector: div:not(:not(div))
     1637FAIL Syntax Error: Fragment.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
     1638FAIL Syntax Error: Fragment.querySelector: .blox16:not(.blox15[foo="blox14"])
     1639FAIL Syntax Error: Fragment.querySelectorAll: div:not(:not(div))
     1640FAIL Syntax Error: Fragment.querySelector: div:not(:not(div))
    16411641PASS Syntax Error: Fragment.querySelectorAll: div,
    16421642PASS Syntax Error: Fragment.querySelector: div,
     
    19981998PASS Syntax Error: Document.querySelector undefined
    19991999PASS Syntax Error: Document.querySelector no value
    2000 PASS Syntax Error: Document.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
    2001 PASS Syntax Error: Document.querySelector: .blox16:not(.blox15[foo="blox14"])
    2002 PASS Syntax Error: Document.querySelectorAll: div:not(:not(div))
    2003 PASS Syntax Error: Document.querySelector: div:not(:not(div))
     2000FAIL Syntax Error: Document.querySelectorAll: .blox16:not(.blox15[foo="blox14"])
     2001FAIL Syntax Error: Document.querySelector: .blox16:not(.blox15[foo="blox14"])
     2002FAIL Syntax Error: Document.querySelectorAll: div:not(:not(div))
     2003FAIL Syntax Error: Document.querySelector: div:not(:not(div))
    20042004PASS Syntax Error: Document.querySelectorAll: div,
    20052005PASS Syntax Error: Document.querySelector: div,
  • trunk/LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-61-expected.txt

    r97602 r174535  
    55    RenderBody {BODY} at (8,8) size 784x18
    66      RenderBlock {DIV} at (0,0) size 784x18
    7         RenderInline {A} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#00FF00]
     7        RenderInline {A} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#FF0000]
    88          RenderText {#text} at (0,0) size 284x18
    99            text run at (0,0) width 284: "This anchor should have a green background"
  • trunk/LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-83-expected.txt

    r91104 r174535  
    44  RenderBlock {HTML} at (0,0) size 800x50
    55    RenderBody {BODY} at (8,16) size 784x18
    6       RenderBlock {P} at (0,0) size 784x18 [bgcolor=#00FF00]
     6      RenderBlock {P} at (0,0) size 784x18 [bgcolor=#FF0000]
    77        RenderText {#text} at (0,0) size 304x18
    88          text run at (0,0) width 304: "This paragraph should have a green background"
  • trunk/LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-61-expected.txt

    r97602 r174535  
    55    RenderBody {body} at (8,8) size 784x18
    66      RenderBlock {div} at (0,0) size 784x18
    7         RenderInline {a} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#00FF00]
     7        RenderInline {a} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#FF0000]
    88          RenderText {#text} at (0,0) size 284x18
    99            text run at (0,0) width 284: "This anchor should have a green background"
  • trunk/LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-83-expected.txt

    r91104 r174535  
    44  RenderBlock {html} at (0,0) size 800x50
    55    RenderBody {body} at (8,16) size 784x18
    6       RenderBlock {p} at (0,0) size 784x18 [bgcolor=#00FF00]
     6      RenderBlock {p} at (0,0) size 784x18 [bgcolor=#FF0000]
    77        RenderText {#text} at (0,0) size 304x18
    88          text run at (0,0) width 304: "This paragraph should have a green background"
  • trunk/LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-61-expected.txt

    r97602 r174535  
    44  RenderBlock {test} at (0,0) size 800x18
    55    RenderBlock {div} at (0,0) size 800x18
    6       RenderInline {a} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#00FF00]
     6      RenderInline {a} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#FF0000]
    77        RenderText {#text} at (0,0) size 284x18
    88          text run at (0,0) width 284: "This anchor should have a green background"
  • trunk/LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-83-expected.txt

    r91104 r174535  
    33layer at (0,0) size 800x50
    44  RenderBlock {test} at (0,0) size 800x50
    5     RenderBlock {p} at (0,16) size 800x18 [bgcolor=#00FF00]
     5    RenderBlock {p} at (0,16) size 800x18 [bgcolor=#FF0000]
    66      RenderText {#text} at (0,0) size 304x18
    77        text run at (0,0) width 304: "This paragraph should have a green background"
  • trunk/LayoutTests/platform/mac/fast/selectors/061-expected.txt

    r97602 r174535  
    55    RenderBody {BODY} at (8,8) size 784x18
    66      RenderBlock {DIV} at (0,0) size 784x18
    7         RenderInline {A} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#00FF00]
     7        RenderInline {A} at (0,0) size 284x18 [color=#551A8B] [bgcolor=#FF0000]
    88          RenderText {#text} at (0,0) size 284x18
    99            text run at (0,0) width 284: "This anchor should have a green background"
  • trunk/LayoutTests/platform/mac/fast/selectors/083-expected.txt

    r25970 r174535  
    44  RenderBlock {HTML} at (0,0) size 800x50
    55    RenderBody {BODY} at (8,16) size 784x18
    6       RenderBlock {P} at (0,0) size 784x18 [bgcolor=#00FF00]
     6      RenderBlock {P} at (0,0) size 784x18 [bgcolor=#FF0000]
    77        RenderText {#text} at (0,0) size 304x18
    88          text run at (0,0) width 304: "This paragraph should have a green background"
  • trunk/Source/WebCore/ChangeLog

    r174524 r174535  
     12014-10-09  Benjamin Poulain  <benjamin@webkit.org>
     2
     3        Add the baseline implementation of :not(selectorList)
     4        https://bugs.webkit.org/show_bug.cgi?id=137548
     5
     6        Reviewed by Andreas Kling.
     7
     8        This patch extend the pseudo class :not() to support the new definition
     9        in CSS Selectors level 4.
     10
     11        Instead of supporting a single simple selector, :not() now support
     12        an arbitrary selector list, excepted pseudo elements.
     13
     14        One side effect of this change is :visited and :link are no longer supported
     15        inside :not(). The reason has to do with complexity and performance.
     16        Since :not() and :matches() can have arbitrary selector list, keeping track of
     17        :visited and :link can have many combination superposing, some valid, some invalid.
     18
     19        Supporting :visited and :link should be possible by chaning the way we handle
     20        them for style resolution, but given the limited use cases for such features
     21        I'll wait to see if there is any interest before changing everything.
     22
     23        This patch only covers SelectorChecker to keep things simple. The CSS JIT
     24        will come later.
     25
     26        Tests: fast/css/not-basics.html
     27               fast/css/parsing-css-not-1.html
     28               fast/css/parsing-css-not-2.html
     29               fast/css/parsing-css-not-3.html
     30               fast/css/parsing-css-not-4.html
     31               fast/css/parsing-css-not-5.html
     32               fast/css/parsing-css-not-6.html
     33               fast/css/parsing-css-not-7.html
     34               fast/css/parsing-css-not-8.html
     35               fast/css/parsing-css-not-9.html
     36               fast/css/parsing-css-nth-child-of-4.html
     37               fast/selectors/not-basics.html
     38               fast/selectors/not-nested.html
     39               fast/selectors/not-selector-list.html
     40
     41        * css/CSSGrammar.y.in:
     42        Rename selectorListDoesNotMatchAnyPseudoElement() to selectorListDoesNotMatchAnyPseudoElement()
     43        since both :not() and :nth-child(An+B of selectorList) have the same requirements at the moment.
     44
     45        * css/CSSParserValues.cpp:
     46        (WebCore::selectorListMatchesPseudoElement):
     47        The patch adding :matches() introduced the possibility of putting pseudo element
     48        arbitrary deep in a sequence of nested :matches(). Since this case is forbidded
     49        by :not() and :nth-child(An+B of selectorList), selectorListMatchesPseudoElement()
     50        now becomes recursive to find those pseudo elements.
     51
     52        * css/CSSSelector.cpp:
     53        (WebCore::CSSSelector::selectorText):
     54        CSSOM for the extended :not().
     55
     56        * css/SelectorChecker.cpp:
     57        (WebCore::SelectorChecker::checkOne):
     58        (WebCore::SelectorChecker::determineLinkMatchType):
     59        * cssjit/SelectorCompiler.cpp:
     60
     61        (WebCore::SelectorCompiler::addPseudoClassType):
     62        Disable the new capabilities from the JIT for now.
     63
    1642014-10-09  Tim Horton  <timothy_horton@apple.com>
    265
  • trunk/Source/WebCore/css/CSSGrammar.y.in

    r174379 r174535  
    8585auto invalidSelectorVector = reinterpret_cast<Vector<std::unique_ptr<CSSParserSelector>>*>(-1);
    8686
    87 static bool isValidNthSelectorList(const Vector<std::unique_ptr<CSSParserSelector>>* selectorVector)
     87static bool selectorListDoesNotMatchAnyPseudoElement(const Vector<std::unique_ptr<CSSParserSelector>>* selectorVector)
    8888{
    8989    if (!selectorVector)
     
    13651365    | ':' NTHCHILDFUNCTION maybe_space NTH nth_selector_ending {
    13661366        $$ = nullptr;
    1367         if (isValidNthSelectorList($5)) {
     1367        if (selectorListDoesNotMatchAnyPseudoElement($5)) {
    13681368            auto selector = std::make_unique<CSSParserSelector>();
    13691369            selector->setMatch(CSSSelector::PseudoClass);
     
    13781378    | ':' NTHCHILDFUNCTION maybe_space maybe_unary_operator INTEGER nth_selector_ending {
    13791379        $$ = nullptr;
    1380         if (isValidNthSelectorList($6)) {
     1380        if (selectorListDoesNotMatchAnyPseudoElement($6)) {
    13811381            auto selector = std::make_unique<CSSParserSelector>();
    13821382            selector->setMatch(CSSSelector::PseudoClass);
     
    13911391    | ':' NTHCHILDFUNCTION maybe_space IDENT nth_selector_ending {
    13921392        $$ = nullptr;
    1393         if (isValidNthToken($4) && isValidNthSelectorList($5)) {
     1393        if (isValidNthToken($4) && selectorListDoesNotMatchAnyPseudoElement($5)) {
    13941394            auto selector = std::make_unique<CSSParserSelector>();
    13951395            selector->setMatch(CSSSelector::PseudoClass);
     
    14421442    }
    14431443
    1444     // used by :not
     1444    // Definition of :not().
     1445#if ENABLE_CSS_SELECTORS_LEVEL4
     1446    | ':' NOTFUNCTION maybe_space nested_selector_list maybe_space ')' {
     1447        $$ = nullptr;
     1448        if ($4 && selectorListDoesNotMatchAnyPseudoElement($4)) {
     1449            auto selector = std::make_unique<CSSParserSelector>();
     1450            selector->setMatch(CSSSelector::PseudoClass);
     1451            selector->setPseudoClassValue($2);
     1452            selector->adoptSelectorVector(*std::unique_ptr<Vector<std::unique_ptr<CSSParserSelector>>>($4));
     1453            if (selector->pseudoClassType() == CSSSelector::PseudoClassNot)
     1454                $$ = selector.release();
     1455        }
     1456    }
     1457#else
    14451458    | ':' NOTFUNCTION maybe_space compound_selector maybe_space ')' {
    14461459        std::unique_ptr<CSSParserSelector> selector($4);
     
    14561469        }
    14571470    }
     1471#endif
    14581472  ;
    14591473
  • trunk/Source/WebCore/css/CSSParserValues.cpp

    r173698 r174535  
    296296            if (selector->matchesPseudoElement())
    297297                return true;
     298            if (const CSSSelectorList* subselectorList = selector->selectorList()) {
     299                if (selectorListMatchesPseudoElement(subselectorList))
     300                    return true;
     301            }
    298302        }
    299303    }
  • trunk/Source/WebCore/css/CSSSelector.cpp

    r174259 r174535  
    407407            case CSSSelector::PseudoClassNot:
    408408                str.appendLiteral(":not(");
     409#if ENABLE(CSS_SELECTORS_LEVEL4)
     410                appendSelectorList(str, cs->selectorList());
     411#else
    409412                if (const CSSSelectorList* selectorList = cs->selectorList())
    410413                    str.append(selectorList->first()->selectorText());
     414#endif
    411415                str.append(')');
    412416                break;
  • trunk/Source/WebCore/css/SelectorChecker.cpp

    r174259 r174535  
    522522            const CSSSelectorList* selectorList = selector->selectorList();
    523523
     524#if !ENABLE(CSS_SELECTORS_LEVEL4)
    524525            // FIXME: We probably should fix the parser and make it never produce :not rules with missing selector list.
    525526            if (!selectorList)
    526527                return false;
    527 
    528             CheckingContextWithStatus subContext(context);
    529             subContext.inFunctionalPseudoClass = true;
    530             subContext.firstSelectorOfTheFragment = selectorList->first();
    531             for (subContext.selector = selectorList->first(); subContext.selector; subContext.selector = subContext.selector->tagHistory()) {
    532                 if (subContext.selector->match() == CSSSelector::PseudoClass) {
     528#endif
     529
     530            for (const CSSSelector* subselector = selectorList->first(); subselector; subselector = CSSSelectorList::next(subselector)) {
     531                CheckingContextWithStatus subcontext(context);
     532                subcontext.inFunctionalPseudoClass = true;
     533                subcontext.selector = subselector;
     534                subcontext.firstSelectorOfTheFragment = selectorList->first();
     535
     536#if ENABLE(CSS_SELECTORS_LEVEL4)
     537                PseudoId ignoreDynamicPseudo = NOPSEUDO;
     538                if (matchRecursively(subcontext, ignoreDynamicPseudo) == SelectorMatches) {
     539                    ASSERT(ignoreDynamicPseudo == NOPSEUDO);
     540                    return false;
     541                }
     542#else
     543                if (subcontext.selector->match() == CSSSelector::PseudoClass) {
    533544                    // :not cannot nest. I don't really know why this is a
    534545                    // restriction in CSS3, but it is, so let's honor it.
    535546                    // the parser enforces that this never occurs
    536                     ASSERT(subContext.selector->pseudoClassType() != CSSSelector::PseudoClassNot);
     547                    ASSERT(subcontext.selector->pseudoClassType() != CSSSelector::PseudoClassNot);
    537548                    // We select between :visited and :link when applying. We don't know which one applied (or not) yet.
    538                     if (subContext.selector->pseudoClassType() == CSSSelector::PseudoClassVisited || (subContext.selector->pseudoClassType() == CSSSelector::PseudoClassLink && subContext.visitedMatchType == VisitedMatchType::Enabled))
     549                    if (subcontext.selector->pseudoClassType() == CSSSelector::PseudoClassVisited || (subcontext.selector->pseudoClassType() == CSSSelector::PseudoClassLink && subcontext.visitedMatchType == VisitedMatchType::Enabled))
    539550                        return true;
    540551                }
    541                 if (!checkOne(subContext))
     552                if (!checkOne(subcontext))
    542553                    return true;
    543             }
     554#endif
     555            }
     556#if ENABLE(CSS_SELECTORS_LEVEL4)
     557            return true;
     558#endif
    544559        } else if (context.hasScrollbarPseudo) {
    545560            // CSS scrollbars match a specific subset of pseudo classes, and they have specialized rules for each
     
    961976        if (selector->match() == CSSSelector::PseudoClass) {
    962977            switch (selector->pseudoClassType()) {
     978#if! ENABLE(CSS_SELECTORS_LEVEL4)
    963979            case CSSSelector::PseudoClassNot:
    964980                {
     
    979995                }
    980996                break;
     997#endif
    981998            case CSSSelector::PseudoClassLink:
    982999                linkMatchType &= ~SelectorChecker::MatchVisited;
  • trunk/Source/WebCore/cssjit/SelectorCompiler.cpp

    r174259 r174535  
    626626                return FunctionType::CannotMatchAnything;
    627627
     628#if ENABLE(CSS_SELECTORS_LEVEL4)
     629            if (selectorList->first()->tagHistory() || CSSSelectorList::next(selectorList->first()))
     630                return FunctionType::CannotCompile;
     631#endif
     632
    628633            SelectorFragmentList notFragments;
    629634            FunctionType functionType = constructFragments(selectorList->first(), selectorContext, notFragments, FragmentsLevel::InFunctionalPseudoType, positionInRootFragments);
Note: See TracChangeset for help on using the changeset viewer.