#ifndef V8_EXECUTION_FRAMES_INL_H_
#define V8_EXECUTION_FRAMES_INL_H_
#include <optional>
#include "src/base/memory.h"
#include "src/execution/frame-constants.h"
#include "src/execution/frames.h"
#include "src/execution/isolate.h"
#include "src/execution/pointer-authentication.h"
#include "src/objects/objects-inl.h"
namespace v8 {
namespace internal {
class InnerPointerToCodeCache final { … };
inline Address StackHandler::address() const { … }
inline StackHandler* StackHandler::next() const { … }
inline Address StackHandler::next_address() const { … }
inline StackHandler* StackHandler::FromAddress(Address address) { … }
inline StackFrame::StackFrame(StackFrameIteratorBase* iterator)
: … { … }
inline StackHandler* StackFrame::top_handler() const { … }
inline Address StackFrame::pc() const { … }
inline Address StackFrame::unauthenticated_pc() const { … }
inline Address StackFrame::unauthenticated_pc(Address* pc_address) { … }
inline Address StackFrame::maybe_unauthenticated_pc() const { … }
inline Address StackFrame::ReadPC(Address* pc_address) { … }
inline Address* StackFrame::ResolveReturnAddressLocation(Address* pc_address) { … }
inline TypedFrame::TypedFrame(StackFrameIteratorBase* iterator)
: … { … }
inline CommonFrameWithJSLinkage::CommonFrameWithJSLinkage(
StackFrameIteratorBase* iterator)
: … { … }
inline TypedFrameWithJSLinkage::TypedFrameWithJSLinkage(
StackFrameIteratorBase* iterator)
: … { … }
inline NativeFrame::NativeFrame(StackFrameIteratorBase* iterator)
: … { … }
inline EntryFrame::EntryFrame(StackFrameIteratorBase* iterator)
: … { … }
inline ConstructEntryFrame::ConstructEntryFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline ExitFrame::ExitFrame(StackFrameIteratorBase* iterator)
: … { … }
inline BuiltinExitFrame::BuiltinExitFrame(StackFrameIteratorBase* iterator)
: … { … }
inline Tagged<Object> BuiltinExitFrame::receiver_slot_object() const { … }
inline Tagged<Object> BuiltinExitFrame::argc_slot_object() const { … }
inline Tagged<Object> BuiltinExitFrame::target_slot_object() const { … }
inline Tagged<Object> BuiltinExitFrame::new_target_slot_object() const { … }
inline ApiCallbackExitFrame::ApiCallbackExitFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline Tagged<Object> ApiCallbackExitFrame::context() const { … }
inline FullObjectSlot ApiCallbackExitFrame::target_slot() const { … }
Tagged<Object> ApiCallbackExitFrame::receiver() const { … }
Tagged<HeapObject> ApiCallbackExitFrame::target() const { … }
void ApiCallbackExitFrame::set_target(Tagged<HeapObject> function) const { … }
int ApiCallbackExitFrame::ComputeParametersCount() const { … }
Tagged<Object> ApiCallbackExitFrame::GetParameter(int i) const { … }
bool ApiCallbackExitFrame::IsConstructor() const { … }
inline ApiAccessorExitFrame::ApiAccessorExitFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline FullObjectSlot ApiAccessorExitFrame::property_name_slot() const { … }
inline FullObjectSlot ApiAccessorExitFrame::receiver_slot() const { … }
inline FullObjectSlot ApiAccessorExitFrame::holder_slot() const { … }
Tagged<Name> ApiAccessorExitFrame::property_name() const { … }
Tagged<Object> ApiAccessorExitFrame::receiver() const { … }
Tagged<Object> ApiAccessorExitFrame::holder() const { … }
inline CommonFrame::CommonFrame(StackFrameIteratorBase* iterator)
: … { … }
inline Tagged<Object> CommonFrame::GetExpression(int index) const { … }
inline void CommonFrame::SetExpression(int index, Tagged<Object> value) { … }
inline Address CommonFrame::caller_fp() const { … }
inline Address CommonFrame::caller_pc() const { … }
inline bool CommonFrameWithJSLinkage::IsConstructFrame(Address fp) { … }
inline JavaScriptFrame::JavaScriptFrame(StackFrameIteratorBase* iterator)
: … { … }
Address CommonFrameWithJSLinkage::GetParameterSlot(int index) const { … }
inline int CommonFrameWithJSLinkage::GetActualArgumentCount() const { … }
inline void JavaScriptFrame::set_receiver(Tagged<Object> value) { … }
inline void UnoptimizedFrame::SetFeedbackVector(
Tagged<FeedbackVector> feedback_vector) { … }
inline Tagged<Object> JavaScriptFrame::function_slot_object() const { … }
inline TurbofanStubWithContextFrame::TurbofanStubWithContextFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline StubFrame::StubFrame(StackFrameIteratorBase* iterator)
: … { … }
inline OptimizedFrame::OptimizedFrame(StackFrameIteratorBase* iterator)
: … { … }
inline UnoptimizedFrame::UnoptimizedFrame(StackFrameIteratorBase* iterator)
: … { … }
inline InterpretedFrame::InterpretedFrame(StackFrameIteratorBase* iterator)
: … { … }
inline BaselineFrame::BaselineFrame(StackFrameIteratorBase* iterator)
: … { … }
inline MaglevFrame::MaglevFrame(StackFrameIteratorBase* iterator)
: … { … }
inline TurbofanFrame::TurbofanFrame(StackFrameIteratorBase* iterator)
: … { … }
inline BuiltinFrame::BuiltinFrame(StackFrameIteratorBase* iterator)
: … { … }
#if V8_ENABLE_WEBASSEMBLY
inline WasmFrame::WasmFrame(StackFrameIteratorBase* iterator)
: … { … }
inline WasmSegmentStartFrame::WasmSegmentStartFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline WasmExitFrame::WasmExitFrame(StackFrameIteratorBase* iterator)
: … { … }
#if V8_ENABLE_DRUMBRAKE
inline WasmInterpreterEntryFrame::WasmInterpreterEntryFrame(
StackFrameIteratorBase* iterator)
: WasmFrame(iterator) {}
#endif
inline WasmDebugBreakFrame::WasmDebugBreakFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline WasmToJsFrame::WasmToJsFrame(StackFrameIteratorBase* iterator)
: … { … }
inline WasmToJsFunctionFrame::WasmToJsFunctionFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline JsToWasmFrame::JsToWasmFrame(StackFrameIteratorBase* iterator)
: … { … }
inline StackSwitchFrame::StackSwitchFrame(StackFrameIteratorBase* iterator)
: … { … }
inline CWasmEntryFrame::CWasmEntryFrame(StackFrameIteratorBase* iterator)
: … { … }
inline WasmLiftoffSetupFrame::WasmLiftoffSetupFrame(
StackFrameIteratorBase* iterator)
: … { … }
#endif
inline InternalFrame::InternalFrame(StackFrameIteratorBase* iterator)
: … { … }
inline ConstructFrame::ConstructFrame(StackFrameIteratorBase* iterator)
: … { … }
inline FastConstructFrame::FastConstructFrame(StackFrameIteratorBase* iterator)
: … { … }
inline BuiltinContinuationFrame::BuiltinContinuationFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline JavaScriptBuiltinContinuationFrame::JavaScriptBuiltinContinuationFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline JavaScriptBuiltinContinuationWithCatchFrame::
JavaScriptBuiltinContinuationWithCatchFrame(
StackFrameIteratorBase* iterator)
: … { … }
inline IrregexpFrame::IrregexpFrame(StackFrameIteratorBase* iterator)
: … { … }
inline CommonFrame* DebuggableStackFrameIterator::frame() const { … }
inline CommonFrame* DebuggableStackFrameIterator::Reframe() { … }
bool DebuggableStackFrameIterator::is_javascript() const { … }
#if V8_ENABLE_WEBASSEMBLY
bool DebuggableStackFrameIterator::is_wasm() const { … }
#if V8_ENABLE_DRUMBRAKE
bool DebuggableStackFrameIterator::is_wasm_interpreter_entry() const {
return frame()->is_wasm_interpreter_entry();
}
#endif
#endif
JavaScriptFrame* DebuggableStackFrameIterator::javascript_frame() const { … }
inline bool StackFrameIteratorForProfiler::IsValidFrameType(
StackFrame::Type type) { … }
inline StackFrame* StackFrameIteratorForProfiler::frame() const { … }
}
}
#endif