| Index: src/parser.h
 | 
| diff --git a/src/parser.h b/src/parser.h
 | 
| index 6c641721861146f7d53c9f9f31f322802276e6e6..b86becb1751b9ce35eba0ba71877d859e0db5bcd 100644
 | 
| --- a/src/parser.h
 | 
| +++ b/src/parser.h
 | 
| @@ -551,12 +551,17 @@ class SingletonLogger;
 | 
|  struct ParserFormalParameters : FormalParametersBase {
 | 
|    struct Parameter {
 | 
|      Parameter(const AstRawString* name, Expression* pattern,
 | 
| -              Expression* initializer, bool is_rest)
 | 
| -        : name(name), pattern(pattern), initializer(initializer),
 | 
| +              Expression* initializer, int initializer_end_position,
 | 
| +              bool is_rest)
 | 
| +        : name(name),
 | 
| +          pattern(pattern),
 | 
| +          initializer(initializer),
 | 
| +          initializer_end_position(initializer_end_position),
 | 
|            is_rest(is_rest) {}
 | 
|      const AstRawString* name;
 | 
|      Expression* pattern;
 | 
|      Expression* initializer;
 | 
| +    int initializer_end_position;
 | 
|      bool is_rest;
 | 
|      bool is_simple() const {
 | 
|        return pattern->IsVariableProxy() && initializer == nullptr && !is_rest;
 | 
| @@ -793,9 +798,10 @@ class ParserTraits {
 | 
|    V8_INLINE Scope* NewScope(Scope* parent_scope, ScopeType scope_type,
 | 
|                              FunctionKind kind = kNormalFunction);
 | 
|  
 | 
| -  V8_INLINE void AddFormalParameter(
 | 
| -      ParserFormalParameters* parameters, Expression* pattern,
 | 
| -      Expression* initializer, bool is_rest);
 | 
| +  V8_INLINE void AddFormalParameter(ParserFormalParameters* parameters,
 | 
| +                                    Expression* pattern,
 | 
| +                                    Expression* initializer,
 | 
| +                                    int initializer_end_position, bool is_rest);
 | 
|    V8_INLINE void DeclareFormalParameter(
 | 
|        Scope* scope, const ParserFormalParameters::Parameter& parameter,
 | 
|        ExpressionClassifier* classifier);
 | 
| @@ -1338,9 +1344,11 @@ Expression* ParserTraits::SpreadCallNew(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void ParserTraits::AddFormalParameter(
 | 
| -    ParserFormalParameters* parameters,
 | 
| -    Expression* pattern, Expression* initializer, bool is_rest) {
 | 
| +void ParserTraits::AddFormalParameter(ParserFormalParameters* parameters,
 | 
| +                                      Expression* pattern,
 | 
| +                                      Expression* initializer,
 | 
| +                                      int initializer_end_position,
 | 
| +                                      bool is_rest) {
 | 
|    bool is_simple =
 | 
|        !is_rest && pattern->IsVariableProxy() && initializer == nullptr;
 | 
|    DCHECK(parser_->allow_harmony_destructuring_bind() ||
 | 
| @@ -1350,7 +1358,8 @@ void ParserTraits::AddFormalParameter(
 | 
|                                   ? pattern->AsVariableProxy()->raw_name()
 | 
|                                   : parser_->ast_value_factory()->empty_string();
 | 
|    parameters->params.Add(
 | 
| -      ParserFormalParameters::Parameter(name, pattern, initializer, is_rest),
 | 
| +      ParserFormalParameters::Parameter(name, pattern, initializer,
 | 
| +                                        initializer_end_position, is_rest),
 | 
|        parameters->scope->zone());
 | 
|  }
 | 
|  
 | 
| 
 |