Changeset 192919 in webkit for trunk/Source/JavaScriptCore/parser/Parser.cpp
- Timestamp:
- Dec 1, 2015, 2:47:00 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.cpp
r192914 r192919 2831 2831 } 2832 2832 2833 2833 template <typename LexerType> 2834 template <typename TreeBuilder> TreeExpression Parser<LexerType>::parseAssignmentExpressionOrPropagateErrorClass(TreeBuilder& context) 2835 { 2836 ExpressionErrorClassifier classifier(this); 2837 auto assignment = parseAssignmentExpression(context, classifier); 2838 if (!assignment) 2839 classifier.propagateExpressionErrorClass(); 2840 return assignment; 2841 } 2842 2834 2843 template <typename LexerType> 2835 2844 template <typename TreeBuilder> TreeExpression Parser<LexerType>::parseAssignmentExpression(TreeBuilder& context) 2845 { 2846 ExpressionErrorClassifier classifier(this); 2847 return parseAssignmentExpression(context, classifier); 2848 } 2849 2850 template <typename LexerType> 2851 template <typename TreeBuilder> TreeExpression Parser<LexerType>::parseAssignmentExpression(TreeBuilder& context, ExpressionErrorClassifier& classifier) 2836 2852 { 2837 2853 failIfStackOverflow(); … … 2842 2858 bool maybeAssignmentPattern = match(OPENBRACE) || match(OPENBRACKET); 2843 2859 SavePoint savePoint = createSavePoint(); 2844 ExpressionErrorClassifier classifier(this);2845 2860 2846 2861 #if ENABLE(ES6_GENERATORS) … … 3072 3087 if (!isGenerator && match(COLON)) { 3073 3088 next(); 3074 TreeExpression node = parseAssignmentExpression (context);3089 TreeExpression node = parseAssignmentExpressionOrPropagateErrorClass(context); 3075 3090 failIfFalse(node, "Cannot parse expression for property declaration"); 3076 3091 context.setEndOffset(node, m_lexer->currentOffset()); … … 3348 3363 auto divot = m_token.m_endPosition; 3349 3364 next(); 3350 auto spreadExpr = parseAssignmentExpression (context);3365 auto spreadExpr = parseAssignmentExpressionOrPropagateErrorClass(context); 3351 3366 failIfFalse(spreadExpr, "Cannot parse subject of a spread operation"); 3352 3367 elem = context.createSpreadExpression(spreadLocation, spreadExpr, start, divot, m_lastTokenEndPosition); 3353 3368 } else 3354 elem = parseAssignmentExpression (context);3369 elem = parseAssignmentExpressionOrPropagateErrorClass(context); 3355 3370 failIfFalse(elem, "Cannot parse array literal element"); 3356 3371 typename TreeBuilder::ElementList elementList = context.createElementList(elisions, elem); … … 3376 3391 auto divot = m_token.m_endPosition; 3377 3392 next(); 3378 TreeExpression elem = parseAssignmentExpression (context);3393 TreeExpression elem = parseAssignmentExpressionOrPropagateErrorClass(context); 3379 3394 failIfFalse(elem, "Cannot parse subject of a spread operation"); 3380 3395 auto spread = context.createSpreadExpression(spreadLocation, elem, start, divot, m_lastTokenEndPosition); … … 3382 3397 continue; 3383 3398 } 3384 TreeExpression elem = parseAssignmentExpression (context);3399 TreeExpression elem = parseAssignmentExpressionOrPropagateErrorClass(context); 3385 3400 failIfFalse(elem, "Cannot parse array literal element"); 3386 3401 tail = context.createElementList(tail, elisions, elem);
Note:
See TracChangeset
for help on using the changeset viewer.