5#ifndef V8_IC_CALL_OPTIMIZATION_H_
6#define V8_IC_CALL_OPTIMIZATION_H_
19 template <
class IsolateT>
59 template <
class IsolateT>
68 template <
class IsolateT>
70 template <
class IsolateT>
76 template <
class IsolateT>
bool is_constant_call() const
bool accept_any_receiver_
bool accept_any_receiver() const
Handle< FunctionTemplateInfo > api_call_info_
bool is_simple_api_call() const
std::optional< Tagged< NativeContext > > GetAccessorContext(Tagged< Map > holder_map) const
void Initialize(IsolateT *isolate, Handle< JSFunction > function)
Handle< FunctionTemplateInfo > expected_receiver_type_
DirectHandle< JSFunction > constant_function() const
bool IsCrossContextLazyAccessorPair(Tagged< NativeContext > native_context, Tagged< Map > holder_map) const
CallOptimization(IsolateT *isolate, Handle< Object > function)
bool IsCompatibleReceiverMap(DirectHandle< JSObject > api_holder, Handle< JSObject > holder, HolderLookup) const
Handle< JSFunction > constant_function_
DirectHandle< FunctionTemplateInfo > api_call_info() const
Handle< JSObject > LookupHolderOfExpectedType(IsolateT *isolate, DirectHandle< Map > receiver_map, HolderLookup *holder_lookup) const
DirectHandle< FunctionTemplateInfo > expected_receiver_type() const
void AnalyzePossibleApiFunction(IsolateT *isolate, DirectHandle< JSFunction > function)
bool requires_signature_check() const
!IsContextMap !IsContextMap native_context
#define DCHECK(condition)