Chromium Code Reviews| Index: src/parsing/parser-base.h |
| diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h |
| index 000b606a9549570b50ca9429633a5d88e6dbbf3f..e42566719daec863ad54678ad64c9042b1861520 100644 |
| --- a/src/parsing/parser-base.h |
| +++ b/src/parsing/parser-base.h |
| @@ -1970,7 +1970,7 @@ ParserBase<Traits>::ParsePropertyDefinition( |
| CheckDestructuringElement(lhs, classifier, next_beg_pos, next_end_pos); |
| ExpressionT value; |
| - if (peek() == Token::ASSIGN) { |
| + if (IsValidReferenceExpression(lhs) && peek() == Token::ASSIGN) { |
|
Dan Ehrenberg
2016/07/28 00:13:38
Does the insertion of IsValidReferenceExpression(l
|
| Consume(Token::ASSIGN); |
| ExpressionClassifier rhs_classifier(this); |
| ExpressionT rhs = this->ParseAssignmentExpression( |
| @@ -1987,6 +1987,11 @@ ParserBase<Traits>::ParsePropertyDefinition( |
| Traits::SetFunctionNameFromIdentifierRef(rhs, lhs); |
| } else { |
| + if (this->IsIdentifier(lhs) && is_strict(language_mode()) && |
| + this->IsEvalOrArguments(this->AsIdentifier(lhs))) { |
| + ReportMessageAt(Scanner::Location(next_beg_pos, next_end_pos), |
|
adamk
2016/07/28 18:46:55
I think you should be able to detect this when par
lpy
2016/08/05 22:15:41
Done.
|
| + MessageTemplate::kStrictEvalArguments, kSyntaxError); |
| + } |
| value = lhs; |
| } |