#include "src/builtins/accessors.h"
#include "src/api/api-inl.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/execution/execution.h"
#include "src/execution/frames-inl.h"
#include "src/execution/isolate-inl.h"
#include "src/execution/messages.h"
#include "src/heap/factory.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/api-callbacks.h"
#include "src/objects/contexts.h"
#include "src/objects/field-index-inl.h"
#include "src/objects/js-array-inl.h"
#include "src/objects/js-shared-array-inl.h"
#include "src/objects/module-inl.h"
#include "src/objects/property-details.h"
#include "src/objects/prototype.h"
namespace v8 {
namespace internal {
Handle<AccessorInfo> Accessors::MakeAccessor(
Isolate* isolate, Handle<Name> name, AccessorNameGetterCallback getter,
AccessorNameBooleanSetterCallback setter) { … }
static V8_INLINE bool CheckForName(Isolate* isolate, Handle<Name> name,
Handle<String> property_name, int offset,
FieldIndex::Encoding encoding,
FieldIndex* index) { … }
bool Accessors::IsJSObjectFieldAccessor(Isolate* isolate, DirectHandle<Map> map,
Handle<Name> name, FieldIndex* index) { … }
V8_WARN_UNUSED_RESULT MaybeHandle<Object>
Accessors::ReplaceAccessorWithDataProperty(Isolate* isolate,
Handle<Object> receiver,
Handle<JSObject> holder,
Handle<Name> name,
Handle<Object> value) { … }
START_ALLOW_USE_DEPRECATED(…)
void Accessors::ReconfigureToDataProperty(
v8::Local<v8::Name> key, v8::Local<v8::Value> val,
const v8::PropertyCallbackInfo<v8::Boolean>& info) { … }
void Accessors::ArgumentsIteratorGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeArgumentsIteratorInfo(Isolate* isolate) { … }
void Accessors::ArrayLengthGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
void Accessors::ArrayLengthSetter(
v8::Local<v8::Name> name, v8::Local<v8::Value> val,
const v8::PropertyCallbackInfo<v8::Boolean>& info) { … }
Handle<AccessorInfo> Accessors::MakeArrayLengthInfo(Isolate* isolate) { … }
void Accessors::ModuleNamespaceEntryGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
void Accessors::ModuleNamespaceEntrySetter(
v8::Local<v8::Name> name, v8::Local<v8::Value> val,
const v8::PropertyCallbackInfo<v8::Boolean>& info) { … }
Handle<AccessorInfo> Accessors::MakeModuleNamespaceEntryInfo(
Isolate* isolate, Handle<String> name) { … }
void Accessors::StringLengthGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeStringLengthInfo(Isolate* isolate) { … }
static Handle<Object> GetFunctionPrototype(Isolate* isolate,
DirectHandle<JSFunction> function) { … }
void Accessors::FunctionPrototypeGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
void Accessors::FunctionPrototypeSetter(
v8::Local<v8::Name> name, v8::Local<v8::Value> val,
const v8::PropertyCallbackInfo<v8::Boolean>& info) { … }
Handle<AccessorInfo> Accessors::MakeFunctionPrototypeInfo(Isolate* isolate) { … }
void Accessors::FunctionLengthGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeFunctionLengthInfo(Isolate* isolate) { … }
void Accessors::FunctionNameGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeFunctionNameInfo(Isolate* isolate) { … }
namespace {
Handle<JSObject> ArgumentsFromDeoptInfo(JavaScriptFrame* frame,
int inlined_frame_index) { … }
int FindFunctionInFrame(JavaScriptFrame* frame,
DirectHandle<JSFunction> function) { … }
Handle<JSObject> GetFrameArguments(Isolate* isolate,
JavaScriptStackFrameIterator* it,
int function_index) { … }
}
Handle<JSObject> Accessors::FunctionGetArguments(JavaScriptFrame* frame,
int inlined_jsframe_index) { … }
void Accessors::FunctionArgumentsGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeFunctionArgumentsInfo(Isolate* isolate) { … }
static inline bool AllowAccessToFunction(Tagged<Context> current_context,
Tagged<JSFunction> function) { … }
class FrameFunctionIterator { … };
MaybeHandle<JSFunction> FindCaller(Isolate* isolate,
Handle<JSFunction> function) { … }
void Accessors::FunctionCallerGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeFunctionCallerInfo(Isolate* isolate) { … }
void Accessors::BoundFunctionLengthGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeBoundFunctionLengthInfo(Isolate* isolate) { … }
void Accessors::BoundFunctionNameGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeBoundFunctionNameInfo(Isolate* isolate) { … }
void Accessors::WrappedFunctionLengthGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeWrappedFunctionLengthInfo(
Isolate* isolate) { … }
void Accessors::ValueUnavailableGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeValueUnavailableInfo(Isolate* isolate) { … }
void Accessors::WrappedFunctionNameGetter(
v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) { … }
Handle<AccessorInfo> Accessors::MakeWrappedFunctionNameInfo(Isolate* isolate) { … }
END_ALLOW_USE_DEPRECATED(…)
void Accessors::ErrorStackGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void Accessors::ErrorStackSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
}
}