<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[180753] releases/WebKitGTK/webkit-2.8</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/180753">180753</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-02-27 08:50:20 -0800 (Fri, 27 Feb 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/180413">r180413</a> - Language ranges containing asterisks must be quoted as strings
https://bugs.webkit.org/show_bug.cgi?id=141659

Reviewed by Benjamin Poulain.

Source/WebCore:

As specified in [1], the language ranges containing asterisks must be quoted as strings.

[1] http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo.

* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::realLex):

LayoutTests:

Ensure language ranges containing asterisks are quoted as strings.

* fast/css/css-selector-text-expected.txt:
* fast/css/css-selector-text.html:
* fast/css/parsing-css-lang-expected.txt:
* fast/css/parsing-css-lang.html:
* fast/selectors/lang-extended-filtering-expected.txt:
* fast/selectors/lang-extended-filtering.html:
* fast/selectors/lang-valid-extended-filtering-expected.txt:
* fast/selectors/lang-valid-extended-filtering.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcsscssselectortextexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcsscssselectortexthtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcssparsingcsslangexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcssparsingcsslanghtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastselectorslangextendedfilteringexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastselectorslangextendedfilteringhtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastselectorslangvalidextendedfilteringexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastselectorslangvalidextendedfilteringhtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorecssCSSGrammaryin">releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSGrammar.y.in</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorecssCSSParsercpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSParser.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit28LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2015-02-20  Dhi Aurrahman  &lt;diorahman@rockybars.com&gt;
+
+        Language ranges containing asterisks must be quoted as strings
+        https://bugs.webkit.org/show_bug.cgi?id=141659
+
+        Reviewed by Benjamin Poulain.
+
+        Ensure language ranges containing asterisks are quoted as strings.
+
+        * fast/css/css-selector-text-expected.txt:
+        * fast/css/css-selector-text.html:
+        * fast/css/parsing-css-lang-expected.txt:
+        * fast/css/parsing-css-lang.html:
+        * fast/selectors/lang-extended-filtering-expected.txt:
+        * fast/selectors/lang-extended-filtering.html:
+        * fast/selectors/lang-valid-extended-filtering-expected.txt:
+        * fast/selectors/lang-valid-extended-filtering.html:
+
</ins><span class="cx"> 2015-02-18  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION(r179347): Clearing the PageCache no longer clears the PageCache.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcsscssselectortextexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text-expected.txt (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text-expected.txt        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text-expected.txt        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -54,9 +54,9 @@
</span><span class="cx"> PASS parseThenSerializeRule(':target { }') is ':target { }'
</span><span class="cx"> PASS parseThenSerializeRule(':visited { }') is ':visited { }'
</span><span class="cx"> 
</span><del>-PASS parseThenSerializeRule(':lang(*-ab) { }') is ':lang(*-ab) { }'
-PASS parseThenSerializeRule(':lang(*-ab-) { }') is ':lang(*-ab-) { }'
-PASS parseThenSerializeRule(':lang(*-DE-1996) { }') is ':lang(*-DE-1996) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-ab&quot;) { }') is ':lang(&quot;*-ab&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-ab-&quot;) { }') is ':lang(&quot;*-ab-&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-DE-1996&quot;) { }') is ':lang(&quot;*-DE-1996&quot;) { }'
</ins><span class="cx"> 
</span><span class="cx"> PASS parseThenSerializeRule(':lang(a) { }') is ':lang(a) { }'
</span><span class="cx"> PASS parseThenSerializeRule(':lang(a, b, c) { }') is ':lang(a, b, c) { }'
</span><span class="lines">@@ -311,48 +311,48 @@
</span><span class="cx"> PASS parseThenSerializeRule(':lang(    en    ,    en    ,   en    ) { }') is ':lang(en, en, en) { }'
</span><span class="cx"> PASS parseThenSerializeRule(':lang(    en,en,en    ) { }') is ':lang(en, en, en) { }'
</span><span class="cx"> 
</span><del>-PASS parseThenSerializeRule(':lang(*-DE, *-CH, *-EN) { }') is ':lang(*-DE, *-CH, *-EN) { }'
-PASS parseThenSerializeRule(':lang(*-DE,*-CH,*-EN) { }') is ':lang(*-DE, *-CH, *-EN) { }'
-PASS parseThenSerializeRule(':lang(   *-DE  ,  *-CH  ,  *-EN  ) { }') is ':lang(*-DE, *-CH, *-EN) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-DE&quot;, &quot;*-CH&quot;, &quot;*-EN&quot;) { }') is ':lang(&quot;*-DE&quot;, &quot;*-CH&quot;, &quot;*-EN&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-DE&quot;,&quot;*-CH&quot;,&quot;*-EN&quot;) { }') is ':lang(&quot;*-DE&quot;, &quot;*-CH&quot;, &quot;*-EN&quot;) { }'
+PASS parseThenSerializeRule(':lang(   &quot;*-DE&quot;  ,  &quot;*-CH&quot;  ,  &quot;*-EN&quot;  ) { }') is ':lang(&quot;*-DE&quot;, &quot;*-CH&quot;, &quot;*-EN&quot;) { }'
</ins><span class="cx"> 
</span><span class="cx"> PASS parseThenSerializeRule(':lang(\\*) { }') is ':lang(*) { }'
</span><del>-PASS parseThenSerializeRule(':lang(*-\\*) { }') is ':lang(*-*) { }'
-PASS parseThenSerializeRule(':lang(*-\\*-\\*) { }') is ':lang(*-*-*) { }'
-PASS parseThenSerializeRule(':lang(*-\\*-\\*-\\*) { }') is ':lang(*-*-*-*) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-\\*&quot;) { }') is ':lang(&quot;*-*&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-\\*-\\*&quot;) { }') is ':lang(&quot;*-*-*&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-\\*-\\*-\\*&quot;) { }') is ':lang(&quot;*-*-*-*&quot;) { }'
</ins><span class="cx"> 
</span><span class="cx"> PASS parseThenSerializeRule(':lang(ab-\\*) { }') is ':lang(ab-*) { }'
</span><del>-PASS parseThenSerializeRule(':lang(*-ab-\\*) { }') is ':lang(*-ab-*) { }'
-PASS parseThenSerializeRule(':lang(*-ab-\\*-) { }') is ':lang(*-ab-*-) { }'
-PASS parseThenSerializeRule(':lang(*-foo-\\3A) { }') is ':lang(*-foo-:) { }'
-PASS parseThenSerializeRule(':lang(*-foo-\\3A\\`\\)) { }') is ':lang(*-foo-:`)) { }'
-PASS parseThenSerializeRule(':lang(*-foo-\\*) { }') is ':lang(*-foo-*) { }'
-PASS parseThenSerializeRule(':lang(*-foo-\\0072 aisin) { }') is ':lang(*-foo-raisin) { }'
-PASS parseThenSerializeRule(':lang(*-foo-\\0062 \\0061 r) { }') is ':lang(*-foo-bar) { }'
-PASS parseThenSerializeRule(':lang(*-foo-col\\6Fr) { }') is ':lang(*-foo-color) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-ab-\\*&quot;) { }') is ':lang(&quot;*-ab-*&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-ab-\\*-&quot;) { }') is ':lang(&quot;*-ab-*-&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-\\3A&quot;) { }') is ':lang(&quot;*-foo-:&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-\\3A\\`\\)&quot;) { }') is ':lang(&quot;*-foo-:`)&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-\\*&quot;) { }') is ':lang(&quot;*-foo-*&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-\\0072 aisin&quot;) { }') is ':lang(&quot;*-foo-raisin&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-\\0062 \\0061 r&quot;) { }') is ':lang(&quot;*-foo-bar&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-foo-col\\6Fr&quot;) { }') is ':lang(&quot;*-foo-color&quot;) { }'
</ins><span class="cx"> 
</span><span class="cx"> PASS parseThenSerializeRule(':lang(\\*    ) { }') is ':lang(*) { }'
</span><del>-PASS parseThenSerializeRule(':lang(*-en    ) { }') is ':lang(*-en) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*    ) { }') is ':lang(*-en-*) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr    ) { }') is ':lang(*-en-*-fr) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr, br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,   br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(  *-en-\\*-fr,   br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(    *-en-\\*-fr,   br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(    *-en-\\*-fr  ,   br    ) { }') is ':lang(*-en-*-fr, br) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,*-br-zh    ) { }') is ':lang(*-en-*-fr, *-br-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr, *-br-zh    ) { }') is ':lang(*-en-*-fr, *-br-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,   *-br-zh    ) { }') is ':lang(*-en-*-fr, *-br-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,     *-br-zh    ) { }') is ':lang(*-en-*-fr, *-br-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,       *-br-zh    ) { }') is ':lang(*-en-*-fr, *-br-zh) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-en&quot;    ) { }') is ':lang(&quot;*-en&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*&quot;    ) { }') is ':lang(&quot;*-en-*&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;, br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,   br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(  &quot;*-en-\\*-fr&quot;,   br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(    &quot;*-en-\\*-fr&quot;,   br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(    &quot;*-en-\\*-fr&quot;  ,   br    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,&quot;*-br-zh&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;, &quot;*-br-zh&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;, &quot;*-br-zh&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;, &quot;*-br-zh&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,   &quot;*-br-zh&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;, &quot;*-br-zh&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,     &quot;*-br-zh&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;, &quot;*-br-zh&quot;) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,       &quot;*-br-zh&quot;    ) { }') is ':lang(&quot;*-en-*-fr&quot;, &quot;*-br-zh&quot;) { }'
</ins><span class="cx"> 
</span><del>-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr, br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,   br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(*-en-\\*-fr,      br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(  *-en-\\*-fr,      br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(  *-en-\\*-fr ,      br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
-PASS parseThenSerializeRule(':lang(  *-en-\\*-fr  ,      br-\\*-zh    ) { }') is ':lang(*-en-*-fr, br-*-zh) { }'
</del><ins>+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;, br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,   br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(&quot;*-en-\\*-fr&quot;,      br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(  &quot;*-en-\\*-fr&quot;,      br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(  &quot;*-en-\\*-fr&quot; ,      br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
+PASS parseThenSerializeRule(':lang(  &quot;*-en-\\*-fr&quot;  ,      br-\\*-zh    ) { }') is ':lang(&quot;*-en-*-fr&quot;, br-*-zh) { }'
</ins><span class="cx"> 
</span><span class="cx"> PASS parseThenSerializeRule(':lang(\\*) { }') is ':lang(*) { }'
</span><span class="cx"> PASS parseThenSerializeRule(':lang(\\* ) { }') is ':lang(*) { }'
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcsscssselectortexthtml"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text.html (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text.html        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/css-selector-text.html        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -87,9 +87,9 @@
</span><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><del>-testSelectorRoundTrip(&quot;:lang(*-ab)&quot;);
-testSelectorRoundTrip(&quot;:lang(*-ab-)&quot;);
-testSelectorRoundTrip(&quot;:lang(*-DE-1996)&quot;);
</del><ins>+testSelectorRoundTrip(':lang(&quot;*-ab&quot;)');
+testSelectorRoundTrip(':lang(&quot;*-ab-&quot;)');
+testSelectorRoundTrip(':lang(&quot;*-DE-1996&quot;)');
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><span class="lines">@@ -394,58 +394,58 @@
</span><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-DE, *-CH, *-EN) { }')&quot;, &quot;':lang(*-DE, *-CH, *-EN) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-DE,*-CH,*-EN) { }')&quot;, &quot;':lang(*-DE, *-CH, *-EN) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(   *-DE  ,  *-CH  ,  *-EN  ) { }')&quot;, &quot;':lang(*-DE, *-CH, *-EN) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-DE\&quot;, \&quot;*-CH\&quot;, \&quot;*-EN\&quot;) { }')&quot;, &quot;':lang(\&quot;*-DE\&quot;, \&quot;*-CH\&quot;, \&quot;*-EN\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-DE\&quot;,\&quot;*-CH\&quot;,\&quot;*-EN\&quot;) { }')&quot;, &quot;':lang(\&quot;*-DE\&quot;, \&quot;*-CH\&quot;, \&quot;*-EN\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(   \&quot;*-DE\&quot;  ,  \&quot;*-CH\&quot;  ,  \&quot;*-EN\&quot;  ) { }')&quot;, &quot;':lang(\&quot;*-DE\&quot;, \&quot;*-CH\&quot;, \&quot;*-EN\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><span class="cx"> shouldBe(&quot;parseThenSerializeRule(':lang(\\\\*) { }')&quot;, &quot;':lang(*) { }'&quot;);
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-\\\\*) { }')&quot;, &quot;':lang(*-*) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-\\\\*-\\\\*) { }')&quot;, &quot;':lang(*-*-*) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-\\\\*-\\\\*-\\\\*) { }')&quot;, &quot;':lang(*-*-*-*) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-\\\\*\&quot;) { }')&quot;, &quot;':lang(\&quot;*-*\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-\\\\*-\\\\*\&quot;) { }')&quot;, &quot;':lang(\&quot;*-*-*\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-\\\\*-\\\\*-\\\\*\&quot;) { }')&quot;, &quot;':lang(\&quot;*-*-*-*\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><span class="cx"> shouldBe(&quot;parseThenSerializeRule(':lang(ab-\\\\*) { }')&quot;, &quot;':lang(ab-*) { }'&quot;);
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-ab-\\\\*) { }')&quot;, &quot;':lang(*-ab-*) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-ab-\\\\*-) { }')&quot;, &quot;':lang(*-ab-*-) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-ab-\\\\*\&quot;) { }')&quot;, &quot;':lang(\&quot;*-ab-*\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-ab-\\\\*-\&quot;) { }')&quot;, &quot;':lang(\&quot;*-ab-*-\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-\\\\3A) { }')&quot;, &quot;':lang(*-foo-:) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-\\\\3A\\\\`\\\\)) { }')&quot;, &quot;':lang(*-foo-:`)) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-\\\\*) { }')&quot;, &quot;':lang(*-foo-*) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-\\\\3A\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-:\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-\\\\3A\\\\`\\\\)\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-:`)\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-\\\\*\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-*\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-\\\\0072 aisin) { }')&quot;, &quot;':lang(*-foo-raisin) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-\\\\0062 \\\\0061 r) { }')&quot;, &quot;':lang(*-foo-bar) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-foo-col\\\\6Fr) { }')&quot;, &quot;':lang(*-foo-color) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-\\\\0072 aisin\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-raisin\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-\\\\0062 \\\\0061 r\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-bar\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-foo-col\\\\6Fr\&quot;) { }')&quot;, &quot;':lang(\&quot;*-foo-color\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><span class="cx"> shouldBe(&quot;parseThenSerializeRule(':lang(\\\\*    ) { }')&quot;, &quot;':lang(*) { }'&quot;);
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-en    ) { }')&quot;, &quot;':lang(*-en) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*    ) { }')&quot;, &quot;':lang(*-en-*) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr    ) { }')&quot;, &quot;':lang(*-en-*-fr) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr, br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,   br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(  *-en-\\\\*-fr,   br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(    *-en-\\\\*-fr,   br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(    *-en-\\\\*-fr  ,   br    ) { }')&quot;, &quot;':lang(*-en-*-fr, br) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,*-br-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, *-br-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr, *-br-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, *-br-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,   *-br-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, *-br-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,     *-br-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, *-br-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,       *-br-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, *-br-zh) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;, br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,   br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(  \&quot;*-en-\\\\*-fr\&quot;,   br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(    \&quot;*-en-\\\\*-fr\&quot;,   br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(    \&quot;*-en-\\\\*-fr\&quot;  ,   br    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,\&quot;*-br-zh\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, \&quot;*-br-zh\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;, \&quot;*-br-zh\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, \&quot;*-br-zh\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,   \&quot;*-br-zh\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, \&quot;*-br-zh\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,     \&quot;*-br-zh\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, \&quot;*-br-zh\&quot;) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,       \&quot;*-br-zh\&quot;    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, \&quot;*-br-zh\&quot;) { }'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span><del>-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr, br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,   br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(*-en-\\\\*-fr,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(  *-en-\\\\*-fr,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(  *-en-\\\\*-fr ,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
-shouldBe(&quot;parseThenSerializeRule(':lang(  *-en-\\\\*-fr  ,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(*-en-*-fr, br-*-zh) { }'&quot;);
</del><ins>+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;, br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,   br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(\&quot;*-en-\\\\*-fr\&quot;,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(  \&quot;*-en-\\\\*-fr\&quot;,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(  \&quot;*-en-\\\\*-fr\&quot; ,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
+shouldBe(&quot;parseThenSerializeRule(':lang(  \&quot;*-en-\\\\*-fr\&quot;  ,      br-\\\\*-zh    ) { }')&quot;, &quot;':lang(\&quot;*-en-*-fr\&quot;, br-*-zh) { }'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> debug('');
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcssparsingcsslangexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang-expected.txt (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang-expected.txt        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang-expected.txt        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -4,252 +4,252 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> valid language ranges
</span><del>-PASS document.querySelector(&quot;:lang(e)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(e)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(e)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(e    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(e    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(e)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en--)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en--)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en--)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en--    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en--    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en--)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr-)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr-)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr-)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr-    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr-    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr-)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr--)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr--)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr--)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en-fr--    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en-fr--    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-fr--)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en--fr)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en--fr)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en--fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en--fr    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en--fr    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en--fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---fr)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---fr)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---fr    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---fr    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---fr)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---fr---)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---fr---)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---fr---)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(en---fr---    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(en---fr---    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en---fr---)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-DE)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-DE)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-DE    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-DE    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-DE-1996)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-DE-1996)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-DE-1996)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-DE-1996    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-DE-1996    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-DE-1996)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latn-DE)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latn-DE)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latn-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latn-DE    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latn-DE    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latn-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latf-DE)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latf-DE)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latf-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latf-DE    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latf-DE    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latf-DE)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latn-DE-1996)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latn-DE-1996)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latn-DE-1996)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-Latn-DE-1996    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-Latn-DE-1996    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-Latn-DE-1996)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-CH)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-CH)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(de-CH    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(de-CH    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(de-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(it-CH)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(it-CH)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(it-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(it-CH    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(it-CH    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(it-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(fr-CH)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(fr-CH)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(fr-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(fr-CH    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(fr-CH    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(fr-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(rm-CH)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(rm-CH)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(rm-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(rm-CH    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(rm-CH    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(rm-CH)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(*-CH)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(&quot;*-CH&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-CH)&quot;
-PASS document.querySelector(&quot;:lang(*-CH    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-CH\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-CH&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-CH)&quot;
-PASS document.querySelector(&quot;:lang(*-DE-1996)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-CH\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-DE-1996&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-DE-1996)&quot;
-PASS document.querySelector(&quot;:lang(*-DE-1996    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-DE-1996\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-DE-1996&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-DE-1996)&quot;
-PASS document.querySelector(&quot;:lang(*-br-zh)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-DE-1996\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-br-zh&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-br-zh)&quot;
-PASS document.querySelector(&quot;:lang(*-br-zh    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-br-zh\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-br-zh&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-br-zh)&quot;
-PASS document.querySelector(&quot;:lang(id-\\*-sumatra)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-br-zh\&quot;)&quot;
+PASS document.querySelector(':lang(id-\\*-sumatra)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(id-*-sumatra)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(id-\\*-sumatra    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(id-\\*-sumatra    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(id-*-sumatra)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(*-en-\\*-fr)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(&quot;*-en-\\*-fr&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-en-*-fr)&quot;
-PASS document.querySelector(&quot;:lang(*-en-\\*-fr    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-en-*-fr\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-en-\\*-fr&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-en-*-fr)&quot;
-PASS document.querySelector(&quot;:lang(*-en-\\*-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-en-*-fr\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-en-\\*-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-en-*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-en-\\*-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-en-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-en-\\*-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-en-*-*)&quot;
-PASS document.querySelector(&quot;:lang(\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-en-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(\\*)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(\\*    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*)&quot;
</span><del>-PASS document.querySelector(&quot;:lang(*-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.querySelector(':lang(&quot;*-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-\\*-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-\\*-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-\\*-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-\\*-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-\\*-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-\\*-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*-*)&quot;
-PASS document.querySelector(&quot;:lang(*-\\*-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-\\*-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-*-*)&quot;
-PASS document.querySelector(&quot;:lang(ab-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-*-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;ab-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(ab-*)&quot;
-PASS document.querySelector(&quot;:lang(ab-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;ab-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;ab-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(ab-*)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;ab-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*-)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*-&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*-)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*-    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*-\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*-&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*-)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*--)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*-\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*--&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*--)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*--    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*--\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*--&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*--)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*---)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*--\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*---&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*---)&quot;
-PASS document.querySelector(&quot;:lang(*-ab-\\*---    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*---\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-ab-\\*---&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-ab-*---)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-ab-*---\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:\\`\\))&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:\\`\\)&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:`))&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:\\`\\)    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:`)\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:\\`\\)&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:`))&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:`)\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:*)&quot;
-PASS document.querySelector(&quot;:lang(*-foo-\\:\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;*-foo-\\:\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(*-foo-:*)&quot;
-PASS document.querySelector(&quot;:lang(en-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;*-foo-:*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;en-\\*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-*)&quot;
-PASS document.querySelector(&quot;:lang(en-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;en-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;en-\\*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(en-*)&quot;
-PASS document.querySelector(&quot;:lang(fr-\\*)&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;en-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;fr-*&quot;)') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(fr-*)&quot;
-PASS document.querySelector(&quot;:lang(fr-\\*    )&quot;) did not throw exception.
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;fr-*\&quot;)&quot;
+PASS document.querySelector(':lang(&quot;fr-*&quot;    )') did not throw exception.
</ins><span class="cx"> PASS document.getElementById('style-container').sheet.cssRules.length is 1
</span><del>-PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(fr-*)&quot;
</del><ins>+PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is &quot;:lang(\&quot;fr-*\&quot;)&quot;
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcssparsingcsslanghtml"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang.html (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang.html        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/css/parsing-css-lang.html        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :lang(stringList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidLanguageRange(languageRangeString, expectedSerializedLanguageRange) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:lang(' + languageRangeString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(\':lang(' + languageRangeString.replace(/\\/g, '\\\\') + ')\')', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':lang(' + languageRangeString + ') { }';
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> var validLanguageRanges = [
</span><del>-    
</del><ins>+
</ins><span class="cx">     &quot;e&quot;,
</span><span class="cx">     &quot;en&quot;,
</span><span class="cx">     &quot;en-&quot;,
</span><span class="lines">@@ -46,31 +46,31 @@
</span><span class="cx">     &quot;fr-CH&quot;, 
</span><span class="cx">     &quot;rm-CH&quot;,
</span><span class="cx"> 
</span><del>-    &quot;*-CH&quot;,
-    &quot;*-DE-1996&quot;,
-    &quot;*-br-zh&quot;,
</del><ins>+    '&quot;*-CH&quot;',
+    '&quot;*-DE-1996&quot;',
+    '&quot;*-br-zh&quot;',
</ins><span class="cx">     &quot;id-\\*-sumatra&quot;,
</span><del>-    &quot;*-en-\\*-fr&quot;,
-    &quot;*-en-\\*-\\*&quot;,
</del><ins>+    '&quot;*-en-\\*-fr&quot;',
+    '&quot;*-en-\\*-\\*&quot;',
</ins><span class="cx"> 
</span><span class="cx">     &quot;\\*&quot;,
</span><del>-    &quot;*-\\*&quot;,
-    &quot;*-\\*-\\*&quot;,
-    &quot;*-\\*-\\*&quot;,
</del><ins>+    '&quot;*-\\*&quot;',
+    '&quot;*-\\*-\\*&quot;',
+    '&quot;*-\\*-\\*&quot;',
</ins><span class="cx"> 
</span><del>-    &quot;ab-\\*&quot;,
-    &quot;*-ab-\\*&quot;,
-    &quot;*-ab-\\*-&quot;,
-    &quot;*-ab-\\*--&quot;,
-    &quot;*-ab-\\*---&quot;,
</del><ins>+    '&quot;ab-\\*&quot;',
+    '&quot;*-ab-\\*&quot;',
+    '&quot;*-ab-\\*-&quot;',
+    '&quot;*-ab-\\*--&quot;',
+    '&quot;*-ab-\\*---&quot;',
</ins><span class="cx"> 
</span><del>-    &quot;*-foo-\\:&quot;,
-    &quot;*-foo-\\:&quot;,
-    &quot;*-foo-\\:\\`\\)&quot;,
-    &quot;*-foo-\\:\\*&quot;,
</del><ins>+    '&quot;*-foo-\\:&quot;',
+    '&quot;*-foo-\\:&quot;',
+    '&quot;*-foo-\\:\\`\\)&quot;',
+    '&quot;*-foo-\\:\\*&quot;',
</ins><span class="cx"> 
</span><del>-    &quot;en-\\*&quot;,
-    &quot;fr-\\*&quot;
</del><ins>+    '&quot;en-\\*&quot;',
+    '&quot;fr-*&quot;'
</ins><span class="cx"> ];
</span><span class="cx"> 
</span><span class="cx"> debug(&quot;valid language ranges&quot;);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastselectorslangextendedfilteringexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering-expected.txt (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering-expected.txt        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering-expected.txt        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -80,19 +80,19 @@
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(tic-toe-tac)&quot;).length is 0
</span><span class="cx"> 
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(\\*)&quot;).length is 35
</span><del>-PASS document.querySelectorAll(&quot;:lang(*-CH)&quot;).length is 5
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length is 5
</ins><span class="cx"> 
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(a)&quot;).length is 2
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(a-\\*)&quot;).length is 1
</span><del>-PASS document.querySelectorAll(&quot;:lang(*-fr-\\*)&quot;).length is 2
-PASS document.querySelectorAll(&quot;:lang(*-\\*-lang)&quot;).length is 2
-PASS document.querySelectorAll(&quot;:lang(*-\\*-aa-bb-cc-dd)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-\\*-bb-cc-dd)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-\\*-\\*-cc-dd)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-\\*-\\*-\\*-dd)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-\\*-\\*-\\*-\\*)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-aa-\\*-cc-\\*)&quot;).length is 3
-PASS document.querySelectorAll(&quot;:lang(*-\\*-\\*-bb-\\*)&quot;).length is 3
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-fr-\\*&quot;)').length is 2
+PASS document.querySelectorAll(':lang(&quot;*-\\*-lang&quot;)').length is 2
+PASS document.querySelectorAll(':lang(&quot;*-\\*-aa-bb-cc-dd&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-\\*-bb-cc-dd&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-\\*-\\*-cc-dd&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-\\*-\\*-\\*-dd&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-\\*-\\*-\\*-\\*&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-aa-\\*-cc-\\*&quot;)').length is 3
+PASS document.querySelectorAll(':lang(&quot;*-\\*-\\*-bb-\\*&quot;)').length is 3
</ins><span class="cx"> PASS document.querySelectorAll(&quot;:lang(fooÉ)&quot;).length is 1
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(fOOÉ)&quot;).length is 1
</span><span class="cx"> PASS document.querySelectorAll(&quot;:lang(FoOÉ)&quot;).length is 1
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastselectorslangextendedfilteringhtml"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering.html (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering.html        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-extended-filtering.html        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -157,22 +157,22 @@
</span><span class="cx">     debug('');
</span><span class="cx"> 
</span><span class="cx">     shouldBe('document.querySelectorAll(&quot;:lang(\\\\*)&quot;).length', '35');
</span><del>-    shouldBe('document.querySelectorAll(&quot;:lang(*-CH)&quot;).length', '5');
</del><ins>+    shouldBe('document.querySelectorAll(\':lang(&quot;*-CH&quot;)\').length', '5');
</ins><span class="cx"> 
</span><span class="cx">     debug('');  
</span><span class="cx"> 
</span><span class="cx">     shouldBe('document.querySelectorAll(&quot;:lang(a)&quot;).length', '2');
</span><span class="cx">     shouldBe('document.querySelectorAll(&quot;:lang(a-\\\\*)&quot;).length', '1');
</span><del>-    shouldBe('document.querySelectorAll(&quot;:lang(*-fr-\\\\*)&quot;).length', '2');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-lang)&quot;).length', '2');   
</del><ins>+    shouldBe('document.querySelectorAll(\':lang(&quot;*-fr-\\\\*\&quot;)\').length', '2');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-lang\&quot;)\').length', '2');   
</ins><span class="cx"> 
</span><del>-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-aa-bb-cc-dd)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-\\\\*-bb-cc-dd)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-\\\\*-\\\\*-cc-dd)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-\\\\*-\\\\*-\\\\*-dd)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-\\\\*-\\\\*-\\\\*-\\\\*)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-aa-\\\\*-cc-\\\\*)&quot;).length', '3');
-    shouldBe('document.querySelectorAll(&quot;:lang(*-\\\\*-\\\\*-bb-\\\\*)&quot;).length', '3');
</del><ins>+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-aa-bb-cc-dd&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-\\\\*-bb-cc-dd&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-\\\\*-\\\\*-cc-dd&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-\\\\*-\\\\*-\\\\*-dd&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-\\\\*-\\\\*-\\\\*-\\\\*\&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-aa-\\\\*-cc-\\\\*\&quot;)\').length', '3');
+    shouldBe('document.querySelectorAll(\':lang(&quot;*-\\\\*-\\\\*-bb-\\\\*&quot;)\').length', '3');
</ins><span class="cx"> 
</span><span class="cx">     shouldBe('document.querySelectorAll(&quot;:lang(fooÉ)&quot;).length', '1');
</span><span class="cx">     shouldBe('document.querySelectorAll(&quot;:lang(fOOÉ)&quot;).length', '1');
</span><span class="lines">@@ -240,4 +240,4 @@
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastselectorslangvalidextendedfilteringexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering-expected.txt (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering-expected.txt        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering-expected.txt        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -8,35 +8,35 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(af-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(af-ZA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(af-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ZA)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ZA&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ar-AE
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-AE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-AE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-AE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ar-BH
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-BH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BH)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BH&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ar-YE
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-YE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ar-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-YE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-YE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - art-lojban
</span><span class="cx"> PASS document.querySelectorAll(':lang(art)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(art-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(art-lojban)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(art-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-lojban)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-lojban&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - az-Arab-IR
</span><span class="cx"> PASS document.querySelectorAll(':lang(az)').length == 1 is true
</span><span class="lines">@@ -45,56 +45,56 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(az-\\*-IR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(az-Arab-IR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(az-Arab-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Arab-IR)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Arab-IR&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - be-BY
</span><span class="cx"> PASS document.querySelectorAll(':lang(be)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(be-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(be-BY)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(be-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BY)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BY&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - bg-BG
</span><span class="cx"> PASS document.querySelectorAll(':lang(bg)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(bg-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(bg-BG)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(bg-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BG)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BG&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ca-ES
</span><span class="cx"> PASS document.querySelectorAll(':lang(ca)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ca-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ca-ES)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ca-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ES)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ES&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - cs-CZ
</span><span class="cx"> PASS document.querySelectorAll(':lang(cs)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cs-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cs-CZ)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cs-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CZ)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CZ&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - cy-GB
</span><span class="cx"> PASS document.querySelectorAll(':lang(cy)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cy-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cy-GB)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(cy-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-GB)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-GB&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-AT
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-AT)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-AT)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-AT&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-CH-1996
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH-1996)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH-1996&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-CH-1997
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -112,14 +112,14 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*-1997)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH-1997)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH-1997)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH-1997&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-DE
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-DE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-DE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-DE-1996
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-DE-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-DE-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-DE-1996)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-DE-1996&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-Latn-DE
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latn-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latn-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Latn-DE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Latn-DE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-Latf-DE
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latf-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latf-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Latf-DE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Latf-DE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-Latn-DE-1996
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="lines">@@ -157,21 +157,21 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latn-\\*-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latn-DE-1996)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-Latn-DE-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Latn-DE-1996)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Latn-DE-1996&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - en-US
</span><span class="cx"> PASS document.querySelectorAll(':lang(en)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-US)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-US)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-US&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - en-GB
</span><span class="cx"> PASS document.querySelectorAll(':lang(en)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-GB)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-GB)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-GB&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - en-Latn-Brai
</span><span class="cx"> PASS document.querySelectorAll(':lang(en)').length == 1 is true
</span><span class="lines">@@ -180,14 +180,14 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-\\*-Brai)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-Latn-Brai)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(en-Latn-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Latn-Brai)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Latn-Brai&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - es-ES
</span><span class="cx"> PASS document.querySelectorAll(':lang(es)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-ES)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ES)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ES&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - es-ES-valencia
</span><span class="cx"> PASS document.querySelectorAll(':lang(es)').length == 1 is true
</span><span class="lines">@@ -196,168 +196,168 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-\\*-valencia)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-ES-valencia)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-ES-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ES-valencia)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ES-valencia&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - es-AR
</span><span class="cx"> PASS document.querySelectorAll(':lang(es)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-AR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(es-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-AR)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-AR&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-BE
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-BE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-CA
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-CA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CA)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CA&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-FR
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-FR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-FR)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-FR&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-LU
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-LU)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-LU)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-LU&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-MC
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-MC)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-MC)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-MC&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - gl-ES
</span><span class="cx"> PASS document.querySelectorAll(':lang(gl)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gl-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gl-ES)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gl-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ES)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ES&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - gu-IN
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-IN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-IN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-IN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - hr-BA
</span><span class="cx"> PASS document.querySelectorAll(':lang(hr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hr-BA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BA)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BA&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - id-ID
</span><span class="cx"> PASS document.querySelectorAll(':lang(id)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(id-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(id-ID)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(id-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ID)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ID&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - i-klingon
</span><span class="cx"> PASS document.querySelectorAll(':lang(i)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(i-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(i-klingon)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(i-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-klingon)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-klingon&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ja-JP
</span><span class="cx"> PASS document.querySelectorAll(':lang(ja)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ja-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ja-JP)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ja-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-JP)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-JP&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ko-KR
</span><span class="cx"> PASS document.querySelectorAll(':lang(ko)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ko-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ko-KR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ko-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-KR)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-KR&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - lt-LT
</span><span class="cx"> PASS document.querySelectorAll(':lang(lt)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(lt-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(lt-LT)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(lt-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-LT)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-LT&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - mi-NZ
</span><span class="cx"> PASS document.querySelectorAll(':lang(mi)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mi-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mi-NZ)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mi-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-NZ)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-NZ&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - mn-MN
</span><span class="cx"> PASS document.querySelectorAll(':lang(mn)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mn-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mn-MN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(mn-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-MN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-MN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - nl-BE
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-BE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - nl-NL
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-NL)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(nl-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-NL)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-NL&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - pl-PL
</span><span class="cx"> PASS document.querySelectorAll(':lang(pl)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(pl-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(pl-PL)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(pl-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-PL)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-PL&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - qu-BO
</span><span class="cx"> PASS document.querySelectorAll(':lang(qu)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(qu-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(qu-BO)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(qu-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BO)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BO&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - se-FI
</span><span class="cx"> PASS document.querySelectorAll(':lang(se)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-FI)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-FI)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-FI&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - se-NO
</span><span class="cx"> PASS document.querySelectorAll(':lang(se)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-NO)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-NO)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-NO&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sgn-BE-FR
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn)').length == 1 is true
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-\\*-FR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-BE-FR)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-BE-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BE-FR)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BE-FR&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sgn-BE-NL
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn)').length == 1 is true
</span><span class="lines">@@ -375,7 +375,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-\\*-NL)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-BE-NL)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-BE-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-BE-NL)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-BE-NL&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sgn-CH-DE
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn)').length == 1 is true
</span><span class="lines">@@ -384,7 +384,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-\\*-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-CH-DE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sgn-CH-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH-DE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH-DE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sr-Latn-RS
</span><span class="cx"> PASS document.querySelectorAll(':lang(sr)').length == 1 is true
</span><span class="lines">@@ -393,49 +393,49 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(sr-\\*-RS)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sr-Latn-RS)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sr-Latn-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Latn-RS)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Latn-RS&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sv-SE
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-SE)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-SE)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-SE&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - syr-SY
</span><span class="cx"> PASS document.querySelectorAll(':lang(syr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(syr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(syr-SY)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(syr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-SY)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-SY&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - tt-RU
</span><span class="cx"> PASS document.querySelectorAll(':lang(tt)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(tt-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(tt-RU)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(tt-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-RU)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-RU&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - uz-UZ
</span><span class="cx"> PASS document.querySelectorAll(':lang(uz)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(uz-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(uz-UZ)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(uz-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-UZ)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-UZ&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - vi-VN
</span><span class="cx"> PASS document.querySelectorAll(':lang(vi)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(vi-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(vi-VN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(vi-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-VN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-VN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - xh-ZA
</span><span class="cx"> PASS document.querySelectorAll(':lang(xh)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xh-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xh-ZA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xh-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ZA)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ZA&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - yue-Hant-HK
</span><span class="cx"> PASS document.querySelectorAll(':lang(yue)').length == 1 is true
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(yue-\\*-HK)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(yue-Hant-HK)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(yue-Hant-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Hant-HK)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Hant-HK&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zh-yue-Hant-HK
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh)').length == 1 is true
</span><span class="lines">@@ -455,14 +455,14 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-yue-\\*-HK)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-yue-Hant-HK)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-yue-Hant-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-yue-Hant-HK)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-yue-Hant-HK&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zh-CN
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-CN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zh-Hant-CN
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh)').length == 1 is true
</span><span class="lines">@@ -471,7 +471,7 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*-CN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-Hant-CN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-Hant-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Hant-CN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Hant-CN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zh-Hans-CN
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh)').length == 1 is true
</span><span class="lines">@@ -480,113 +480,113 @@
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*-CN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-Hans-CN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-Hans-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Hans-CN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Hans-CN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zh-Hant
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-Hant)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zh-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-Hant)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-Hant&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(de)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(de-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - it-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(it)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(it-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(it-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(it-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - fr-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(fr-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 3 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 3 is true
</ins><span class="cx"> 
</span><span class="cx"> - rm-CH
</span><span class="cx"> PASS document.querySelectorAll(':lang(rm)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(rm-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(rm-CH)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(rm-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 4 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 4 is true
</ins><span class="cx"> 
</span><span class="cx"> - de-CH,it-CH,fr-CH,rm-CH
</span><del>-PASS document.querySelectorAll(':lang(*-CH)').length == 4 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-CH&quot;)').length == 4 is true
</ins><span class="cx"> 
</span><span class="cx"> - hi-IN
</span><span class="cx"> PASS document.querySelectorAll(':lang(hi)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hi-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hi-IN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(hi-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-IN)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-IN&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - gu-IN
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-IN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(gu-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-IN)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-IN&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - kok-IN
</span><span class="cx"> PASS document.querySelectorAll(':lang(kok)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(kok-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(kok-IN)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(kok-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-IN)').length == 3 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-IN&quot;)').length == 3 is true
</ins><span class="cx"> 
</span><span class="cx"> - hi-IN,gu-IN,kok-IN
</span><del>-PASS document.querySelectorAll(':lang(*-IN)').length == 3 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-IN&quot;)').length == 3 is true
</ins><span class="cx"> 
</span><span class="cx"> - xa-ZA
</span><span class="cx"> PASS document.querySelectorAll(':lang(xa)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xa-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xa-ZA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(xa-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ZA)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ZA&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - zu-ZA
</span><span class="cx"> PASS document.querySelectorAll(':lang(zu)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zu-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zu-ZA)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(zu-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-ZA)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ZA&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - xa-ZA,zu-ZA
</span><del>-PASS document.querySelectorAll(':lang(*-ZA)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-ZA&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - se-FI
</span><span class="cx"> PASS document.querySelectorAll(':lang(se)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-FI)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(se-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-FI)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-FI&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - sv-FI
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-FI)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(sv-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-FI)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-FI&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - se-FI,sv-FI
</span><del>-PASS document.querySelectorAll(':lang(*-FI)').length == 2 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-FI&quot;)').length == 2 is true
</ins><span class="cx"> 
</span><span class="cx"> - ur-PK
</span><span class="cx"> PASS document.querySelectorAll(':lang(ur)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ur-\\*)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ur-PK)').length == 1 is true
</span><span class="cx"> PASS document.querySelectorAll(':lang(ur-\\*)').length == 1 is true
</span><del>-PASS document.querySelectorAll(':lang(*-PK)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-PK&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> - ur-PK
</span><del>-PASS document.querySelectorAll(':lang(*-PK)').length == 1 is true
</del><ins>+PASS document.querySelectorAll(':lang(&quot;*-PK&quot;)').length == 1 is true
</ins><span class="cx"> 
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastselectorslangvalidextendedfilteringhtml"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering.html (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering.html        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/selectors/lang-valid-extended-filtering.html        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">         if (i &gt; 0)
</span><span class="cx">             suffixRange += '-' + rangeSubtags[i];  
</span><span class="cx">     }
</span><del>-    shouldBeTrue(&quot;document.querySelectorAll(':lang(*&quot; + suffixRange + &quot;)').length == &quot; + length);
</del><ins>+    shouldBeTrue(&quot;document.querySelectorAll(':lang(\&quot;*&quot; + suffixRange + &quot;\&quot;)').length == &quot; + length);
</ins><span class="cx">     document.querySelector('#target').removeAttribute('lang');
</span><span class="cx"> 
</span><span class="cx">     debug('');
</span><span class="lines">@@ -58,10 +58,11 @@
</span><span class="cx">     for (var i = 0; i &lt; languages.length; i++) {
</span><span class="cx">         var language = languages[i];
</span><span class="cx">         var ranges = language.split('-');
</span><del>-        var range = '*';
</del><ins>+        var range = '&quot;*';
</ins><span class="cx">         for (var j = 1; j &lt; ranges.length; j++) {
</span><span class="cx">             range += '-' + ranges[j];
</span><span class="cx">         }
</span><ins>+        range += '&quot;';
</ins><span class="cx">     }
</span><span class="cx">     shouldBeTrue(&quot;document.querySelectorAll(':lang(&quot; + range + &quot;)').length == &quot; + languages.length);
</span><span class="cx">     debug('');
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-02-20  Dhi Aurrahman  &lt;diorahman@rockybars.com&gt;
+
+        Language ranges containing asterisks must be quoted as strings
+        https://bugs.webkit.org/show_bug.cgi?id=141659
+
+        Reviewed by Benjamin Poulain.
+
+        As specified in [1], the language ranges containing asterisks must be quoted as strings.
+
+        [1] http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo.
+
+        * css/CSSGrammar.y.in:
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::realLex):
+
</ins><span class="cx"> 2015-02-18  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION(r179347): Clearing the PageCache no longer clears the PageCache.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorecssCSSGrammaryin"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSGrammar.y.in (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSGrammar.y.in        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSGrammar.y.in        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -221,7 +221,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE_CSS_SELECTORS_LEVEL4
</span><span class="cx"> %token &lt;string&gt; DIRFUNCTION
</span><del>-%token &lt;string&gt; LANGRANGE
</del><span class="cx"> %token &lt;string&gt; LANGFUNCTION
</span><span class="cx"> %token &lt;string&gt; ROLEFUNCTION
</span><span class="cx"> #endif
</span><span class="lines">@@ -1091,7 +1090,7 @@
</span><span class="cx">     ;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE_CSS_SELECTORS_LEVEL4
</span><del>-lang_range: LANGRANGE | IDENT | STRING { $$.setTokenType(TokenType::AtomicStringToken); } ;
</del><ins>+lang_range: IDENT | STRING { $$.setTokenType(TokenType::AtomicStringToken); } ;
</ins><span class="cx"> 
</span><span class="cx"> comma_separated_lang_ranges:
</span><span class="cx">     lang_range %prec UNIMPORTANT_TOK {
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSParser.cpp (180752 => 180753)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSParser.cpp        2015-02-27 16:12:13 UTC (rev 180752)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/css/CSSParser.cpp        2015-02-27 16:50:20 UTC (rev 180753)
</span><span class="lines">@@ -11642,18 +11642,6 @@
</span><span class="cx">         if (*currentCharacter&lt;SrcCharacterType&gt;() == '=') {
</span><span class="cx">             ++currentCharacter&lt;SrcCharacterType&gt;();
</span><span class="cx">             m_token = CONTAINS;
</span><del>-#if ENABLE(CSS_SELECTORS_LEVEL4)
-        } else if (*currentCharacter&lt;SrcCharacterType&gt;() == '-' &amp;&amp; isIdentifierStart&lt;SrcCharacterType&gt;()) {
-            result = currentCharacter&lt;SrcCharacterType&gt;();
-
-            CSSParserString parsedIdentifier;
-            parseIdentifier(result, parsedIdentifier, hasEscape);
-
-            if (parsedIdentifier.length()) {
-                m_token = LANGRANGE;
-                yylval-&gt;string.init(tokenStart&lt;SrcCharacterType&gt;(), parsedIdentifier.length() + 1);
-            }
-#endif
</del><span class="cx">         }
</span><span class="cx">         break;
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>