Index: src/parsing/parser-base.h |
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h |
index 3d486b88857fb003ec07c63f76701d8c97afec29..0a9e3deee8369a3b626888a9ab4416764c7c91f6 100644 |
--- a/src/parsing/parser-base.h |
+++ b/src/parsing/parser-base.h |
@@ -57,7 +57,7 @@ static inline bool operator&(ParseFunctionFlags bitfield, |
return static_cast<T>(bitfield) & static_cast<T>(mask); |
} |
-struct FormalParametersBase { |
+struct FormalParametersBase : public ZoneObject { |
explicit FormalParametersBase(DeclarationScope* scope) : scope(scope) {} |
int num_parameters() const { |
@@ -2658,22 +2658,22 @@ ParserBase<Impl>::ParseAssignmentExpression(bool accept_IN, bool* ok) { |
scope_snapshot.Reparent(scope); |
- FormalParametersT parameters(scope); |
+ FormalParametersT* parameters = new (zone()) FormalParametersT(scope); |
if (!classifier()->is_simple_parameter_list()) { |
scope->SetHasNonSimpleParameters(); |
- parameters.is_simple = false; |
+ parameters->is_simple = false; |
} |
- checkpoint.Restore(¶meters.materialized_literals_count); |
+ checkpoint.Restore(¶meters->materialized_literals_count); |
scope->set_start_position(lhs_beg_pos); |
Scanner::Location duplicate_loc = Scanner::Location::invalid(); |
- impl()->DeclareArrowFunctionFormalParameters(¶meters, expression, loc, |
+ impl()->DeclareArrowFunctionFormalParameters(parameters, expression, loc, |
&duplicate_loc, CHECK_OK); |
if (duplicate_loc.IsValid()) { |
classifier()->RecordDuplicateFormalParameterError(duplicate_loc); |
} |
- expression = ParseArrowFunctionLiteral(accept_IN, parameters, CHECK_OK); |
+ expression = ParseArrowFunctionLiteral(accept_IN, *parameters, CHECK_OK); |
impl()->Discard(); |
classifier()->RecordPatternError(arrow_loc, |
MessageTemplate::kUnexpectedToken, |
@@ -3500,10 +3500,7 @@ void ParserBase<Impl>::ParseFormalParameterList(FormalParametersT* parameters, |
} |
} |
- for (int i = 0; i < parameters->arity; ++i) { |
- auto parameter = parameters->at(i); |
- impl()->DeclareFormalParameter(parameters->scope, parameter); |
- } |
+ impl()->DeclareFormalParameters(parameters->scope, parameters->params); |
} |
template <typename Impl> |