Index: Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp |
index ce1cf8d1247902b8c16b7aaf9267437e21f48118..7c87e4d8ff0113e5722eadc072bd2242467b5014 100644 |
--- a/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -120,6 +120,8 @@ bool CSSPropertyParser::parseValue(CSSPropertyID property, bool important, |
CSSParserValueList* valueList, const CSSParserContext& context, bool inViewport, |
WillBeHeapVector<CSSProperty, 256>& parsedProperties, CSSRuleSourceData::Type ruleType) |
{ |
+ int parsedPropertiesSize = parsedProperties.size(); |
+ |
CSSPropertyParser parser(valueList, context, inViewport, parsedProperties, ruleType); |
bool parseSuccess = parser.parseValue(property, important); |
@@ -127,6 +129,9 @@ bool CSSPropertyParser::parseValue(CSSPropertyID property, bool important, |
if (parseSuccess && context.useCounter()) |
context.useCounter()->count(context, property); |
+ if (!parseSuccess) |
+ parser.rollbackLastProperties(parsedProperties.size() - parsedPropertiesSize); |
+ |
return parseSuccess; |
} |