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

#include <call-optimization.h>

Collaboration diagram for v8::internal::CallOptimization:

Public Types

enum  HolderLookup { kHolderNotFound , kHolderIsReceiver , kHolderFound }
 

Public Member Functions

template<class IsolateT >
 CallOptimization (IsolateT *isolate, Handle< Object > function)
 
std::optional< Tagged< NativeContext > > GetAccessorContext (Tagged< Map > holder_map) const
 
bool IsCrossContextLazyAccessorPair (Tagged< NativeContext > native_context, Tagged< Map > holder_map) const
 
bool is_constant_call () const
 
bool accept_any_receiver () const
 
bool requires_signature_check () const
 
DirectHandle< JSFunctionconstant_function () const
 
bool is_simple_api_call () const
 
DirectHandle< FunctionTemplateInfoexpected_receiver_type () const
 
DirectHandle< FunctionTemplateInfoapi_call_info () const
 
template<class IsolateT >
Handle< JSObjectLookupHolderOfExpectedType (IsolateT *isolate, DirectHandle< Map > receiver_map, HolderLookup *holder_lookup) const
 
bool IsCompatibleReceiverMap (DirectHandle< JSObject > api_holder, Handle< JSObject > holder, HolderLookup) const
 

Private Member Functions

template<class IsolateT >
void Initialize (IsolateT *isolate, Handle< JSFunction > function)
 
template<class IsolateT >
void Initialize (IsolateT *isolate, Handle< FunctionTemplateInfo > function_template_info)
 
template<class IsolateT >
void AnalyzePossibleApiFunction (IsolateT *isolate, DirectHandle< JSFunction > function)
 

Private Attributes

Handle< JSFunctionconstant_function_
 
Handle< FunctionTemplateInfoexpected_receiver_type_
 
Handle< FunctionTemplateInfoapi_call_info_
 
bool is_simple_api_call_ = false
 
bool accept_any_receiver_ = false
 

Detailed Description

Definition at line 17 of file call-optimization.h.

Member Enumeration Documentation

◆ HolderLookup

Enumerator
kHolderNotFound 
kHolderIsReceiver 
kHolderFound 

Definition at line 57 of file call-optimization.h.

Constructor & Destructor Documentation

◆ CallOptimization()

template<class IsolateT >
template v8::internal::CallOptimization::CallOptimization ( IsolateT * isolate,
Handle< Object > function )

Definition at line 15 of file call-optimization.cc.

Here is the call graph for this function:

Member Function Documentation

◆ accept_any_receiver()

bool v8::internal::CallOptimization::accept_any_receiver ( ) const
inline

Definition at line 35 of file call-optimization.h.

Here is the caller graph for this function:

◆ AnalyzePossibleApiFunction()

template<class IsolateT >
void v8::internal::CallOptimization::AnalyzePossibleApiFunction ( IsolateT * isolate,
DirectHandle< JSFunction > function )
private

Definition at line 142 of file call-optimization.cc.

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

◆ api_call_info()

DirectHandle< FunctionTemplateInfo > v8::internal::CallOptimization::api_call_info ( ) const
inline

Definition at line 52 of file call-optimization.h.

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

◆ constant_function()

DirectHandle< JSFunction > v8::internal::CallOptimization::constant_function ( ) const
inline

Definition at line 40 of file call-optimization.h.

Here is the call graph for this function:

◆ expected_receiver_type()

DirectHandle< FunctionTemplateInfo > v8::internal::CallOptimization::expected_receiver_type ( ) const
inline

Definition at line 47 of file call-optimization.h.

Here is the call graph for this function:

◆ GetAccessorContext()

std::optional< Tagged< NativeContext > > v8::internal::CallOptimization::GetAccessorContext ( Tagged< Map > holder_map) const

Definition at line 29 of file call-optimization.cc.

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

◆ Initialize() [1/2]

template<class IsolateT >
void v8::internal::CallOptimization::Initialize ( IsolateT * isolate,
Handle< FunctionTemplateInfo > function_template_info )
private

Definition at line 118 of file call-optimization.cc.

Here is the call graph for this function:

◆ Initialize() [2/2]

template<class IsolateT >
void v8::internal::CallOptimization::Initialize ( IsolateT * isolate,
Handle< JSFunction > function )
private

Definition at line 133 of file call-optimization.cc.

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

◆ is_constant_call()

bool v8::internal::CallOptimization::is_constant_call ( ) const
inline

Definition at line 34 of file call-optimization.h.

Here is the caller graph for this function:

◆ is_simple_api_call()

bool v8::internal::CallOptimization::is_simple_api_call ( ) const
inline

Definition at line 45 of file call-optimization.h.

Here is the caller graph for this function:

◆ IsCompatibleReceiverMap()

bool v8::internal::CallOptimization::IsCompatibleReceiverMap ( DirectHandle< JSObject > api_holder,
Handle< JSObject > holder,
HolderLookup holder_lookup ) const

Definition at line 92 of file call-optimization.cc.

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

◆ IsCrossContextLazyAccessorPair()

bool v8::internal::CallOptimization::IsCrossContextLazyAccessorPair ( Tagged< NativeContext > native_context,
Tagged< Map > holder_map ) const

Definition at line 44 of file call-optimization.cc.

Here is the call graph for this function:

◆ LookupHolderOfExpectedType()

template<class IsolateT >
template Handle< JSObject > v8::internal::CallOptimization::LookupHolderOfExpectedType ( IsolateT * isolate,
DirectHandle< Map > receiver_map,
HolderLookup * holder_lookup ) const

Definition at line 58 of file call-optimization.cc.

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

◆ requires_signature_check()

bool v8::internal::CallOptimization::requires_signature_check ( ) const
inline

Definition at line 36 of file call-optimization.h.

Here is the caller graph for this function:

Member Data Documentation

◆ accept_any_receiver_

bool v8::internal::CallOptimization::accept_any_receiver_ = false
private

Definition at line 87 of file call-optimization.h.

◆ api_call_info_

Handle<FunctionTemplateInfo> v8::internal::CallOptimization::api_call_info_
private

Definition at line 82 of file call-optimization.h.

◆ constant_function_

Handle<JSFunction> v8::internal::CallOptimization::constant_function_
private

Definition at line 80 of file call-optimization.h.

◆ expected_receiver_type_

Handle<FunctionTemplateInfo> v8::internal::CallOptimization::expected_receiver_type_
private

Definition at line 81 of file call-optimization.h.

◆ is_simple_api_call_

bool v8::internal::CallOptimization::is_simple_api_call_ = false
private

Definition at line 86 of file call-optimization.h.


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