 Chromium Code Reviews
 Chromium Code Reviews Issue 1407513003:
  [Interpreter]: Basic support for iterating interpreter stack frames for GC.  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master
    
  
    Issue 1407513003:
  [Interpreter]: Basic support for iterating interpreter stack frames for GC.  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master| 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()); |