Index: src/ast/scopes.cc |
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc |
index a0b23234166506e9ca328677d6056071d55dce64..129cbceaf5bef5c1104efa1332481c23582f7ce3 100644 |
--- a/src/ast/scopes.cc |
+++ b/src/ast/scopes.cc |
@@ -340,14 +340,12 @@ void Scope::DeserializeScopeInfo(Isolate* isolate, |
DCHECK(ThreadId::Current().Equals(isolate->thread_id())); |
- std::set<const AstRawString*> names_seen; |
// Internalize context local & globals variables. |
for (int var = 0; var < scope_info_->ContextLocalCount() + |
scope_info_->ContextGlobalCount(); |
++var) { |
Handle<String> name_handle(scope_info_->ContextLocalName(var), isolate); |
const AstRawString* name = ast_value_factory->GetString(name_handle); |
- if (!names_seen.insert(name).second) continue; |
int index = Context::MIN_CONTEXT_SLOTS + var; |
VariableMode mode = scope_info_->ContextLocalMode(var); |
InitializationFlag init_flag = scope_info_->ContextLocalInitFlag(var); |
@@ -366,26 +364,6 @@ void Scope::DeserializeScopeInfo(Isolate* isolate, |
result->AllocateTo(location, index); |
} |
- // We must read parameters from the end since for multiply declared |
- // parameters the value of the last declaration of that parameter is used |
- // inside a function (and thus we need to look at the last index). Was bug# |
- // 1110337. |
- for (int index = scope_info_->ParameterCount() - 1; index >= 0; --index) { |
- Handle<String> name_handle(scope_info_->ParameterName(index), isolate); |
- const AstRawString* name = ast_value_factory->GetString(name_handle); |
- if (!names_seen.insert(name).second) continue; |
- |
- VariableMode mode = DYNAMIC; |
- InitializationFlag init_flag = kCreatedInitialized; |
- MaybeAssignedFlag maybe_assigned_flag = kMaybeAssigned; |
- VariableLocation location = VariableLocation::LOOKUP; |
- Variable::Kind kind = Variable::NORMAL; |
- |
- Variable* result = variables_.Declare(zone(), this, name, mode, kind, |
- init_flag, maybe_assigned_flag); |
- result->AllocateTo(location, index); |
- } |
- |
// Internalize function proxy for this scope. |
if (scope_info_->HasFunctionName()) { |
Handle<String> name_handle(scope_info_->FunctionName(), isolate); |
@@ -616,7 +594,7 @@ Variable* Scope::LookupInScopeInfo(const AstRawString* name) { |
// it's ok to get the Handle<String> here. |
// If we have a serialized scope info, we might find the variable there. |
// There should be no local slot with the given name. |
- DCHECK(scope_info_->StackSlotIndex(*name_handle) < 0); |
+ DCHECK_LT(scope_info_->StackSlotIndex(*name_handle), 0); |
VariableMode mode; |
InitializationFlag init_flag; |
@@ -631,18 +609,6 @@ Variable* Scope::LookupInScopeInfo(const AstRawString* name) { |
&init_flag, &maybe_assigned_flag); |
DCHECK(index < 0 || (is_script_scope() && mode == VAR)); |
} |
- if (index < 0) { |
- location = VariableLocation::LOOKUP; |
- index = scope_info_->ParameterIndex(*name_handle); |
- if (index >= 0) { |
- mode = DYNAMIC; |
- init_flag = kCreatedInitialized; |
- // Be conservative and flag parameters as maybe assigned. Better |
- // information would require ScopeInfo to serialize the maybe_assigned bit |
- // also for parameters. |
- maybe_assigned_flag = kMaybeAssigned; |
- } |
- } |
if (index < 0 && scope_type() == MODULE_SCOPE) { |
location = VariableLocation::MODULE; |
index = -1; // TODO(neis): Find module variables in scope info. |