Chromium Code Reviews| Index: src/scopes.cc |
| diff --git a/src/scopes.cc b/src/scopes.cc |
| index 19466e40a0d85def78cbf23551d84585752f7794..ee4c7b478b1d168fce5b784dc1fb16950fc02625 100644 |
| --- a/src/scopes.cc |
| +++ b/src/scopes.cc |
| @@ -601,10 +601,6 @@ Declaration* Scope::CheckConflictingVarDeclarations() { |
| const AstRawString* name = decl->proxy()->raw_name(); |
| // Iterate through all scopes until and including the declaration scope. |
| - // If the declaration scope is a (declaration) block scope, also continue |
| - // (that is to handle the special inner scope of functions with |
| - // destructuring parameters, which may not shadow any variables from |
| - // the surrounding function scope). |
| Scope* previous = NULL; |
| Scope* current = decl->scope(); |
| // Lexical vs lexical conflicts within the same scope have already been |
| @@ -620,7 +616,7 @@ Declaration* Scope::CheckConflictingVarDeclarations() { |
| } |
| previous = current; |
| current = current->outer_scope_; |
| - } while (!previous->is_declaration_scope() || previous->is_block_scope()); |
|
adamk
2015/09/29 18:28:29
Is this what makes function declarations work prop
rossberg
2015/09/30 14:50:48
No, this is what prevents the previous behaviour o
|
| + } while (!previous->is_declaration_scope()); |
| } |
| return NULL; |
| } |