No subject
Mon Jan 28 08:41:14 PST 2013
9314">r149314</a> by <ericwilligers at chromium.org>
Source/WebCore:
Specs allow no spaces between the dimensions of a
"background-position:" like "1px+1px", 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 <svillar at igalia.com>
+
+ Allow no space between "background-position:" dimensio=
ns
+ https://bugs.webkit.org/show_bug.cgi?id=3D116870
+
+ Reviewed by Darin Adler.
+
+ From Blink r149314 by <ericwilligers at chromium.org>
+
+ * 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 <zarvai at inf.u-szeg=
ed.hu>
</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("style.backgroundPosition",=
"'50% 50%'");
</span><span class=3D"cx"> shouldBe("computedStyle.backgroundPositio=
n", "'50% 50%'");
</span><span class=3D"cx">=20
</span><ins>+style.backgroundPosition =3D "1px+1px";
+shouldBe("style.backgroundPosition", "'1px 1px'");
+shouldBe("computedStyle.backgroundPosition", "'1px 1px'&q=
uot;);
+
</ins><span class=3D"cx"> debug("background-position with CSS3 comma=
separator, one or two values");
</span><span class=3D"cx"> style.backgroundImage =3D "url(resources/=
diamond.png), url(resources/ring.png)";
</span><span class=3D"cx"> style.backgroundRepeat =3D "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 <svillar at igalia.com>
+
+ Allow no space between "background-position:" dimensio=
ns
+ https://bugs.webkit.org/show_bug.cgi?id=3D116870
+
+ Reviewed by Darin Adler.
+
+ From Blink r149314 by <ericwilligers at chromium.org>
+
+ Specs allow no spaces between the dimensions of a
+ "background-position:" like "1px+1px", 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 <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->m_styleSheet)
</span><span class=3D"cx"> parser->m_styleSheet->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->createFloatingValueLi=
st();
</span><span class=3D"cx"> $$->addValue(parser->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 && $4) {
+ $$ =3D $1;
+ CSSParserValue v;
+ v.id =3D 0;
+ v.unit =3D CSSParserValue::Operator;
+ v.iValue =3D ',';
+ $$->addValue(v);
+ $$->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 && $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->cre=
ateFloatingFunction();
</span><span class=3D"cx"> f->name =3D $1;
</span><span class=3D"cx"> f->args =3D parser->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<Src=
CharacterType>();
</span><span class=3D"cx">=20
</span><span class=3D"cx"> parseIdentifier(result, resultStri=
ng, hasEscape);
</span><del>- if (*currentCharacter<SrcCharacterType>() =
=3D=3D '+') {
- // Any identifier followed by a '+' sign is an invalid d=
imension.
- ++currentCharacter<SrcCharacterType>();
- m_token =3D INVALIDDIMEN;
- } else {
- m_token =3D DIMEN;
- if (!hasEscape)
- detectNumberToken(type, currentCharacter<SrcChara=
cterType>() - 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->string.init(tokenStart<SrcCharacterTyp=
e>(), currentCharacter<SrcCharacterType>() - tokenStart<SrcCh=
aracterType>());
- }
</del><ins>+ m_token =3D DIMEN;
+ if (!hasEscape)
+ detectNumberToken(type, currentCharacter<SrcCharacter=
Type>() - type);
+
+ if (m_token =3D=3D DIMEN) {
+ // The decoded number is overwritten, but this is intent=
ional.
+ yylval->string.init(tokenStart<SrcCharacterType>=
;(), currentCharacter<SrcCharacterType>() - tokenStart<SrcCharac=
terType>());
</ins><span class=3D"cx"> }
</span><span class=3D"cx"> } else if (*currentCharacter<SrcCha=
racterType>() =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