diff options
Diffstat (limited to 'chromium/v8/src/scopes.cc')
-rw-r--r-- | chromium/v8/src/scopes.cc | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/chromium/v8/src/scopes.cc b/chromium/v8/src/scopes.cc index e631332d5c3..ce1741a623a 100644 --- a/chromium/v8/src/scopes.cc +++ b/chromium/v8/src/scopes.cc @@ -129,7 +129,7 @@ Scope::Scope(Scope* inner_scope, ScopeType scope_type, Handle<ScopeInfo> scope_info, Zone* zone) - : isolate_(Isolate::Current()), + : isolate_(zone->isolate()), inner_scopes_(4, zone), variables_(zone), internals_(4, zone), @@ -152,7 +152,7 @@ Scope::Scope(Scope* inner_scope, Scope::Scope(Scope* inner_scope, Handle<String> catch_variable_name, Zone* zone) - : isolate_(Isolate::Current()), + : isolate_(zone->isolate()), inner_scopes_(1, zone), variables_(zone), internals_(0, zone), @@ -907,26 +907,32 @@ void Scope::Print(int n) { PrintF("%d heap slots\n", num_heap_slots_); } // Print locals. - Indent(n1, "// function var\n"); if (function_ != NULL) { + Indent(n1, "// function var:\n"); PrintVar(n1, function_->proxy()->var()); } - Indent(n1, "// temporary vars\n"); - for (int i = 0; i < temps_.length(); i++) { - PrintVar(n1, temps_[i]); + if (temps_.length() > 0) { + Indent(n1, "// temporary vars:\n"); + for (int i = 0; i < temps_.length(); i++) { + PrintVar(n1, temps_[i]); + } } - Indent(n1, "// internal vars\n"); - for (int i = 0; i < internals_.length(); i++) { - PrintVar(n1, internals_[i]); + if (internals_.length() > 0) { + Indent(n1, "// internal vars:\n"); + for (int i = 0; i < internals_.length(); i++) { + PrintVar(n1, internals_[i]); + } } - Indent(n1, "// local vars\n"); - PrintMap(n1, &variables_); + if (variables_.Start() != NULL) { + Indent(n1, "// local vars:\n"); + PrintMap(n1, &variables_); + } - Indent(n1, "// dynamic vars\n"); if (dynamics_ != NULL) { + Indent(n1, "// dynamic vars:\n"); PrintMap(n1, dynamics_->GetMap(DYNAMIC)); PrintMap(n1, dynamics_->GetMap(DYNAMIC_LOCAL)); PrintMap(n1, dynamics_->GetMap(DYNAMIC_GLOBAL)); @@ -1086,7 +1092,7 @@ bool Scope::ResolveVariable(CompilationInfo* info, // Assignment to const. Throw a syntax error. MessageLocation location( info->script(), proxy->position(), proxy->position()); - Isolate* isolate = Isolate::Current(); + Isolate* isolate = info->isolate(); Factory* factory = isolate->factory(); Handle<JSArray> array = factory->NewJSArray(0); Handle<Object> result = @@ -1117,7 +1123,7 @@ bool Scope::ResolveVariable(CompilationInfo* info, // TODO(rossberg): generate more helpful error message. MessageLocation location( info->script(), proxy->position(), proxy->position()); - Isolate* isolate = Isolate::Current(); + Isolate* isolate = info->isolate(); Factory* factory = isolate->factory(); Handle<JSArray> array = factory->NewJSArray(1); USE(JSObject::SetElement(array, 0, var->name(), NONE, kStrictMode)); |