v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::JavaScriptFrame Class Referenceabstract

#include <frames.h>

Inheritance diagram for v8::internal::JavaScriptFrame:
Collaboration diagram for v8::internal::JavaScriptFrame:

Public Member Functions

Type type () const override=0
 
Tagged< JSFunctionfunction () const override
 
Tagged< Objectunchecked_function () const
 
Tagged< Scriptscript () const
 
Tagged< Objectcontext () const override
 
int GetActualArgumentCount () const override
 
void set_receiver (Tagged< Object > value)
 
void SetParameterValue (int index, Tagged< Object > value) const
 
bool IsConstructor () const override
 
void Iterate (RootVisitor *v) const override
 
void Print (StringStream *accumulator, PrintMode mode, int index) const override
 
virtual void GetFunctions (std::vector< Tagged< SharedFunctionInfo > > *functions) const
 
void GetFunctions (std::vector< Handle< SharedFunctionInfo > > *functions) const
 
std::tuple< Tagged< AbstractCode >, int > GetActiveCodeAndOffset () const
 
bool is_unoptimized () const
 
bool is_optimized () const
 
bool is_turbofan () const
 
- Public Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
virtual Tagged< Objectreceiver () const
 
virtual Tagged< ObjectGetParameter (int index) const
 
virtual int ComputeParametersCount () const
 
DirectHandle< FixedArrayGetParameters () const
 
Tagged< HeapObjectunchecked_code () const override
 
virtual int LookupExceptionHandlerInTable (int *data, HandlerTable::CatchPrediction *prediction)
 
FrameSummaries Summarize () const override
 
- Public Member Functions inherited from v8::internal::CommonFrame
virtual int position () const
 
Tagged< ObjectGetExpression (int index) const
 
void SetExpression (int index, Tagged< Object > value)
 
int ComputeExpressionsCount () const
 
- Public Member Functions inherited from v8::internal::StackFrame
 StackFrame (const StackFrame &original) V8_NOEXCEPT
 
bool is_entry () const
 
bool is_construct_entry () const
 
bool is_exit () const
 
bool is_optimized_js () const
 
bool is_unoptimized_js () const
 
bool is_interpreted () const
 
bool is_baseline () const
 
bool is_maglev () const
 
bool is_turbofan_js () const
 
bool is_builtin () const
 
bool is_internal () const
 
bool is_builtin_continuation () const
 
bool is_javascript_builtin_continuation () const
 
bool is_javascript_builtin_with_catch_continuation () const
 
bool is_construct () const
 
bool is_fast_construct () const
 
bool is_builtin_exit () const
 
bool is_api_accessor_exit () const
 
bool is_api_callback_exit () const
 
bool is_irregexp () const
 
bool is_javascript () const
 
Address sp () const
 
Address fp () const
 
Address callee_fp () const
 
Address callee_pc () const
 
Address caller_sp () const
 
Address pc () const
 
bool is_profiler_entry_frame () const
 
bool is_stack_exit_frame () const
 
Address unauthenticated_pc () const
 
Address maybe_unauthenticated_pc () const
 
bool InFastCCall () const
 
Address constant_pool () const
 
void set_constant_pool (Address constant_pool)
 
Addresspc_address () const
 
Addressconstant_pool_address () const
 
StackFrameId id () const
 
StackHandlertop_handler () const
 
V8_EXPORT_PRIVATE Tagged< CodeLookupCode () const
 
V8_EXPORT_PRIVATE std::pair< Tagged< Code >, int > LookupCodeAndOffset () const
 
V8_EXPORT_PRIVATE Tagged< GcSafeCodeGcSafeLookupCode () const
 
V8_EXPORT_PRIVATE std::pair< Tagged< GcSafeCode >, int > GcSafeLookupCodeAndOffset () const
 
void IteratePc (RootVisitor *v, Address *constant_pool_address, Tagged< GcSafeCode > holder) const
 
Isolateisolate () const
 
void operator= (const StackFrame &original)=delete
 

Static Public Member Functions

static Register fp_register ()
 
static Register context_register ()
 
static Register constant_pool_pointer_register ()
 
static JavaScriptFramecast (StackFrame *frame)
 
static void PrintFunctionAndOffset (Isolate *isolate, Tagged< JSFunction > function, Tagged< AbstractCode > code, int code_offset, FILE *file, bool print_line_number)
 
static void PrintTop (Isolate *isolate, FILE *file, bool print_args, bool print_line_number)
 
static void CollectFunctionAndOffsetForICStats (Isolate *isolate, Tagged< JSFunction > function, Tagged< AbstractCode > code, int code_offset)
 
- Static Public Member Functions inherited from v8::internal::CommonFrame
static CommonFramecast (StackFrame *frame)
 
- Static Public Member Functions inherited from v8::internal::StackFrame
static constexpr int32_t TypeToMarker (Type type)
 
static constexpr Type MarkerToType (intptr_t marker)
 
static constexpr bool IsTypeMarker (uintptr_t function_or_marker)
 
static bool IsJavaScript (Type t)
 
static Address unauthenticated_pc (Address *pc_address)
 
static Address maybe_unauthenticated_pc (Address *pc_address)
 
static void SetReturnAddressLocationResolver (ReturnAddressLocationResolver resolver)
 
static Address ReadPC (Address *pc_address)
 
static AddressResolveReturnAddressLocation (Address *pc_address)
 

Protected Member Functions

 JavaScriptFrame (StackFrameIteratorBase *iterator)
 
Address GetCallerStackPointer () const override
 
virtual void PrintFrameKind (StringStream *accumulator) const
 
- Protected Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
 CommonFrameWithJSLinkage (StackFrameIteratorBase *iterator)
 
Address GetParameterSlot (int index) const
 
- Protected Member Functions inherited from v8::internal::CommonFrame
 CommonFrame (StackFrameIteratorBase *iterator)
 
bool HasTaggedOutgoingParams (Tagged< GcSafeCode > code_lookup) const
 
void ComputeCallerState (State *state) const override
 
Address caller_fp () const
 
Address caller_pc () const
 
void IterateExpressions (RootVisitor *v) const
 
void IterateTurbofanJSOptimizedFrame (RootVisitor *v) const
 
virtual Address GetExpressionAddress (int n) const
 
- Protected Member Functions inherited from v8::internal::StackFrame
 StackFrame (StackFrameIteratorBase *iterator)
 

Private Member Functions

Tagged< Objectfunction_slot_object () const
 

Friends

class StackFrameIteratorBase
 

Additional Inherited Members

- Public Types inherited from v8::internal::StackFrame
enum  Type { NO_FRAME_TYPE = 0 , STACK_FRAME_TYPE_LIST =(DECLARE_TYPE) NUMBER_OF_TYPES , MANUAL }
 
enum  JsFrameMarker { INNER_JSENTRY_FRAME = (0 << kSmiTagSize) | kSmiTag , OUTERMOST_JSENTRY_FRAME = (1 << kSmiTagSize) | kSmiTag }
 
enum  PrintMode { OVERVIEW , DETAILS }
 
- Static Protected Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
static bool IsConstructFrame (Address fp)
 
- Protected Attributes inherited from v8::internal::StackFrame
const StackFrameIteratorBase *const iterator_
 

Detailed Description

Definition at line 761 of file frames.h.

Constructor & Destructor Documentation

◆ JavaScriptFrame()

v8::internal::JavaScriptFrame::JavaScriptFrame ( StackFrameIteratorBase * iterator)
inlineexplicitprotected

Definition at line 266 of file frames-inl.h.

Member Function Documentation

◆ cast()

static JavaScriptFrame * v8::internal::JavaScriptFrame::cast ( StackFrame * frame)
inlinestatic

Definition at line 805 of file frames.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CollectFunctionAndOffsetForICStats()

void v8::internal::JavaScriptFrame::CollectFunctionAndOffsetForICStats ( Isolate * isolate,
Tagged< JSFunction > function,
Tagged< AbstractCode > code,
int code_offset )
static

Definition at line 2597 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constant_pool_pointer_register()

Register v8::internal::JavaScriptFrame::constant_pool_pointer_register ( )
static

Definition at line 15 of file frame-constants-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ context()

Tagged< Object > v8::internal::JavaScriptFrame::context ( ) const
overridevirtual

Reimplemented from v8::internal::CommonFrame.

Definition at line 2510 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ context_register()

Register v8::internal::JavaScriptFrame::context_register ( )
static

Definition at line 14 of file frame-constants-riscv.cc.

Here is the caller graph for this function:

◆ fp_register()

Register v8::internal::JavaScriptFrame::fp_register ( )
static

Definition at line 13 of file frame-constants-riscv.cc.

Here is the caller graph for this function:

◆ function()

Tagged< JSFunction > v8::internal::JavaScriptFrame::function ( ) const
overridevirtual

Implements v8::internal::CommonFrameWithJSLinkage.

Definition at line 2492 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ function_slot_object()

Tagged< Object > v8::internal::JavaScriptFrame::function_slot_object ( ) const
inlineprivate

Definition at line 291 of file frames-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetActiveCodeAndOffset()

std::tuple< Tagged< AbstractCode >, int > v8::internal::JavaScriptFrame::GetActiveCodeAndOffset ( ) const

Definition at line 2453 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetActualArgumentCount()

int v8::internal::JavaScriptFrame::GetActualArgumentCount ( ) const
overridevirtual

Reimplemented from v8::internal::CommonFrameWithJSLinkage.

Definition at line 2632 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCallerStackPointer()

Address v8::internal::JavaScriptFrame::GetCallerStackPointer ( ) const
overrideprotectedvirtual

Reimplemented from v8::internal::CommonFrame.

Definition at line 2432 of file frames.cc.

Here is the call graph for this function:

◆ GetFunctions() [1/2]

void v8::internal::JavaScriptFrame::GetFunctions ( std::vector< Handle< SharedFunctionInfo > > * functions) const

Definition at line 2442 of file frames.cc.

Here is the call graph for this function:

◆ GetFunctions() [2/2]

void v8::internal::JavaScriptFrame::GetFunctions ( std::vector< Tagged< SharedFunctionInfo > > * functions) const
virtual

Reimplemented in v8::internal::OptimizedJSFrame.

Definition at line 2436 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_optimized()

bool v8::internal::JavaScriptFrame::is_optimized ( ) const
inline

Definition at line 802 of file frames.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_turbofan()

bool v8::internal::JavaScriptFrame::is_turbofan ( ) const
inline

Definition at line 803 of file frames.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_unoptimized()

bool v8::internal::JavaScriptFrame::is_unoptimized ( ) const
inline

Definition at line 801 of file frames.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsConstructor()

bool v8::internal::JavaScriptFrame::IsConstructor ( ) const
overridevirtual

Reimplemented from v8::internal::CommonFrameWithJSLinkage.

Definition at line 2414 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Iterate()

void v8::internal::JavaScriptFrame::Iterate ( RootVisitor * v) const
overridevirtual

Implements v8::internal::StackFrame.

Reimplemented in v8::internal::MaglevFrame, and v8::internal::TurbofanJSFrame.

Definition at line 4101 of file frames.cc.

Here is the call graph for this function:

◆ Print()

void v8::internal::JavaScriptFrame::Print ( StringStream * accumulator,
PrintMode mode,
int index ) const
overridevirtual

Reimplemented from v8::internal::StackFrame.

Definition at line 3974 of file frames.cc.

Here is the call graph for this function:

◆ PrintFrameKind()

virtual void v8::internal::JavaScriptFrame::PrintFrameKind ( StringStream * accumulator) const
inlineprotectedvirtual

Definition at line 828 of file frames.h.

◆ PrintFunctionAndOffset()

void v8::internal::JavaScriptFrame::PrintFunctionAndOffset ( Isolate * isolate,
Tagged< JSFunction > function,
Tagged< AbstractCode > code,
int code_offset,
FILE * file,
bool print_line_number )
static

Definition at line 2532 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PrintTop()

void v8::internal::JavaScriptFrame::PrintTop ( Isolate * isolate,
FILE * file,
bool print_args,
bool print_line_number )
static

Definition at line 2562 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ script()

Tagged< Script > v8::internal::JavaScriptFrame::script ( ) const

Definition at line 2517 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_receiver()

void v8::internal::JavaScriptFrame::set_receiver ( Tagged< Object > value)
inline

Definition at line 281 of file frames-inl.h.

Here is the call graph for this function:

◆ SetParameterValue()

void v8::internal::JavaScriptFrame::SetParameterValue ( int index,
Tagged< Object > value ) const

Definition at line 2410 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ type()

Type v8::internal::JavaScriptFrame::type ( ) const
overridepure virtual

◆ unchecked_function()

Tagged< Object > v8::internal::JavaScriptFrame::unchecked_function ( ) const

Definition at line 2496 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ StackFrameIteratorBase

friend class StackFrameIteratorBase
friend

Definition at line 833 of file frames.h.


The documentation for this class was generated from the following files: