Index: src/runtime/runtime-debug.cc |
diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc |
index dd59c4fc5ee6b4f710b3a9149afaf358a4533523..031bdb2760f241fbd669867db02f1016501fd166 100644 |
--- a/src/runtime/runtime-debug.cc |
+++ b/src/runtime/runtime-debug.cc |
@@ -1475,21 +1475,16 @@ class ScopeIterator { |
context_ = Handle<Context>(); |
return; |
} |
- if (scope_type == ScopeTypeScript) { |
- seen_script_scope_ = true; |
- if (context_->IsScriptContext()) { |
+ if (scope_type == ScopeTypeScript) seen_script_scope_ = true; |
+ if (nested_scope_chain_.is_empty()) { |
+ if (scope_type == ScopeTypeScript) { |
+ if (context_->IsScriptContext()) { |
+ context_ = Handle<Context>(context_->previous(), isolate_); |
+ } |
+ CHECK(context_->IsNativeContext()); |
+ } else { |
context_ = Handle<Context>(context_->previous(), isolate_); |
} |
- if (!nested_scope_chain_.is_empty()) { |
- DCHECK_EQ(nested_scope_chain_.last()->scope_type(), SCRIPT_SCOPE); |
- nested_scope_chain_.RemoveLast(); |
- DCHECK(nested_scope_chain_.is_empty()); |
- } |
- CHECK(context_->IsNativeContext()); |
- return; |
- } |
- if (nested_scope_chain_.is_empty()) { |
- context_ = Handle<Context>(context_->previous(), isolate_); |
} else { |
if (nested_scope_chain_.last()->HasContext()) { |
DCHECK(context_->previous() != NULL); |