#include "src/ic/call-optimization.h"
#include <optional>
#include "src/objects/objects-inl.h"
namespace v8 {
namespace internal {
template <class IsolateT>
CallOptimization::CallOptimization(IsolateT* isolate, Handle<Object> function) { … }
template CallOptimization::CallOptimization(Isolate* isolate,
Handle<Object> function);
template CallOptimization::CallOptimization(LocalIsolate* isolate,
Handle<Object> function);
std::optional<Tagged<NativeContext>> CallOptimization::GetAccessorContext(
Tagged<Map> holder_map) const { … }
bool CallOptimization::IsCrossContextLazyAccessorPair(
Tagged<NativeContext> native_context, Tagged<Map> holder_map) const { … }
template <class IsolateT>
Handle<JSObject> CallOptimization::LookupHolderOfExpectedType(
IsolateT* isolate, Handle<Map> object_map,
HolderLookup* holder_lookup) const { … }
template Handle<JSObject> CallOptimization::LookupHolderOfExpectedType(
Isolate* isolate, Handle<Map> object_map,
HolderLookup* holder_lookup) const;
template Handle<JSObject> CallOptimization::LookupHolderOfExpectedType(
LocalIsolate* isolate, Handle<Map> object_map,
HolderLookup* holder_lookup) const;
bool CallOptimization::IsCompatibleReceiverMap(
Handle<JSObject> api_holder, Handle<JSObject> holder,
HolderLookup holder_lookup) const { … }
template <class IsolateT>
void CallOptimization::Initialize(
IsolateT* isolate, Handle<FunctionTemplateInfo> function_template_info) { … }
template <class IsolateT>
void CallOptimization::Initialize(IsolateT* isolate,
Handle<JSFunction> function) { … }
template <class IsolateT>
void CallOptimization::AnalyzePossibleApiFunction(
IsolateT* isolate, DirectHandle<JSFunction> function) { … }
}
}