Chromium Code Reviews| Index: src/isolate.cc |
| diff --git a/src/isolate.cc b/src/isolate.cc |
| index c81afcc0e744226b626a9ba497af6199aa6ec5ef..d6ac75d3fe16f08faec41afd895e93c5270eaf19 100644 |
| --- a/src/isolate.cc |
| +++ b/src/isolate.cc |
| @@ -1327,9 +1327,17 @@ void Isolate::PrintCurrentStackTrace(FILE* out) { |
| HandleScope scope(this); |
| // Find code position if recorded in relocation info. |
| StandardFrame* frame = it.frame(); |
| - Code* code = frame->LookupCode(); |
| - int offset = static_cast<int>(frame->pc() - code->instruction_start()); |
| - int pos = frame->LookupCode()->SourcePosition(offset); |
| + int pos; |
| + if (frame->is_java_script() && |
|
Michael Starzinger
2016/04/21 17:05:18
nit: Just "frame->is_interpreted()" is sufficient.
Yang
2016/04/22 05:03:39
Done.
|
| + JavaScriptFrame::cast(frame)->is_interpreted()) { |
| + InterpretedFrame* iframe = reinterpret_cast<InterpretedFrame*>(frame); |
| + pos = iframe->GetBytecodeArray()->SourcePosition( |
| + iframe->GetBytecodeOffset()); |
| + } else { |
| + Code* code = frame->LookupCode(); |
| + int offset = static_cast<int>(frame->pc() - code->instruction_start()); |
| + pos = frame->LookupCode()->SourcePosition(offset); |
| + } |
| Handle<Object> pos_obj(Smi::FromInt(pos), this); |
| // Fetch function and receiver. |
| Handle<JSFunction> fun(frame->function()); |