| 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>
|
|
|