Index: src/ast/scopes.cc |
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc |
index f30a3e2995772617ca1742e0a2c33c95d09be139..e88a79679004f233aa4c4dbc39df582313e97e7b 100644 |
--- a/src/ast/scopes.cc |
+++ b/src/ast/scopes.cc |
@@ -363,17 +363,16 @@ Scope* Scope::DeserializeScopeChain(Isolate* isolate, Zone* zone, |
} |
DCHECK(!scope_info->HasOuterScopeInfo()); |
break; |
- } else if (scope_info->scope_type() == FUNCTION_SCOPE || |
- scope_info->scope_type() == EVAL_SCOPE) { |
- // TODO(neis): For an eval scope, we currently create an ordinary function |
- // context. This is wrong and needs to be fixed. |
- // https://bugs.chromium.org/p/v8/issues/detail?id=5295 |
+ } else if (scope_info->scope_type() == FUNCTION_SCOPE) { |
outer_scope = |
new (zone) DeclarationScope(zone, FUNCTION_SCOPE, handle(scope_info)); |
if (scope_info->IsAsmFunction()) |
outer_scope->AsDeclarationScope()->set_asm_function(); |
if (scope_info->IsAsmModule()) |
outer_scope->AsDeclarationScope()->set_asm_module(); |
+ } else if (scope_info->scope_type() == EVAL_SCOPE) { |
+ outer_scope = |
+ new (zone) DeclarationScope(zone, EVAL_SCOPE, handle(scope_info)); |
} else if (scope_info->scope_type() == BLOCK_SCOPE) { |
if (scope_info->is_declaration_scope()) { |
outer_scope = |