| Index: runtime/vm/simulator_dbc.cc
|
| diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
|
| index 8febf13468918bb2fb8946a1becdc1b78815e38e..445397360ed6cc2c8dd171dd0e10571b4124a958 100644
|
| --- a/runtime/vm/simulator_dbc.cc
|
| +++ b/runtime/vm/simulator_dbc.cc
|
| @@ -3715,14 +3715,25 @@ void Simulator::JumpToFrame(uword pc, uword sp, uword fp, Thread* thread) {
|
| fp_ = reinterpret_cast<RawObject**>(fp);
|
|
|
| if (pc == StubCode::RunExceptionHandler_entry()->EntryPoint()) {
|
| - // Instead of executing the RunException stub, we implement its
|
| - // behavior here.
|
| + // The RunExceptionHandler stub is a placeholder. We implement
|
| + // its behavior here.
|
| RawObject* raw_exception = thread->active_exception();
|
| RawObject* raw_stacktrace = thread->active_stacktrace();
|
| ASSERT(raw_exception != Object::null());
|
| special_[kExceptionSpecialIndex] = raw_exception;
|
| special_[kStacktraceSpecialIndex] = raw_stacktrace;
|
| pc_ = thread->resume_pc();
|
| + } else if (pc == StubCode::DeoptForRewind_entry()->EntryPoint()) {
|
| + // The DeoptForRewind stub is a placeholder. We will eventually
|
| + // implement its behavior here.
|
| + //
|
| + // TODO(turnidge): Refactor the Deopt bytecode so that we can use
|
| + // the implementation here too. The deopt pc is stored in
|
| + // Thread::resume_pc(). After invoking deoptimization, we usually
|
| + // call into Debugger::RewindPostDeopt(), but I need to figure out
|
| + // if that makes any sense (it would JumpToFrame during a
|
| + // JumpToFrame, which seems wrong).
|
| + UNIMPLEMENTED();
|
| } else {
|
| pc_ = pc;
|
| }
|
|
|