Commit f3b84930 authored by Toon Verwaest's avatar Toon Verwaest Committed by Commit Bot

[parser] Remove RETURN_IF* part 9

Bug: v8:8363, v8:7926
Change-Id: I80d62c2077ccf271e954d6bb9dda3e0d35d08a76
Reviewed-on: https://chromium-review.googlesource.com/c/1301510Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57035}
parent cd629c01
...@@ -748,7 +748,6 @@ class ParserBase { ...@@ -748,7 +748,6 @@ class ParserBase {
void ExpectContextualKeyword(Token::Value token) { void ExpectContextualKeyword(Token::Value token) {
DCHECK(Token::IsContextualKeyword(token)); DCHECK(Token::IsContextualKeyword(token));
Expect(Token::IDENTIFIER); Expect(Token::IDENTIFIER);
RETURN_IF_PARSE_ERROR_CUSTOM(Void);
if (scanner()->current_contextual_token() != token) { if (scanner()->current_contextual_token() != token) {
ReportUnexpectedToken(scanner()->current_token()); ReportUnexpectedToken(scanner()->current_token());
} }
...@@ -1674,10 +1673,8 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseBindingPattern() { ...@@ -1674,10 +1673,8 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseBindingPattern() {
if (token == Token::LBRACK) { if (token == Token::LBRACK) {
result = ParseArrayLiteral(); result = ParseArrayLiteral();
RETURN_IF_PARSE_ERROR;
} else if (token == Token::LBRACE) { } else if (token == Token::LBRACE) {
result = ParseObjectLiteral(); result = ParseObjectLiteral();
RETURN_IF_PARSE_ERROR;
} else { } else {
ReportUnexpectedToken(Next()); ReportUnexpectedToken(Next());
return impl()->NullExpression(); return impl()->NullExpression();
...@@ -1685,7 +1682,6 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseBindingPattern() { ...@@ -1685,7 +1682,6 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseBindingPattern() {
} }
ValidateBindingPattern(); ValidateBindingPattern();
RETURN_IF_PARSE_ERROR;
return result; return result;
} }
...@@ -1718,7 +1714,6 @@ ParserBase<Impl>::ParsePrimaryExpression() { ...@@ -1718,7 +1714,6 @@ ParserBase<Impl>::ParsePrimaryExpression() {
Token::ESCAPED_STRICT_RESERVED_WORD)) { Token::ESCAPED_STRICT_RESERVED_WORD)) {
// Using eval or arguments in this context is OK even in strict mode. // Using eval or arguments in this context is OK even in strict mode.
IdentifierT name = ParseAndClassifyIdentifier(); IdentifierT name = ParseAndClassifyIdentifier();
RETURN_IF_PARSE_ERROR;
InferName infer = InferName::kYes; InferName infer = InferName::kYes;
if (V8_UNLIKELY(impl()->IsAsync(name) && if (V8_UNLIKELY(impl()->IsAsync(name) &&
!scanner()->HasLineTerminatorBeforeNext())) { !scanner()->HasLineTerminatorBeforeNext())) {
...@@ -1729,7 +1724,6 @@ ParserBase<Impl>::ParsePrimaryExpression() { ...@@ -1729,7 +1724,6 @@ ParserBase<Impl>::ParsePrimaryExpression() {
// async Identifier => AsyncConciseBody // async Identifier => AsyncConciseBody
if (peek_any_identifier() && PeekAhead() == Token::ARROW) { if (peek_any_identifier() && PeekAhead() == Token::ARROW) {
name = ParseAndClassifyIdentifier(); name = ParseAndClassifyIdentifier();
RETURN_IF_PARSE_ERROR;
if (!classifier()->is_valid_async_arrow_formal_parameters()) { if (!classifier()->is_valid_async_arrow_formal_parameters()) {
ReportClassifierError( ReportClassifierError(
...@@ -1739,6 +1733,7 @@ ParserBase<Impl>::ParsePrimaryExpression() { ...@@ -1739,6 +1733,7 @@ ParserBase<Impl>::ParsePrimaryExpression() {
infer = InferName::kNo; infer = InferName::kNo;
} }
} }
RETURN_IF_PARSE_ERROR;
return impl()->ExpressionFromIdentifier(name, beg_pos, infer); return impl()->ExpressionFromIdentifier(name, beg_pos, infer);
} }
DCHECK_IMPLIES(Token::IsAnyIdentifier(token), token == Token::ENUM); DCHECK_IMPLIES(Token::IsAnyIdentifier(token), token == Token::ENUM);
...@@ -1794,7 +1789,6 @@ ParserBase<Impl>::ParsePrimaryExpression() { ...@@ -1794,7 +1789,6 @@ ParserBase<Impl>::ParsePrimaryExpression() {
function_state_->set_next_function_is_likely_called(); function_state_->set_next_function_is_likely_called();
} }
ExpressionT expr = ParseExpressionCoverGrammar(true); ExpressionT expr = ParseExpressionCoverGrammar(true);
RETURN_IF_PARSE_ERROR;
Expect(Token::RPAREN); Expect(Token::RPAREN);
return expr; return expr;
} }
...@@ -1810,7 +1804,6 @@ ParserBase<Impl>::ParsePrimaryExpression() { ...@@ -1810,7 +1804,6 @@ ParserBase<Impl>::ParsePrimaryExpression() {
bool is_await = false; bool is_await = false;
name = ParseIdentifierOrStrictReservedWord(&is_strict_reserved_name, name = ParseIdentifierOrStrictReservedWord(&is_strict_reserved_name,
&is_await); &is_await);
RETURN_IF_PARSE_ERROR;
class_name_location = scanner()->location(); class_name_location = scanner()->location();
if (is_await) { if (is_await) {
classifier()->RecordAsyncArrowFormalParametersError( classifier()->RecordAsyncArrowFormalParametersError(
...@@ -1852,7 +1845,6 @@ template <typename Impl> ...@@ -1852,7 +1845,6 @@ template <typename Impl>
typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseExpression() { typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseExpression() {
ExpressionClassifier classifier(this); ExpressionClassifier classifier(this);
ExpressionT result = ParseExpressionCoverGrammar(true); ExpressionT result = ParseExpressionCoverGrammar(true);
RETURN_IF_PARSE_ERROR;
ValidateExpression(); ValidateExpression();
return result; return result;
} }
...@@ -1878,7 +1870,6 @@ ParserBase<Impl>::ParseExpressionCoverGrammar(bool accept_IN) { ...@@ -1878,7 +1870,6 @@ ParserBase<Impl>::ParseExpressionCoverGrammar(bool accept_IN) {
int ellipsis_pos = position(); int ellipsis_pos = position();
int pattern_pos = peek_position(); int pattern_pos = peek_position();
ExpressionT pattern = ParseBindingPattern(); ExpressionT pattern = ParseBindingPattern();
RETURN_IF_PARSE_ERROR;
if (peek() == Token::ASSIGN) { if (peek() == Token::ASSIGN) {
ReportMessage(MessageTemplate::kRestDefaultInitializer); ReportMessage(MessageTemplate::kRestDefaultInitializer);
return impl()->NullExpression(); return impl()->NullExpression();
...@@ -1886,11 +1877,12 @@ ParserBase<Impl>::ParseExpressionCoverGrammar(bool accept_IN) { ...@@ -1886,11 +1877,12 @@ ParserBase<Impl>::ParseExpressionCoverGrammar(bool accept_IN) {
right = factory()->NewSpread(pattern, ellipsis_pos, pattern_pos); right = factory()->NewSpread(pattern, ellipsis_pos, pattern_pos);
} else { } else {
right = ParseAssignmentExpression(accept_IN); right = ParseAssignmentExpression(accept_IN);
RETURN_IF_PARSE_ERROR;
} }
// No need to accumulate binding pattern-related errors, since // No need to accumulate binding pattern-related errors, since
// an Expression can't be a binding pattern anyway. // an Expression can't be a binding pattern anyway.
AccumulateNonBindingPatternErrors(); AccumulateNonBindingPatternErrors();
// TODO(verwaest): Remove once we have FailureExpression.
RETURN_IF_PARSE_ERROR;
if (!impl()->IsIdentifier(right)) classifier()->RecordNonSimpleParameter(); if (!impl()->IsIdentifier(right)) classifier()->RecordNonSimpleParameter();
list.Add(right); list.Add(right);
...@@ -1939,13 +1931,14 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseArrayLiteral() { ...@@ -1939,13 +1931,14 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseArrayLiteral() {
int start_pos = position(); int start_pos = position();
int expr_pos = peek_position(); int expr_pos = peek_position();
ExpressionT argument = ParseAssignmentExpression(true); ExpressionT argument = ParseAssignmentExpression(true);
RETURN_IF_PARSE_ERROR;
elem = factory()->NewSpread(argument, start_pos, expr_pos); elem = factory()->NewSpread(argument, start_pos, expr_pos);
if (first_spread_index < 0) { if (first_spread_index < 0) {
first_spread_index = values.length(); first_spread_index = values.length();
} }
// TODO(verwaest): Remove once we have FailureExpression.
RETURN_IF_PARSE_ERROR;
if (argument->IsAssignment()) { if (argument->IsAssignment()) {
classifier()->RecordPatternError( classifier()->RecordPatternError(
Scanner::Location(start_pos, end_position()), Scanner::Location(start_pos, end_position()),
...@@ -1962,13 +1955,13 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseArrayLiteral() { ...@@ -1962,13 +1955,13 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseArrayLiteral() {
} else { } else {
int beg_pos = peek_position(); int beg_pos = peek_position();
elem = ParseAssignmentExpression(true); elem = ParseAssignmentExpression(true);
// TODO(verwaest): Remove once we have FailureExpression.
RETURN_IF_PARSE_ERROR; RETURN_IF_PARSE_ERROR;
CheckDestructuringElement(elem, beg_pos, end_position()); CheckDestructuringElement(elem, beg_pos, end_position());
} }
values.Add(elem); values.Add(elem);
if (peek() != Token::RBRACK) { if (peek() != Token::RBRACK) {
Expect(Token::COMMA); Expect(Token::COMMA);
RETURN_IF_PARSE_ERROR;
} }
} }
...@@ -2092,12 +2085,9 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName( ...@@ -2092,12 +2085,9 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName(
Consume(Token::LBRACK); Consume(Token::LBRACK);
ExpressionClassifier computed_name_classifier(this); ExpressionClassifier computed_name_classifier(this);
ExpressionT expression = ParseAssignmentExpression(true); ExpressionT expression = ParseAssignmentExpression(true);
RETURN_IF_PARSE_ERROR;
ValidateExpression(); ValidateExpression();
RETURN_IF_PARSE_ERROR;
AccumulateFormalParameterContainmentErrors(); AccumulateFormalParameterContainmentErrors();
Expect(Token::RBRACK); Expect(Token::RBRACK);
RETURN_IF_PARSE_ERROR;
if (*kind == ParsePropertyKind::kNotSet) { if (*kind == ParsePropertyKind::kNotSet) {
ParsePropertyKindFromToken(peek(), kind); ParsePropertyKindFromToken(peek(), kind);
} }
...@@ -2109,9 +2099,10 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName( ...@@ -2109,9 +2099,10 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName(
*name = impl()->NullIdentifier(); *name = impl()->NullIdentifier();
Consume(Token::ELLIPSIS); Consume(Token::ELLIPSIS);
ExpressionT expression = ParseAssignmentExpression(true); ExpressionT expression = ParseAssignmentExpression(true);
RETURN_IF_PARSE_ERROR;
*kind = ParsePropertyKind::kSpread; *kind = ParsePropertyKind::kSpread;
// TODO(verwaest): Remove once we have FailureExpression.
RETURN_IF_PARSE_ERROR;
if (!impl()->IsIdentifier(expression)) { if (!impl()->IsIdentifier(expression)) {
classifier()->RecordBindingPatternError( classifier()->RecordBindingPatternError(
scanner()->location(), scanner()->location(),
...@@ -2134,7 +2125,6 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName( ...@@ -2134,7 +2125,6 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName(
default: default:
*name = ParseIdentifierName(); *name = ParseIdentifierName();
RETURN_IF_PARSE_ERROR;
is_array_index = false; is_array_index = false;
break; break;
} }
...@@ -2142,6 +2132,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName( ...@@ -2142,6 +2132,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName(
if (*kind == ParsePropertyKind::kNotSet) { if (*kind == ParsePropertyKind::kNotSet) {
ParsePropertyKindFromToken(peek(), kind); ParsePropertyKindFromToken(peek(), kind);
} }
RETURN_IF_PARSE_ERROR;
impl()->PushLiteralName(*name); impl()->PushLiteralName(*name);
return is_array_index ? factory()->NewNumberLiteral(index, pos) return is_array_index ? factory()->NewNumberLiteral(index, pos)
: factory()->NewStringLiteral(*name, pos); : factory()->NewStringLiteral(*name, pos);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment