Title: [196258] trunk/Source/_javascript_Core
- Revision
- 196258
- Author
- fpi...@apple.com
- Date
- 2016-02-08 10:52:57 -0800 (Mon, 08 Feb 2016)
Log Message
Parser should detect error before calls to parseAssignmentExpression()
https://bugs.webkit.org/show_bug.cgi?id=153975
rdar://problem/24291231
Reviewed by Saam Barati.
Fixes a very hard-to-create situation that an internal test picked up.
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseAssignmentExpression):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (196257 => 196258)
--- trunk/Source/_javascript_Core/ChangeLog 2016-02-08 18:43:18 UTC (rev 196257)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-02-08 18:52:57 UTC (rev 196258)
@@ -1,3 +1,17 @@
+2016-02-08 Filip Pizlo <fpi...@apple.com>
+
+ Parser should detect error before calls to parseAssignmentExpression()
+ https://bugs.webkit.org/show_bug.cgi?id=153975
+ rdar://problem/24291231
+
+ Reviewed by Saam Barati.
+
+ Fixes a very hard-to-create situation that an internal test picked up.
+
+ * parser/Parser.cpp:
+ (JSC::Parser<LexerType>::parseVariableDeclarationList):
+ (JSC::Parser<LexerType>::parseAssignmentExpression):
+
2016-02-08 Andreas Kling <akl...@apple.com>
Visiting a WeakBlock should report bytes visited, since we reported them allocated.
Modified: trunk/Source/_javascript_Core/parser/Parser.cpp (196257 => 196258)
--- trunk/Source/_javascript_Core/parser/Parser.cpp 2016-02-08 18:43:18 UTC (rev 196257)
+++ trunk/Source/_javascript_Core/parser/Parser.cpp 2016-02-08 18:52:57 UTC (rev 196258)
@@ -714,6 +714,7 @@
JSTextPosition varDivot = tokenStartPosition() + 1;
initStart = tokenStartPosition();
next(TreeBuilder::DontBuildStrings); // consume '='
+ propagateError();
TreeExpression initializer = parseAssignmentExpression(context);
initEnd = lastTokenEndPosition();
lastInitializer = initializer;
@@ -2947,6 +2948,8 @@
template <typename LexerType>
template <typename TreeBuilder> TreeExpression Parser<LexerType>::parseAssignmentExpression(TreeBuilder& context, ExpressionErrorClassifier& classifier)
{
+ ASSERT(!hasError());
+
failIfStackOverflow();
JSTextPosition start = tokenStartPosition();
JSTokenLocation location(tokenLocation());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes