Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 5ff72651c106a4bdb6eb916f47a8523c60bad098..a629326262070db710ebf4981d9bd3a788623c9d 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -5885,7 +5885,7 @@ DebugInfo* SharedFunctionInfo::GetDebugInfo() { |
bool SharedFunctionInfo::HasDebugCode() { |
- return HasBytecodeArray() || |
+ return IsInterpreted() || |
(code()->kind() == Code::FUNCTION && code()->has_debug_break_slots()); |
} |
@@ -5909,6 +5909,15 @@ bool SharedFunctionInfo::HasBytecodeArray() { |
return function_data()->IsBytecodeArray(); |
} |
+bool SharedFunctionInfo::IsInterpreted() { |
+ // Currently, having bytecode does not mean the function is actually being |
+ // interpreted. However, the debugger has to know precisely what is going to |
+ // be executed. |
+ // TODO(yangguo,mstarzinger): make this a synonym of HasBytecodeArray(). |
+ return code() == |
+ GetIsolate()->builtins()->builtin( |
+ Builtins::kInterpreterEntryTrampoline); |
+} |
BytecodeArray* SharedFunctionInfo::bytecode_array() { |
DCHECK(HasBytecodeArray()); |