| Index: src/parser.h
|
| diff --git a/src/parser.h b/src/parser.h
|
| index 602b5278ea813cb20083df5e99465c7466975abd..26a4b66a08d966f0246e866e8331d2671c7019ba 100644
|
| --- a/src/parser.h
|
| +++ b/src/parser.h
|
| @@ -783,11 +783,11 @@ class ParserTraits {
|
| Expression* initializer, bool is_rest);
|
| V8_INLINE void DeclareFormalParameter(
|
| Scope* scope, const ParserFormalParameters::Parameter& parameter,
|
| - bool is_simple, ExpressionClassifier* classifier);
|
| - void ParseArrowFunctionFormalParameters(
|
| - ParserFormalParameters* parameters, Expression* params,
|
| - const Scanner::Location& params_loc,
|
| - Scanner::Location* duplicate_loc, bool* ok);
|
| + ExpressionClassifier* classifier);
|
| + void ParseArrowFunctionFormalParameters(ParserFormalParameters* parameters,
|
| + Expression* params,
|
| + const Scanner::Location& params_loc,
|
| + bool* ok);
|
| void ParseArrowFunctionFormalParameterList(
|
| ParserFormalParameters* parameters, Expression* params,
|
| const Scanner::Location& params_loc,
|
| @@ -1332,12 +1332,14 @@ void ParserTraits::AddFormalParameter(
|
|
|
| void ParserTraits::DeclareFormalParameter(
|
| Scope* scope, const ParserFormalParameters::Parameter& parameter,
|
| - bool is_simple, ExpressionClassifier* classifier) {
|
| + ExpressionClassifier* classifier) {
|
| bool is_duplicate = false;
|
| + bool is_simple = classifier->is_simple_parameter_list();
|
| // TODO(caitp): Remove special handling for rest once desugaring is in.
|
| auto name = is_simple || parameter.is_rest
|
| ? parameter.name : parser_->ast_value_factory()->empty_string();
|
| auto mode = is_simple || parameter.is_rest ? VAR : TEMPORARY;
|
| + if (!is_simple) scope->SetHasNonSimpleParameters();
|
| Variable* var =
|
| scope->DeclareParameter(name, mode, parameter.is_rest, &is_duplicate);
|
| if (is_duplicate) {
|
|
|