| 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());
|
|
|