Index: src/scopes.cc |
diff --git a/src/scopes.cc b/src/scopes.cc |
index 10548f99381e933d3dc9ccd3063e25fdea38c378..5ad970ad814f1d6ffc06e4b7b04cac57806fa1a8 100644 |
--- a/src/scopes.cc |
+++ b/src/scopes.cc |
@@ -726,7 +726,9 @@ int Scope::ContextChainLength(Scope* scope) { |
int n = 0; |
for (Scope* s = this; s != scope; s = s->outer_scope_) { |
ASSERT(s != NULL); // scope must be in the scope chain |
- if (s->num_heap_slots() > 0) n++; |
+ if (s->is_with_scope() || s->num_heap_slots() > 0) n++; |
+ // Catch scopes always have heap slots. |
+ ASSERT(!s->is_catch_scope() || s->num_heap_slots() > 0); |
} |
return n; |
} |