Index: Source/core/css/parser/MediaQueryParser.cpp |
diff --git a/Source/core/css/parser/MediaQueryParser.cpp b/Source/core/css/parser/MediaQueryParser.cpp |
index 158280edabf8584f849ad076296a0991ddf4fc99..6af9c3e4b9369bd8a7954d4eb050c5f33a113f64 100644 |
--- a/Source/core/css/parser/MediaQueryParser.cpp |
+++ b/Source/core/css/parser/MediaQueryParser.cpp |
@@ -139,8 +139,7 @@ void MediaQueryParser::readFeatureValue(CSSParserTokenType type, const CSSParser |
{ |
if (type == DimensionToken && token.unitType() == CSSPrimitiveValue::CSS_UNKNOWN) { |
m_state = SkipUntilComma; |
- } else { |
- m_mediaQueryData.addParserValue(type, token); |
+ } else if (m_mediaQueryData.tryAddParserValue(type, token)) { |
m_state = ReadFeatureEnd; |
Timothy Loh
2015/01/07 23:05:27
I'm not sure this works; doesn't this mean that if
|
} |
} |
@@ -153,7 +152,7 @@ void MediaQueryParser::readFeatureEnd(CSSParserTokenType type, const CSSParserTo |
else |
m_state = SkipUntilComma; |
} else if (type == DelimiterToken && token.delimiter() == '/') { |
- m_mediaQueryData.addParserValue(type, token); |
+ m_mediaQueryData.tryAddParserValue(type, token); |
m_state = ReadFeatureValue; |
} else { |
m_state = SkipUntilBlockEnd; |
@@ -248,7 +247,7 @@ bool MediaQueryData::addExpression() |
return isValid; |
} |
-void MediaQueryData::addParserValue(CSSParserTokenType type, const CSSParserToken& token) |
+bool MediaQueryData::tryAddParserValue(CSSParserTokenType type, const CSSParserToken& token) |
{ |
CSSParserValue value; |
if (type == NumberToken || type == PercentageToken || type == DimensionToken) { |
@@ -259,15 +258,18 @@ void MediaQueryData::addParserValue(CSSParserTokenType type, const CSSParserToke |
value.iValue = token.delimiter(); |
value.id = CSSValueInvalid; |
value.isInt = false; |
- } else { |
+ } else if (type == IdentToken) { |
CSSParserString tokenValue; |
tokenValue.init(token.value()); |
value.unit = CSSPrimitiveValue::CSS_IDENT; |
value.string = tokenValue; |
value.id = cssValueKeywordID(tokenValue); |
value.isInt = false; |
+ } else { |
+ return false; |
} |
m_valueList.addValue(value); |
+ return true; |
} |
void MediaQueryData::setMediaType(const String& mediaType) |