Index: src/frames-inl.h |
diff --git a/src/frames-inl.h b/src/frames-inl.h |
index cb03e2fd7fb25ac410e7e837dbf478c71ec28bb0..07c8e4ede55c7b9f39845f44aa4d50087cecf649 100644 |
--- a/src/frames-inl.h |
+++ b/src/frames-inl.h |
@@ -169,6 +169,19 @@ inline bool JavaScriptFrame::has_adapted_arguments() const { |
} |
+inline bool JavaScriptFrame::is_at_function() const { |
+ Object* result = function_slot_object(); |
+ // Verify that frame points at correct JS function object. |
+ // We are verifying that function object address and |
+ // the underlying map object address are valid, and that |
+ // function is really a function. |
+ return Heap::Contains(reinterpret_cast<Address>(result)) && |
+ result->IsHeapObject() && |
+ Heap::Contains(HeapObject::cast(result)->map()) && |
+ result->IsJSFunction(); |
+} |
+ |
+ |
inline Object* JavaScriptFrame::function() const { |
Object* result = function_slot_object(); |
ASSERT(result->IsJSFunction()); |