Index: src/execution.cc |
diff --git a/src/execution.cc b/src/execution.cc |
index d7b9cf5d59604ae8abf536dff27fd707b453f4a8..ecfa1db1ed83067c1c824777ca3c1a3fae6883ab 100644 |
--- a/src/execution.cc |
+++ b/src/execution.cc |
@@ -206,10 +206,12 @@ Handle<Object> Execution::TryCall(Handle<JSFunction> func, |
catcher.SetCaptureMessage(false); |
*caught_exception = false; |
+ // Get isolate now, because handle might be persistent |
+ // and get destroyed in the next call. |
+ Isolate* isolate = func->GetIsolate(); |
Handle<Object> result = Invoke(false, func, receiver, argc, args, |
caught_exception); |
- Isolate* isolate = func->GetIsolate(); |
if (*caught_exception) { |
ASSERT(catcher.HasCaught()); |
ASSERT(isolate->has_pending_exception()); |