Chromium Code Reviews| Index: src/parsing/pattern-rewriter.cc | 
| diff --git a/src/parsing/pattern-rewriter.cc b/src/parsing/pattern-rewriter.cc | 
| index 2810c3506b165c352ab5dfeeb413cc4c90756437..cb47b572166b3cb8ff551303d86f78c08782f285 100644 | 
| --- a/src/parsing/pattern-rewriter.cc | 
| +++ b/src/parsing/pattern-rewriter.cc | 
| @@ -147,7 +147,12 @@ void Parser::PatternRewriter::VisitVariableProxy(VariableProxy* pattern) { | 
| // pre-resolve the proxy because it resides in the same scope as the | 
| // declaration. | 
| const AstRawString* name = pattern->raw_name(); | 
| - VariableProxy* proxy = parser_->NewUnresolved(name, descriptor_->mode); | 
| + Scope* scope = IsLexicalVariableMode(descriptor_->mode) | 
| + ? parser_->scope() | 
| + : parser_->GetDeclarationScope(); | 
| + VariableProxy* proxy = scope->NewUnresolved( | 
| 
 
adamk
2016/08/10 17:37:43
I think this should just be unconditionally create
 
 | 
| + factory(), name, parser_->scanner()->location().beg_pos, | 
| + parser_->scanner()->location().end_pos); | 
| Declaration* declaration = factory()->NewVariableDeclaration( | 
| proxy, descriptor_->mode, descriptor_->scope, | 
| descriptor_->declaration_pos); |