diff options
author | Bert Belder <bertbelder@gmail.com> | 2012-06-13 15:34:45 +0200 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2012-06-14 01:37:13 +0200 |
commit | 50464cd4f49e40f4fe792ff46a81052319a222e9 (patch) | |
tree | 1fe524b2e6c0eb3c459142cd27539f88e1a3f63c /deps/v8/src/scopeinfo.cc | |
parent | 09be360a0fee2c7619bae8c4248f9ed3d79d1b30 (diff) | |
download | node-new-50464cd4f49e40f4fe792ff46a81052319a222e9.tar.gz |
v8: upgrade to v3.11.10
Diffstat (limited to 'deps/v8/src/scopeinfo.cc')
-rw-r--r-- | deps/v8/src/scopeinfo.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/deps/v8/src/scopeinfo.cc b/deps/v8/src/scopeinfo.cc index 0f36234701..25f02f6320 100644 --- a/deps/v8/src/scopeinfo.cc +++ b/deps/v8/src/scopeinfo.cc @@ -38,10 +38,10 @@ namespace v8 { namespace internal { -Handle<ScopeInfo> ScopeInfo::Create(Scope* scope) { +Handle<ScopeInfo> ScopeInfo::Create(Scope* scope, Zone* zone) { // Collect stack and context locals. - ZoneList<Variable*> stack_locals(scope->StackLocalCount()); - ZoneList<Variable*> context_locals(scope->ContextLocalCount()); + ZoneList<Variable*> stack_locals(scope->StackLocalCount(), zone); + ZoneList<Variable*> context_locals(scope->ContextLocalCount(), zone); scope->CollectStackAndContextLocals(&stack_locals, &context_locals); const int stack_local_count = stack_locals.length(); const int context_local_count = context_locals.length(); @@ -53,7 +53,7 @@ Handle<ScopeInfo> ScopeInfo::Create(Scope* scope) { FunctionVariableInfo function_name_info; VariableMode function_variable_mode; if (scope->is_function_scope() && scope->function() != NULL) { - Variable* var = scope->function()->var(); + Variable* var = scope->function()->proxy()->var(); if (!var->is_used()) { function_name_info = UNUSED; } else if (var->IsContextSlot()) { @@ -129,8 +129,8 @@ Handle<ScopeInfo> ScopeInfo::Create(Scope* scope) { // If present, add the function variable name and its index. ASSERT(index == scope_info->FunctionNameEntryIndex()); if (has_function_name) { - int var_index = scope->function()->var()->index(); - scope_info->set(index++, *scope->function()->name()); + int var_index = scope->function()->proxy()->var()->index(); + scope_info->set(index++, *scope->function()->proxy()->name()); scope_info->set(index++, Smi::FromInt(var_index)); ASSERT(function_name_info != STACK || (var_index == scope_info->StackLocalCount() && @@ -142,7 +142,9 @@ Handle<ScopeInfo> ScopeInfo::Create(Scope* scope) { ASSERT(index == scope_info->length()); ASSERT(scope->num_parameters() == scope_info->ParameterCount()); ASSERT(scope->num_stack_slots() == scope_info->StackSlotCount()); - ASSERT(scope->num_heap_slots() == scope_info->ContextLength()); + ASSERT(scope->num_heap_slots() == scope_info->ContextLength() || + (scope->num_heap_slots() == kVariablePartIndex && + scope_info->ContextLength() == 0)); return scope_info; } |