Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(358)

Unified Diff: src/parsing/parser-base.h

Issue 2531593002: Parser: store parameters in a ThreadedList instead of ZoneList. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(&parameters.materialized_literals_count);
+ checkpoint.Restore(&parameters->materialized_literals_count);
scope->set_start_position(lhs_beg_pos);
Scanner::Location duplicate_loc = Scanner::Location::invalid();
- impl()->DeclareArrowFunctionFormalParameters(&parameters, 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>
« src/parsing/parser.cc ('K') | « src/parsing/parser.cc ('k') | src/parsing/preparser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698