| 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;
|
| }
|
|
|