| Index: src/parsing/parser-base.h
|
| diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
|
| index e75e87a65a427da96e9382f58b0a9a8c33fa8460..d54a4bb1bdb7b78e7a9fd5a521491d4fec76a7de 100644
|
| --- a/src/parsing/parser-base.h
|
| +++ b/src/parsing/parser-base.h
|
| @@ -966,7 +966,6 @@ template <class Traits>
|
| void ParserBase<Traits>::GetUnexpectedTokenMessage(
|
| Token::Value token, MessageTemplate::Template* message, const char** arg,
|
| MessageTemplate::Template default_) {
|
| - // Four of the tokens are treated specially
|
| switch (token) {
|
| case Token::EOS:
|
| *message = MessageTemplate::kUnexpectedEOS;
|
| @@ -1090,10 +1089,8 @@ ParserBase<Traits>::ParseAndClassifyIdentifier(ExpressionClassifier* classifier,
|
| scanner()->location(), MessageTemplate::kStrongUndefined);
|
| if (is_strong(language_mode())) {
|
| // TODO(dslomov): allow 'undefined' in nested patterns.
|
| - classifier->RecordBindingPatternError(
|
| - scanner()->location(), MessageTemplate::kStrongUndefined);
|
| - classifier->RecordAssignmentPatternError(
|
| - scanner()->location(), MessageTemplate::kStrongUndefined);
|
| + classifier->RecordPatternError(scanner()->location(),
|
| + MessageTemplate::kStrongUndefined);
|
| }
|
| }
|
|
|
| @@ -1258,8 +1255,7 @@ ParserBase<Traits>::ParsePrimaryExpression(ExpressionClassifier* classifier,
|
| return this->ExpressionFromLiteral(Next(), beg_pos, scanner(), factory());
|
| case Token::SMI:
|
| case Token::NUMBER:
|
| - classifier->RecordBindingPatternError(
|
| - scanner()->peek_location(), MessageTemplate::kUnexpectedTokenNumber);
|
| + BindingPatternUnexpectedToken(classifier);
|
| return this->ExpressionFromLiteral(Next(), beg_pos, scanner(), factory());
|
|
|
| case Token::IDENTIFIER:
|
| @@ -1275,8 +1271,7 @@ ParserBase<Traits>::ParsePrimaryExpression(ExpressionClassifier* classifier,
|
| }
|
|
|
| case Token::STRING: {
|
| - classifier->RecordBindingPatternError(
|
| - scanner()->peek_location(), MessageTemplate::kUnexpectedTokenString);
|
| + BindingPatternUnexpectedToken(classifier);
|
| Consume(Token::STRING);
|
| return this->ExpressionFromString(beg_pos, scanner(), factory());
|
| }
|
| @@ -1322,9 +1317,6 @@ ParserBase<Traits>::ParsePrimaryExpression(ExpressionClassifier* classifier,
|
| classifier->RecordExpressionError(scanner()->location(),
|
| MessageTemplate::kUnexpectedToken,
|
| Token::String(Token::RPAREN));
|
| - classifier->RecordBindingPatternError(scanner()->location(),
|
| - MessageTemplate::kUnexpectedToken,
|
| - Token::String(Token::RPAREN));
|
| return factory()->NewEmptyParentheses(beg_pos);
|
| } else if (Check(Token::ELLIPSIS)) {
|
| // (...x)=>x. The continuation that looks for the => is in
|
| @@ -1385,9 +1377,7 @@ ParserBase<Traits>::ParsePrimaryExpression(ExpressionClassifier* classifier,
|
|
|
| case Token::TEMPLATE_SPAN:
|
| case Token::TEMPLATE_TAIL:
|
| - classifier->RecordBindingPatternError(
|
| - scanner()->peek_location(),
|
| - MessageTemplate::kUnexpectedTemplateString);
|
| + BindingPatternUnexpectedToken(classifier);
|
| return this->ParseTemplateLiteral(Traits::NoTemplateTag(), beg_pos,
|
| classifier, ok);
|
|
|
| @@ -1972,7 +1962,9 @@ ParserBase<Traits>::ParseAssignmentExpression(bool accept_IN, int flags,
|
| ExpressionT expression = this->ParseConditionalExpression(
|
| accept_IN, &arrow_formals_classifier, CHECK_OK);
|
| if (peek() == Token::ARROW) {
|
| - BindingPatternUnexpectedToken(classifier);
|
| + classifier->RecordPatternError(scanner()->peek_location(),
|
| + MessageTemplate::kUnexpectedToken,
|
| + Token::String(Token::ARROW));
|
| ValidateArrowFormalParameters(&arrow_formals_classifier, expression,
|
| parenthesized_formals, CHECK_OK);
|
| Scanner::Location loc(lhs_beg_pos, scanner()->location().end_pos);
|
| @@ -2000,11 +1992,6 @@ ParserBase<Traits>::ParseAssignmentExpression(bool accept_IN, int flags,
|
| }
|
| expression = this->ParseArrowFunctionLiteral(
|
| accept_IN, parameters, arrow_formals_classifier, CHECK_OK);
|
| - if (maybe_pattern_element) {
|
| - classifier->RecordPatternError(
|
| - Scanner::Location(lhs_beg_pos, scanner()->location().end_pos),
|
| - MessageTemplate::kInvalidDestructuringTarget);
|
| - }
|
|
|
| if (fni_ != nullptr) fni_->Infer();
|
|
|
| @@ -2063,9 +2050,9 @@ ParserBase<Traits>::ParseAssignmentExpression(bool accept_IN, int flags,
|
|
|
| Token::Value op = Next(); // Get assignment operator.
|
| if (op != Token::ASSIGN) {
|
| - classifier->RecordBindingPatternError(scanner()->location(),
|
| - MessageTemplate::kUnexpectedToken,
|
| - Token::String(op));
|
| + classifier->RecordPatternError(scanner()->location(),
|
| + MessageTemplate::kUnexpectedToken,
|
| + Token::String(op));
|
| }
|
| int pos = position();
|
|
|
| @@ -2087,12 +2074,6 @@ ParserBase<Traits>::ParseAssignmentExpression(bool accept_IN, int flags,
|
| function_state_->AddProperty();
|
| }
|
|
|
| - if (op != Token::ASSIGN && maybe_pattern_element) {
|
| - classifier->RecordAssignmentPatternError(
|
| - Scanner::Location(lhs_beg_pos, scanner()->location().end_pos),
|
| - MessageTemplate::kInvalidDestructuringTarget);
|
| - }
|
| -
|
| this->CheckAssigningFunctionLiteralToProperty(expression, right);
|
|
|
| if (fni_ != NULL) {
|
|
|