Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index 7b847974fdc775ef619336a71603200c25c970fc..c6ee65dec6f9ab039ee4c0f7fc471df52bd13d10 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -439,6 +439,19 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, |
return JAVA_SCRIPT; |
case Code::OPTIMIZED_FUNCTION: |
return OPTIMIZED; |
+ case Code::BUILTIN: |
titzer
2015/10/15 17:01:55
Are interpreter frames really only identifiable th
rmcilroy
2015/10/15 19:47:47
The marker is not a SMI (it's a tagged JSFunction
|
+ if (!marker->IsSmi()) { |
+ if (StandardFrame::IsArgumentsAdaptorFrame(state->fp)) { |
+ // An adapter frame has a special SMI constant for the context and |
+ // is not distinguished through the marker. |
+ return ARGUMENTS_ADAPTOR; |
+ } else { |
+ // The interpreter entry trampoline has a non-SMI marker. |
+ DCHECK(code_obj->is_interpreter_entry_trampoline()); |
+ return INTERPRETED; |
+ } |
+ } |
+ break; // Marker encodes the frame type. |
case Code::HANDLER: |
if (!marker->IsSmi()) { |
// Only hydrogen code stub handlers can have a non-SMI marker. |
@@ -451,12 +464,6 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, |
} |
} |
- if (StandardFrame::IsArgumentsAdaptorFrame(state->fp)) { |
- // An adapter frame has a special SMI constant for the context and |
- // is not distinguished through the marker. |
- return ARGUMENTS_ADAPTOR; |
- } |
- |
// Didn't find a code object, or the code kind wasn't specific enough. |
// The marker should encode the frame type. |
return static_cast<StackFrame::Type>(Smi::cast(marker)->value()); |