Chromium Code Reviews| Index: src/parser.h |
| diff --git a/src/parser.h b/src/parser.h |
| index 87269ed619581862cb4038173286a1c4b0d42b28..1974f296f0756b0739ff6970453d1cbad7534a9a 100644 |
| --- a/src/parser.h |
| +++ b/src/parser.h |
| @@ -541,10 +541,11 @@ class SingletonLogger; |
| struct ParserFormalParameters : public PreParserFormalParameters { |
| struct Parameter { |
| - Parameter(Variable* var, Expression* pattern) |
| - : var(var), pattern(pattern) {} |
| - Variable* var; |
| + Parameter(const AstRawString* name, Expression* pattern, bool is_rest) |
| + : name(name), pattern(pattern), is_rest(is_rest) {} |
| + const AstRawString* name; |
| Expression* pattern; |
| + bool is_rest; |
| }; |
| explicit ParserFormalParameters(Scope* scope) |
| @@ -552,8 +553,10 @@ struct ParserFormalParameters : public PreParserFormalParameters { |
| ZoneList<Parameter> params; |
| - void AddParameter(Variable* var, Expression* pattern) { |
| - params.Add(Parameter(var, pattern), scope->zone()); |
| + void AddParameter( |
| + const AstRawString* name, Expression* pattern, bool is_rest) { |
| + params.Add(Parameter(name, pattern, is_rest), scope->zone()); |
| + DCHECK(arity == params.length()); |
|
adamk
2015/08/03 18:20:23
DCHECK_EQ.
Also, it will probably be more clear a
rossberg
2015/08/04 13:44:22
Done.
|
| } |
| }; |
| @@ -579,7 +582,7 @@ class ParserTraits { |
| typedef ObjectLiteral::Property* ObjectLiteralProperty; |
| typedef ZoneList<v8::internal::Expression*>* ExpressionList; |
| typedef ZoneList<ObjectLiteral::Property*>* PropertyList; |
| - typedef const v8::internal::AstRawString* FormalParameter; |
| + typedef ParserFormalParameters::Parameter FormalParameter; |
| typedef ParserFormalParameters FormalParameters; |
| typedef ZoneList<v8::internal::Statement*>* StatementList; |
| @@ -1320,7 +1323,7 @@ void ParserTraits::DeclareFormalParameter( |
| : parser_->ast_value_factory()->empty_string(); |
| Variable* var = |
| parameters->scope->DeclareParameter(name, VAR, is_rest, &is_duplicate); |
| - parameters->AddParameter(var, is_simple ? nullptr : pattern); |
| + parameters->AddParameter(name, is_simple ? nullptr : pattern, is_rest); |
| if (is_duplicate) { |
| classifier->RecordDuplicateFormalParameterError( |
| parser_->scanner()->location()); |