| Index: src/runtime/runtime-debug.cc | 
| diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc | 
| index 736d33dadce30cdfcc9571eb4b50dc13d6ad3c73..391b4839a27a050cba7b629a2d0b40a289a11fec 100644 | 
| --- a/src/runtime/runtime-debug.cc | 
| +++ b/src/runtime/runtime-debug.cc | 
| @@ -1268,16 +1268,21 @@ class ScopeIterator { | 
| context_ = Handle<Context>(); | 
| return; | 
| } | 
| -    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 { | 
| +    if (scope_type == ScopeTypeScript) { | 
| +      seen_script_scope_ = true; | 
| +      if (context_->IsScriptContext()) { | 
| 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); | 
|  |