No subject


Mon Jan 28 08:41:14 PST 2013


9314">r149314</a> by &lt;ericwilligers at chromium.org&gt;

Source/WebCore:

Specs allow no spaces between the dimensions of a
&quot;background-position:&quot; like &quot;1px+1px&quot;, we should supp=
ort
that.

Whitespaces are no longer early consumed, dramatically dropping
the shift/reduce conflicts to half. The productions unary_term,
calc_func_term, calc_func_expr and calc_func_paren_expr no longer
consume whitespaces.

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

LayoutTests:

* fast/backgrounds/background-position-parsing-2-expected.txt:
* fast/backgrounds/background-position-parsing-2.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href=3D"#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a=
></li>
<li><a href=3D"#trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2=
expectedtxt">trunk/LayoutTests/fast/backgrounds/background-position-parsi=
ng-2-expected.txt</a></li>
<li><a href=3D"#trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2=
html">trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.ht=
ml</a></li>
<li><a href=3D"#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeL=
og</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSGrammaryin">trunk/Source/WebCore/=
css/CSSGrammar.y.in</a></li>
<li><a href=3D"#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/c=
ss/CSSParser.cpp</a></li>
</ul>

</div>
<div id=3D"patch">
<h3>Diff</h3>
<a id=3D"trunkLayoutTestsChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (150971 =
=3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/ChangeLog	2013-05-30 18:19:00 =
UTC (rev 150971)
+++ trunk/LayoutTests/ChangeLog	2013-05-30 18:20:32 UTC (rev 150972)
</span><span class=3D"lines">@@ -1,3 +1,15 @@
</span><ins>+2013-05-30  Sergio Villar Senin  &lt;svillar at igalia.com&gt;
+
+        Allow no space between &quot;background-position:&quot; dimensio=
ns
+        https://bugs.webkit.org/show_bug.cgi?id=3D116870
+
+        Reviewed by Darin Adler.
+
+        From Blink r149314 by &lt;ericwilligers at chromium.org&gt;
+
+        * fast/backgrounds/background-position-parsing-2-expected.txt:
+        * fast/backgrounds/background-position-parsing-2.html:
+
</ins><span class=3D"cx"> 2013-05-30  Zoltan Arvai  &lt;zarvai at inf.u-szeg=
ed.hu&gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         [Qt] Unreviewed gardening.
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2expecte=
dtxt"></a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/b=
ackground-position-parsing-2-expected.txt (150971 =3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/backgrounds/background-po=
sition-parsing-2-expected.txt	2013-05-30 18:19:00 UTC (rev 150971)
+++ trunk/LayoutTests/fast/backgrounds/background-position-parsing-2-expe=
cted.txt	2013-05-30 18:20:32 UTC (rev 150972)
</span><span class=3D"lines">@@ -81,6 +81,8 @@
</span><span class=3D"cx"> PASS computedStyle.backgroundPosition is '50% =
50%'
</span><span class=3D"cx"> PASS style.backgroundPosition is '50% 50%'
</span><span class=3D"cx"> PASS computedStyle.backgroundPosition is '50% =
50%'
</span><ins>+PASS style.backgroundPosition is '1px 1px'
+PASS computedStyle.backgroundPosition is '1px 1px'
</ins><span class=3D"cx"> background-position with CSS3 comma separator, =
one or two values
</span><span class=3D"cx"> PASS style.backgroundPosition is '50% 50%, 100=
% 50%'
</span><span class=3D"cx"> PASS computedStyle.backgroundPosition is '50% =
50%, 100% 50%'
</span></span></pre></div>
<a id=3D"trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2html"><=
/a>
<div class=3D"modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/b=
ackground-position-parsing-2.html (150971 =3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/LayoutTests/fast/backgrounds/background-po=
sition-parsing-2.html	2013-05-30 18:19:00 UTC (rev 150971)
+++ trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.html=
	2013-05-30 18:20:32 UTC (rev 150972)
</span><span class=3D"lines">@@ -174,6 +174,10 @@
</span><span class=3D"cx"> shouldBe(&quot;style.backgroundPosition&quot;,=
 &quot;'50% 50%'&quot;);
</span><span class=3D"cx"> shouldBe(&quot;computedStyle.backgroundPositio=
n&quot;, &quot;'50% 50%'&quot;);
</span><span class=3D"cx">=20
</span><ins>+style.backgroundPosition =3D &quot;1px+1px&quot;;
+shouldBe(&quot;style.backgroundPosition&quot;, &quot;'1px 1px'&quot;);
+shouldBe(&quot;computedStyle.backgroundPosition&quot;, &quot;'1px 1px'&q=
uot;);
+
</ins><span class=3D"cx"> debug(&quot;background-position with CSS3 comma=
 separator, one or two values&quot;);
</span><span class=3D"cx"> style.backgroundImage =3D &quot;url(resources/=
diamond.png), url(resources/ring.png)&quot;;
</span><span class=3D"cx"> style.backgroundRepeat =3D &quot;no-repeat&quo=
t;;
</span></span></pre></div>
<a id=3D"trunkSourceWebCoreChangeLog"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (1509=
71 =3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/ChangeLog	2013-05-30 18:19:=
00 UTC (rev 150971)
+++ trunk/Source/WebCore/ChangeLog	2013-05-30 18:20:32 UTC (rev 150972)
</span><span class=3D"lines">@@ -1,3 +1,25 @@
</span><ins>+2013-05-30  Sergio Villar Senin  &lt;svillar at igalia.com&gt;
+
+        Allow no space between &quot;background-position:&quot; dimensio=
ns
+        https://bugs.webkit.org/show_bug.cgi?id=3D116870
+
+        Reviewed by Darin Adler.
+
+        From Blink r149314 by &lt;ericwilligers at chromium.org&gt;
+
+        Specs allow no spaces between the dimensions of a
+        &quot;background-position:&quot; like &quot;1px+1px&quot;, we sh=
ould support
+        that.
+
+        Whitespaces are no longer early consumed, dramatically dropping
+        the shift/reduce conflicts to half. The productions unary_term,
+        calc_func_term, calc_func_expr and calc_func_paren_expr no longe=
r
+        consume whitespaces.
+
+        * css/CSSGrammar.y.in:
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::realLex):
+
</ins><span class=3D"cx"> 2013-05-30  Jer Noble  &lt;jer.noble at apple.com&=
gt;
</span><span class=3D"cx">=20
</span><span class=3D"cx">         HTMLMediaElement will not unthrottle p=
age when playback stops for nreasons other than user-initiated pause.
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSGrammaryin"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSGrammar.=
y.in (150971 =3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSGrammar.y.in	2013-05=
-30 18:19:00 UTC (rev 150971)
+++ trunk/Source/WebCore/css/CSSGrammar.y.in	2013-05-30 18:20:32 UTC (rev=
 150972)
</span><span class=3D"lines">@@ -88,9 +88,9 @@
</span><span class=3D"cx"> %}
</span><span class=3D"cx">=20
</span><span class=3D"cx"> #if ENABLE_SHADOW_DOM
</span><del>-%expect 63
</del><ins>+%expect 33
</ins><span class=3D"cx"> #else
</span><del>-%expect 62
</del><ins>+%expect 32
</ins><span class=3D"cx"> #endif
</span><span class=3D"cx">=20
</span><span class=3D"cx"> %nonassoc LOWEST_PREC
</span><span class=3D"lines">@@ -1677,8 +1677,8 @@
</span><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> term:
</span><del>-  unary_term { $$ =3D $1; }
-  | unary_operator unary_term { $$ =3D $2; $$.fValue *=3D $1; }
</del><ins>+  unary_term maybe_space { $$ =3D $1; }
+  | unary_operator unary_term maybe_space { $$ =3D $2; $$.fValue *=3D $1=
; }
</ins><span class=3D"cx">   | STRING maybe_space { $$.id =3D 0; $$.string=
 =3D $1; $$.unit =3D CSSPrimitiveValue::CSS_STRING; }
</span><span class=3D"cx">   | IDENT maybe_space {
</span><span class=3D"cx">       $$.id =3D cssValueKeywordID($1);
</span><span class=3D"lines">@@ -1715,41 +1715,41 @@
</span><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> unary_term:
</span><del>-  INTEGER maybe_space { $$.id =3D 0; $$.isInt =3D true; $$.f=
Value =3D $1; $$.unit =3D CSSPrimitiveValue::CSS_NUMBER; }
-  | FLOATTOKEN maybe_space { $$.id =3D 0; $$.isInt =3D false; $$.fValue =
=3D $1; $$.unit =3D CSSPrimitiveValue::CSS_NUMBER; }
-  | PERCENTAGE maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D =
CSSPrimitiveValue::CSS_PERCENTAGE; }
-  | PXS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_PX; }
-  | CMS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_CM; }
-  | MMS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_MM; }
-  | INS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_IN; }
-  | PTS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_PT; }
-  | PCS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_PC; }
-  | DEGS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_DEG; }
-  | RADS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_RAD; }
-  | GRADS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPr=
imitiveValue::CSS_GRAD; }
-  | TURNS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPr=
imitiveValue::CSS_TURN; }
-  | MSECS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPr=
imitiveValue::CSS_MS; }
-  | SECS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_S; }
-  | HERTZ maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPr=
imitiveValue::CSS_HZ; }
-  | KHERTZ maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSP=
rimitiveValue::CSS_KHZ; }
-  | EMS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_EMS; }
-  | QEMS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPar=
serValue::Q_EMS; }
-  | EXS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_EXS; }
-  | REMS maybe_space {
</del><ins>+  INTEGER { $$.id =3D 0; $$.isInt =3D true; $$.fValue =3D $1;=
 $$.unit =3D CSSPrimitiveValue::CSS_NUMBER; }
+  | FLOATTOKEN { $$.id =3D 0; $$.isInt =3D false; $$.fValue =3D $1; $$.u=
nit =3D CSSPrimitiveValue::CSS_NUMBER; }
+  | PERCENTAGE { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitive=
Value::CSS_PERCENTAGE; }
+  | PXS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_PX; }
+  | CMS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_CM; }
+  | MMS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_MM; }
+  | INS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_IN; }
+  | PTS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_PT; }
+  | PCS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_PC; }
+  | DEGS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_DEG; }
+  | RADS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_RAD; }
+  | GRADS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue=
::CSS_GRAD; }
+  | TURNS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue=
::CSS_TURN; }
+  | MSECS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue=
::CSS_MS; }
+  | SECS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_S; }
+  | HERTZ { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue=
::CSS_HZ; }
+  | KHERTZ { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValu=
e::CSS_KHZ; }
+  | EMS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_EMS; }
+  | QEMS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSParserValue::Q_=
EMS; }
+  | EXS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_EXS; }
+  | REMS {
</ins><span class=3D"cx">       $$.id =3D 0;
</span><span class=3D"cx">       $$.fValue =3D $1;
</span><span class=3D"cx">       $$.unit =3D CSSPrimitiveValue::CSS_REMS;
</span><span class=3D"cx">       if (parser-&gt;m_styleSheet)
</span><span class=3D"cx">           parser-&gt;m_styleSheet-&gt;parserSe=
tUsesRemUnits(true);
</span><span class=3D"cx">   }
</span><del>-  | CHS maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit=
 =3D CSSPrimitiveValue::CSS_CHS; }
-  | VW maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimi=
tiveValue::CSS_VW; }
-  | VH maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimi=
tiveValue::CSS_VH; }
-  | VMIN maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_VMIN; }
-  | VMAX maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_VMAX; }
-  | DPPX maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_DPPX; }
-  | DPI maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrim=
itiveValue::CSS_DPI; }
-  | DPCM maybe_space { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPri=
mitiveValue::CSS_DPCM; }
</del><ins>+  | CHS { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimi=
tiveValue::CSS_CHS; }
+  | VW { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::C=
SS_VW; }
+  | VH { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::C=
SS_VH; }
+  | VMIN { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_VMIN; }
+  | VMAX { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_VMAX; }
+  | DPPX { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_DPPX; }
+  | DPI { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue::=
CSS_DPI; }
+  | DPCM { $$.id =3D 0; $$.fValue =3D $1; $$.unit =3D CSSPrimitiveValue:=
:CSS_DPCM; }
</ins><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> function:
</span><span class=3D"lines">@@ -1782,7 +1782,7 @@
</span><span class=3D"cx">=20
</span><span class=3D"cx"> calc_func_term:
</span><span class=3D"cx">   unary_term { $$ =3D $1; }
</span><del>-  | VARFUNCTION maybe_space IDENT ')' maybe_space {
</del><ins>+  | VARFUNCTION maybe_space IDENT ')' {
</ins><span class=3D"cx"> #if ENABLE_CSS_VARIABLES
</span><span class=3D"cx">       $$.id =3D 0;
</span><span class=3D"cx">       $$.string =3D $3;
</span><span class=3D"lines">@@ -1793,12 +1793,18 @@
</span><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> calc_func_operator:
</span><del>-    '+' WHITESPACE {
</del><ins>+    WHITESPACE '+' WHITESPACE {
</ins><span class=3D"cx">         $$ =3D '+';
</span><span class=3D"cx">     }
</span><del>-    | '-' WHITESPACE {
</del><ins>+    | WHITESPACE '-' WHITESPACE {
</ins><span class=3D"cx">         $$ =3D '-';
</span><span class=3D"cx">     }
</span><ins>+    | WHITESPACE '*' maybe_space {
+        $$ =3D '*';
+    }
+    | WHITESPACE '/' maybe_space {
+        $$ =3D '/';
+    }
</ins><span class=3D"cx">     | '*' maybe_space {
</span><span class=3D"cx">         $$ =3D '*';
</span><span class=3D"cx">     }
</span><span class=3D"lines">@@ -1808,7 +1814,7 @@
</span><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> calc_func_paren_expr:
</span><del>-    '(' maybe_space calc_func_expr maybe_space ')' maybe_spa=
ce {
</del><ins>+    '(' maybe_space calc_func_expr calc_closing_paren {
</ins><span class=3D"cx">         if ($3) {
</span><span class=3D"cx">             $$ =3D $3;
</span><span class=3D"cx">             CSSParserValue v;
</span><span class=3D"lines">@@ -1822,8 +1828,12 @@
</span><span class=3D"cx">             $$ =3D 0;
</span><span class=3D"cx">     }
</span><span class=3D"cx">=20
</span><ins>+calc_closing_paren:
+    WHITESPACE ')'
+    | ')'
+
</ins><span class=3D"cx"> calc_func_expr:
</span><del>-    calc_func_term maybe_space {
</del><ins>+    calc_func_term {
</ins><span class=3D"cx">         $$ =3D parser-&gt;createFloatingValueLi=
st();
</span><span class=3D"cx">         $$-&gt;addValue(parser-&gt;sinkFloatin=
gValue($1));
</span><span class=3D"cx">     }
</span><span class=3D"lines">@@ -1859,9 +1869,24 @@
</span><span class=3D"cx">   ;
</span><span class=3D"cx">=20
</span><span class=3D"cx"> calc_func_expr_list:
</span><del>-    calc_func_expr  {
</del><ins>+    calc_func_expr WHITESPACE {
</ins><span class=3D"cx">         $$ =3D $1;
</span><span class=3D"cx">     }   =20
</span><ins>+    | calc_func_expr {
+        $$ =3D $1;
+    }
+    | calc_func_expr_list ',' maybe_space calc_func_expr WHITESPACE {
+        if ($1 &amp;&amp; $4) {
+            $$ =3D $1;
+            CSSParserValue v;
+            v.id =3D 0;
+            v.unit =3D CSSParserValue::Operator;
+            v.iValue =3D ',';
+            $$-&gt;addValue(v);
+            $$-&gt;extend(*($4));
+        } else
+            $$ =3D 0;
+    }
</ins><span class=3D"cx">     | calc_func_expr_list ',' maybe_space calc_=
func_expr {
</span><span class=3D"cx">         if ($1 &amp;&amp; $4) {
</span><span class=3D"cx">             $$ =3D $1;
</span><span class=3D"lines">@@ -1877,7 +1902,7 @@
</span><span class=3D"cx">    =20
</span><span class=3D"cx">=20
</span><span class=3D"cx"> calc_function:
</span><del>-    CALCFUNCTION maybe_space calc_func_expr ')' maybe_space =
{
</del><ins>+    CALCFUNCTION maybe_space calc_func_expr calc_closing_pare=
n maybe_space {
</ins><span class=3D"cx">         CSSParserFunction* f =3D parser-&gt;cre=
ateFloatingFunction();
</span><span class=3D"cx">         f-&gt;name =3D $1;
</span><span class=3D"cx">         f-&gt;args =3D parser-&gt;sinkFloating=
ValueList($3);
</span></span></pre></div>
<a id=3D"trunkSourceWebCorecssCSSParsercpp"></a>
<div class=3D"modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.c=
pp (150971 =3D> 150972)</h4>
<pre class=3D"diff"><span>
<span class=3D"info">--- trunk/Source/WebCore/css/CSSParser.cpp	2013-05-3=
0 18:19:00 UTC (rev 150971)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2013-05-30 18:20:32 UTC (rev 1=
50972)
</span><span class=3D"lines">@@ -11012,19 +11012,14 @@
</span><span class=3D"cx">             result =3D currentCharacter&lt;Src=
CharacterType&gt;();
</span><span class=3D"cx">=20
</span><span class=3D"cx">             parseIdentifier(result, resultStri=
ng, hasEscape);
</span><del>-            if (*currentCharacter&lt;SrcCharacterType&gt;() =
=3D=3D '+') {
-                // Any identifier followed by a '+' sign is an invalid d=
imension.
-                ++currentCharacter&lt;SrcCharacterType&gt;();
-                m_token =3D INVALIDDIMEN;
-            } else {
-                m_token =3D DIMEN;
-                if (!hasEscape)
-                    detectNumberToken(type, currentCharacter&lt;SrcChara=
cterType&gt;() - type);
</del><span class=3D"cx">=20
</span><del>-                if (m_token =3D=3D DIMEN) {
-                    // The decoded number is overwritten, but this is in=
tentional.
-                    yylval-&gt;string.init(tokenStart&lt;SrcCharacterTyp=
e&gt;(), currentCharacter&lt;SrcCharacterType&gt;() - tokenStart&lt;SrcCh=
aracterType&gt;());
-                }
</del><ins>+            m_token =3D DIMEN;
+            if (!hasEscape)
+                detectNumberToken(type, currentCharacter&lt;SrcCharacter=
Type&gt;() - type);
+
+            if (m_token =3D=3D DIMEN) {
+                // The decoded number is overwritten, but this is intent=
ional.
+                yylval-&gt;string.init(tokenStart&lt;SrcCharacterType&gt=
;(), currentCharacter&lt;SrcCharacterType&gt;() - tokenStart&lt;SrcCharac=
terType&gt;());
</ins><span class=3D"cx">             }
</span><span class=3D"cx">         } else if (*currentCharacter&lt;SrcCha=
racterType&gt;() =3D=3D '%') {
</span><span class=3D"cx">             // Although the CSS grammar says {=
num}% we follow
</span></span></pre>
</div>
</div>

</body>
</html>


More information about the webkit-changes mailing list