Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 94136734f16ae23b8191de63adc32efa9f11e7bf..a5f512d8bddb00b49f86621d58e15f870a1f82cc 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -3936,9 +3936,12 @@ MaybeObject* Heap::AllocateFunctionContext(int length, JSFunction* function) { |
MaybeObject* Heap::AllocateCatchContext(Context* previous, |
- JSObject* extension) { |
+ String* name, |
+ Object* thrown_object) { |
+ STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == Context::THROWN_OBJECT_INDEX); |
Object* result; |
- { MaybeObject* maybe_result = AllocateFixedArray(Context::MIN_CONTEXT_SLOTS); |
+ { MaybeObject* maybe_result = |
+ AllocateFixedArray(Context::MIN_CONTEXT_SLOTS + 1); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
} |
Context* context = reinterpret_cast<Context*>(result); |
@@ -3946,8 +3949,9 @@ MaybeObject* Heap::AllocateCatchContext(Context* previous, |
context->set_closure(previous->closure()); |
context->set_fcontext(previous->fcontext()); |
context->set_previous(previous); |
- context->set_extension(extension); |
+ context->set_extension(name); |
context->set_global(previous->global()); |
+ context->set(Context::THROWN_OBJECT_INDEX, thrown_object); |
return context; |
} |