chromium/v8/src/execution/frames-inl.h

// Copyright 2012 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#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 {}

// static
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  // V8_ENABLE_DRUMBRAKE

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  // V8_ENABLE_WEBASSEMBLY

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  // V8_ENABLE_DRUMBRAKE

#endif  // V8_ENABLE_WEBASSEMBLY

JavaScriptFrame* DebuggableStackFrameIterator::javascript_frame() const {}

// static
inline bool StackFrameIteratorForProfiler::IsValidFrameType(
    StackFrame::Type type) {}

inline StackFrame* StackFrameIteratorForProfiler::frame() const {}

}  // namespace internal
}  // namespace v8

#endif  // V8_EXECUTION_FRAMES_INL_H_