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