Index: src/parsing/parser-base.h |
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h |
index 92377acc7aa303382437f4d6e4c3b6f10dc4debc..bfdebcf805e773231be6b0f1dcc4ba68e273068a 100644 |
--- a/src/parsing/parser-base.h |
+++ b/src/parsing/parser-base.h |
@@ -1693,7 +1693,7 @@ typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParseExpression( |
// AssignmentExpression |
// Expression ',' AssignmentExpression |
- ExpressionT result = this->EmptyExpression(); |
+ ExpressionT result; |
{ |
ExpressionClassifier binding_classifier(this); |
result = this->ParseAssignmentExpression(accept_IN, &binding_classifier, |
@@ -1764,7 +1764,7 @@ typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParseArrayLiteral( |
int first_spread_index = -1; |
Expect(Token::LBRACK, CHECK_OK); |
while (peek() != Token::RBRACK) { |
- ExpressionT elem = this->EmptyExpression(); |
+ ExpressionT elem; |
if (peek() == Token::COMMA) { |
elem = this->GetLiteralTheHole(peek_position(), factory()); |
} else if (peek() == Token::ELLIPSIS) { |
@@ -1896,7 +1896,6 @@ ParserBase<Traits>::ParsePropertyDefinition( |
ExpressionClassifier* classifier, IdentifierT* name, bool* ok) { |
DCHECK(!in_class || IsStaticMethod(method_kind) || |
has_seen_constructor != nullptr); |
- ExpressionT value = this->EmptyExpression(); |
bool is_get = false; |
bool is_set = false; |
bool is_await = false; |
@@ -1936,7 +1935,7 @@ ParserBase<Traits>::ParsePropertyDefinition( |
} |
Consume(Token::COLON); |
int beg_pos = peek_position(); |
- value = this->ParseAssignmentExpression( |
+ ExpressionT value = this->ParseAssignmentExpression( |
true, classifier, CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); |
CheckDestructuringElement(value, classifier, beg_pos, |
scanner()->location().end_pos); |
@@ -1978,6 +1977,7 @@ ParserBase<Traits>::ParsePropertyDefinition( |
*name, next_beg_pos, next_end_pos, scope_, factory()); |
CheckDestructuringElement(lhs, classifier, next_beg_pos, next_end_pos); |
+ ExpressionT value; |
if (peek() == Token::ASSIGN) { |
Consume(Token::ASSIGN); |
ExpressionClassifier rhs_classifier(this); |
@@ -2040,7 +2040,7 @@ ParserBase<Traits>::ParsePropertyDefinition( |
: FunctionKind::kBaseConstructor; |
} |
- value = this->ParseFunctionLiteral( |
+ ExpressionT value = this->ParseFunctionLiteral( |
*name, scanner()->location(), kSkipFunctionNameCheck, kind, |
kNoSourcePosition, FunctionLiteral::kAccessorOrMethod, language_mode(), |
CHECK_OK_CUSTOM(EmptyObjectLiteralProperty)); |
@@ -2450,6 +2450,7 @@ ParserBase<Traits>::ParseYieldExpression(bool accept_IN, |
Expect(Token::YIELD, CHECK_OK); |
ExpressionT generator_object = |
factory()->NewVariableProxy(function_state_->generator_object_variable()); |
+ // The following initialization is necessary. |
ExpressionT expression = Traits::EmptyExpression(); |
bool delegating = false; // yield* |
if (!scanner()->HasAnyLineTerminatorBeforeNext()) { |
@@ -2952,7 +2953,7 @@ ParserBase<Traits>::ParseMemberWithNewPrefixesExpression( |
ArrowFormalParametersUnexpectedToken(classifier); |
Consume(Token::NEW); |
int new_pos = position(); |
- ExpressionT result = this->EmptyExpression(); |
+ ExpressionT result; |
if (peek() == Token::SUPER) { |
const bool is_new = true; |
result = ParseSuperExpression(is_new, classifier, CHECK_OK); |
@@ -3001,7 +3002,7 @@ ParserBase<Traits>::ParseMemberExpression(ExpressionClassifier* classifier, |
// caller. |
// Parse the initial primary or function expression. |
- ExpressionT result = this->EmptyExpression(); |
+ ExpressionT result; |
if (peek() == Token::FUNCTION) { |
BindingPatternUnexpectedToken(classifier); |
ArrowFormalParametersUnexpectedToken(classifier); |