#include "src/api/api-natives.h"
#include "src/api/api-inl.h"
#include "src/common/globals.h"
#include "src/common/message-template.h"
#include "src/execution/isolate-inl.h"
#include "src/execution/protectors-inl.h"
#include "src/heap/heap-inl.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/api-callbacks.h"
#include "src/objects/lookup.h"
#include "src/objects/templates.h"
namespace v8 {
namespace internal {
namespace {
class V8_NODISCARD InvokeScope { … };
MaybeHandle<JSObject> InstantiateObject(Isolate* isolate,
Handle<ObjectTemplateInfo> data,
Handle<JSReceiver> new_target,
bool is_prototype);
MaybeHandle<JSFunction> InstantiateFunction(
Isolate* isolate, Handle<NativeContext> native_context,
Handle<FunctionTemplateInfo> data,
MaybeHandle<Name> maybe_name = MaybeHandle<Name>());
MaybeHandle<JSFunction> InstantiateFunction(
Isolate* isolate, Handle<FunctionTemplateInfo> data,
MaybeHandle<Name> maybe_name = MaybeHandle<Name>()) { … }
MaybeHandle<Object> Instantiate(
Isolate* isolate, Handle<Object> data,
MaybeHandle<Name> maybe_name = MaybeHandle<Name>()) { … }
MaybeHandle<Object> DefineAccessorProperty(Isolate* isolate,
Handle<JSObject> object,
Handle<Name> name,
Handle<Object> getter,
Handle<Object> setter,
PropertyAttributes attributes) { … }
MaybeHandle<Object> DefineDataProperty(Isolate* isolate,
Handle<JSObject> object,
Handle<Name> name,
Handle<Object> prop_data,
PropertyAttributes attributes) { … }
void DisableAccessChecks(Isolate* isolate, DirectHandle<JSObject> object) { … }
void EnableAccessChecks(Isolate* isolate, DirectHandle<JSObject> object) { … }
class V8_NODISCARD AccessCheckDisableScope { … };
Tagged<Object> GetIntrinsic(Isolate* isolate, v8::Intrinsic intrinsic) { … }
template <typename TemplateInfoT>
MaybeHandle<JSObject> ConfigureInstance(Isolate* isolate, Handle<JSObject> obj,
Handle<TemplateInfoT> data) { … }
bool IsSimpleInstantiation(Isolate* isolate, Tagged<ObjectTemplateInfo> info,
Tagged<JSReceiver> new_target) { … }
MaybeHandle<JSObject> InstantiateObject(Isolate* isolate,
Handle<ObjectTemplateInfo> info,
Handle<JSReceiver> new_target,
bool is_prototype) { … }
namespace {
MaybeHandle<Object> GetInstancePrototype(Isolate* isolate,
Handle<Object> function_template) { … }
}
MaybeHandle<JSFunction> InstantiateFunction(
Isolate* isolate, Handle<NativeContext> native_context,
Handle<FunctionTemplateInfo> data, MaybeHandle<Name> maybe_name) { … }
void AddPropertyToPropertyList(Isolate* isolate,
DirectHandle<TemplateInfo> templ, int length,
Handle<Object>* data) { … }
}
i::Handle<i::FunctionTemplateInfo>
ApiNatives::CreateAccessorFunctionTemplateInfo(
i::Isolate* i_isolate, FunctionCallback callback, int length,
SideEffectType side_effect_type) { … }
MaybeHandle<JSFunction> ApiNatives::InstantiateFunction(
Isolate* isolate, Handle<NativeContext> native_context,
Handle<FunctionTemplateInfo> data, MaybeHandle<Name> maybe_name) { … }
MaybeHandle<JSFunction> ApiNatives::InstantiateFunction(
Isolate* isolate, Handle<FunctionTemplateInfo> data,
MaybeHandle<Name> maybe_name) { … }
MaybeHandle<JSObject> ApiNatives::InstantiateObject(
Isolate* isolate, Handle<ObjectTemplateInfo> data,
Handle<JSReceiver> new_target) { … }
MaybeHandle<JSObject> ApiNatives::InstantiateRemoteObject(
DirectHandle<ObjectTemplateInfo> data) { … }
void ApiNatives::AddDataProperty(Isolate* isolate,
DirectHandle<TemplateInfo> info,
Handle<Name> name, Handle<Object> value,
PropertyAttributes attributes) { … }
void ApiNatives::AddDataProperty(Isolate* isolate,
DirectHandle<TemplateInfo> info,
Handle<Name> name, v8::Intrinsic intrinsic,
PropertyAttributes attributes) { … }
void ApiNatives::AddAccessorProperty(Isolate* isolate,
DirectHandle<TemplateInfo> info,
Handle<Name> name,
Handle<FunctionTemplateInfo> getter,
Handle<FunctionTemplateInfo> setter,
PropertyAttributes attributes) { … }
void ApiNatives::AddNativeDataProperty(Isolate* isolate,
DirectHandle<TemplateInfo> info,
DirectHandle<AccessorInfo> property) { … }
Handle<JSFunction> ApiNatives::CreateApiFunction(
Isolate* isolate, Handle<NativeContext> native_context,
DirectHandle<FunctionTemplateInfo> obj, Handle<Object> prototype,
InstanceType type, MaybeHandle<Name> maybe_name) { … }
}
}