| Index: runtime/vm/simulator_mips.cc | 
| diff --git a/runtime/vm/simulator_mips.cc b/runtime/vm/simulator_mips.cc | 
| index 8f55a26534ce09488c074ad81fde20c9cc8b1273..b0f7d5f047129a8b395d15fe0ea4edc9df949fae 100644 | 
| --- a/runtime/vm/simulator_mips.cc | 
| +++ b/runtime/vm/simulator_mips.cc | 
| @@ -2216,7 +2216,8 @@ void Simulator::Longjmp(uword pc, | 
| uword sp, | 
| uword fp, | 
| RawObject* raw_exception, | 
| -                        RawObject* raw_stacktrace) { | 
| +                        RawObject* raw_stacktrace, | 
| +                        Isolate* isolate) { | 
| // Walk over all setjmp buffers (simulated --> C++ transitions) | 
| // and try to find the setjmp associated with the simulated stack pointer. | 
| SimulatorSetjmpBuffer* buf = last_setjmp_buffer(); | 
| @@ -2229,7 +2230,6 @@ void Simulator::Longjmp(uword pc, | 
| // Prepare for unwinding frames by destroying all the stack resources | 
| // in the previous C++ frames. | 
| uword native_sp = buf->native_sp(); | 
| -  Isolate* isolate = Isolate::Current(); | 
| while (isolate->top_resource() != NULL && | 
| (reinterpret_cast<uword>(isolate->top_resource()) < native_sp)) { | 
| isolate->top_resource()->~StackResource(); | 
| @@ -2239,6 +2239,10 @@ void Simulator::Longjmp(uword pc, | 
| set_pc(static_cast<int32_t>(pc)); | 
| set_register(SP, static_cast<int32_t>(sp)); | 
| set_register(FP, static_cast<int32_t>(fp)); | 
| +  // Set the tag. | 
| +  isolate->set_vm_tag(VMTag::kScriptTagId); | 
| +  // Clear top exit frame. | 
| +  isolate->set_top_exit_frame_info(0); | 
|  | 
| ASSERT(raw_exception != Object::null()); | 
| set_register(kExceptionObjectReg, bit_cast<int32_t>(raw_exception)); | 
|  |