Index: src/frames-inl.h |
diff --git a/src/frames-inl.h b/src/frames-inl.h |
index c7d71ec1738f4257a73921b218e21a8faa350580..4b8a4beb8247651056d2dce3a5b4014734eda89f 100644 |
--- a/src/frames-inl.h |
+++ b/src/frames-inl.h |
@@ -77,6 +77,21 @@ inline StackHandler* StackHandler::FromAddress(Address address) { |
} |
+inline bool StackHandler::is_entry() const { |
+ return state() == ENTRY; |
+} |
+ |
+ |
+inline bool StackHandler::is_try_catch() const { |
+ return state() == TRY_CATCH; |
+} |
+ |
+ |
+inline bool StackHandler::is_try_finally() const { |
+ return state() == TRY_FINALLY; |
+} |
+ |
+ |
inline StackHandler::State StackHandler::state() const { |
const int offset = StackHandlerConstants::kStateOffset; |
return static_cast<State>(Memory::int_at(address() + offset)); |
@@ -105,11 +120,36 @@ inline StackHandler* StackFrame::top_handler() const { |
} |
+inline Code* StackFrame::LookupCode() const { |
+ return GetContainingCode(isolate(), pc()); |
+} |
+ |
+ |
inline Code* StackFrame::GetContainingCode(Isolate* isolate, Address pc) { |
return isolate->inner_pointer_to_code_cache()->GetCacheEntry(pc)->code; |
} |
+inline EntryFrame::EntryFrame(StackFrameIterator* iterator) |
+ : StackFrame(iterator) { |
+} |
+ |
+ |
+inline EntryConstructFrame::EntryConstructFrame(StackFrameIterator* iterator) |
+ : EntryFrame(iterator) { |
+} |
+ |
+ |
+inline ExitFrame::ExitFrame(StackFrameIterator* iterator) |
+ : StackFrame(iterator) { |
+} |
+ |
+ |
+inline StandardFrame::StandardFrame(StackFrameIterator* iterator) |
+ : StackFrame(iterator) { |
+} |
+ |
+ |
inline Object* StandardFrame::GetExpression(int index) const { |
return Memory::Object_at(GetExpressionAddress(index)); |
} |
@@ -155,6 +195,11 @@ inline bool StandardFrame::IsConstructFrame(Address fp) { |
} |
+inline JavaScriptFrame::JavaScriptFrame(StackFrameIterator* iterator) |
+ : StandardFrame(iterator) { |
+} |
+ |
+ |
Address JavaScriptFrame::GetParameterSlot(int index) const { |
int param_count = ComputeParametersCount(); |
ASSERT(-1 <= index && index < param_count); |
@@ -190,6 +235,26 @@ inline Object* JavaScriptFrame::function() const { |
} |
+inline OptimizedFrame::OptimizedFrame(StackFrameIterator* iterator) |
+ : JavaScriptFrame(iterator) { |
+} |
+ |
+ |
+inline ArgumentsAdaptorFrame::ArgumentsAdaptorFrame( |
+ StackFrameIterator* iterator) : JavaScriptFrame(iterator) { |
+} |
+ |
+ |
+inline InternalFrame::InternalFrame(StackFrameIterator* iterator) |
+ : StandardFrame(iterator) { |
+} |
+ |
+ |
+inline ConstructFrame::ConstructFrame(StackFrameIterator* iterator) |
+ : InternalFrame(iterator) { |
+} |
+ |
+ |
template<typename Iterator> |
inline JavaScriptFrameIteratorTemp<Iterator>::JavaScriptFrameIteratorTemp( |
Isolate* isolate) |