5#ifndef V8_BUILTINS_ACCESSORS_H_
6#define V8_BUILTINS_ACCESSORS_H_
25#define ACCESSOR_INFO_LIST_GENERATOR(V, _) \
26 V(_, arguments_iterator, ArgumentsIterator, kHasNoSideEffect, \
27 kHasSideEffectToReceiver) \
28 V(_, array_length, ArrayLength, kHasNoSideEffect, kHasSideEffectToReceiver) \
29 V(_, bound_function_length, BoundFunctionLength, kHasNoSideEffect, \
30 kHasSideEffectToReceiver) \
31 V(_, bound_function_name, BoundFunctionName, kHasNoSideEffect, \
32 kHasSideEffectToReceiver) \
33 V(_, function_arguments, FunctionArguments, kHasNoSideEffect, \
34 kHasSideEffectToReceiver) \
35 V(_, function_caller, FunctionCaller, kHasNoSideEffect, \
36 kHasSideEffectToReceiver) \
37 V(_, function_name, FunctionName, kHasNoSideEffect, \
38 kHasSideEffectToReceiver) \
39 V(_, function_length, FunctionLength, kHasNoSideEffect, \
40 kHasSideEffectToReceiver) \
41 V(_, function_prototype, FunctionPrototype, kHasNoSideEffect, \
42 kHasSideEffectToReceiver) \
43 V(_, string_length, StringLength, kHasNoSideEffect, \
44 kHasSideEffectToReceiver) \
45 V(_, value_unavailable, ValueUnavailable, kHasNoSideEffect, \
46 kHasSideEffectToReceiver) \
47 V(_, wrapped_function_length, WrappedFunctionLength, kHasNoSideEffect, \
48 kHasSideEffectToReceiver) \
49 V(_, wrapped_function_name, WrappedFunctionName, kHasNoSideEffect, \
50 kHasSideEffectToReceiver)
52#define ACCESSOR_GETTER_LIST(V) V(ModuleNamespaceEntryGetter)
54#define ACCESSOR_SETTER_LIST(V) \
55 V(ArrayLengthSetter) \
56 V(FunctionPrototypeSetter) \
57 V(ModuleNamespaceEntrySetter) \
58 V(ReconfigureToDataProperty)
60#define ACCESSOR_CALLBACK_LIST_GENERATOR(V, _) \
61 V(_, ErrorStackGetter, kHasSideEffect) \
62 V(_, ErrorStackSetter, kHasSideEffectToReceiver)
68#define ACCESSOR_GETTER_DECLARATION(_, accessor_name, AccessorName, ...) \
69 static void AccessorName##Getter( \
70 v8::Local<v8::Name> name, \
71 const v8::PropertyCallbackInfo<v8::Value>& info);
73#undef ACCESSOR_GETTER_DECLARATION
75#define ACCESSOR_GETTER_DECLARATION(AccessorName) \
76 static void AccessorName(v8::Local<v8::Name> name, \
77 const v8::PropertyCallbackInfo<v8::Value>& info);
79#undef ACCESSOR_GETTER_DECLARATION
81#define ACCESSOR_SETTER_DECLARATION(AccessorName) \
82 static void AccessorName(v8::Local<v8::Name> name, \
83 v8::Local<v8::Value> value, \
84 const v8::PropertyCallbackInfo<v8::Boolean>& info);
86#undef ACCESSOR_SETTER_DECLARATION
88#define ACCESSOR_CALLBACK_DECLARATION(_, AccessorName, ...) \
89 static void AccessorName(const v8::FunctionCallbackInfo<v8::Value>& info);
92#undef ACCESSOR_CALLBACK_DECLARATION
94#define COUNT_ACCESSOR(...) +1
95 static constexpr int kAccessorInfoCount =
115 int inlined_jsframe_index);
146#define ACCESSOR_INFO_DECLARATION(_, accessor_name, AccessorName, ...) \
147 static DirectHandle<AccessorInfo> Make##AccessorName##Info(Isolate* isolate);
149#undef ACCESSOR_INFO_DECLARATION
#define ACCESSOR_GETTER_DECLARATION(_, accessor_name, AccessorName,...)
#define ACCESSOR_CALLBACK_LIST_GENERATOR(V, _)
#define ACCESSOR_SETTER_LIST(V)
#define ACCESSOR_GETTER_LIST(V)
#define ACCESSOR_SETTER_DECLARATION(AccessorName)
#define COUNT_ACCESSOR(...)
#define ACCESSOR_INFO_DECLARATION(_, accessor_name, AccessorName,...)
#define ACCESSOR_INFO_LIST_GENERATOR(V, _)
#define ACCESSOR_CALLBACK_DECLARATION(_, AccessorName,...)
static MaybeDirectHandle< Object > ReplaceAccessorWithDataProperty(Isolate *isolate, DirectHandle< JSAny > receiver, DirectHandle< JSObject > holder, DirectHandle< Name > name, DirectHandle< Object > value)
static constexpr int kAccessorSetterCount
ACCESSOR_CALLBACK_LIST_GENERATOR(ACCESSOR_CALLBACK_DECLARATION,) static const expr int kAccessorInfoCount
static constexpr int kAccessorCallbackCount
static DirectHandle< AccessorInfo > MakeModuleNamespaceEntryInfo(Isolate *isolate, DirectHandle< String > name)
static V8_EXPORT_PRIVATE DirectHandle< AccessorInfo > MakeAccessor(Isolate *isolate, DirectHandle< Name > name, AccessorNameGetterCallback getter, AccessorNameBooleanSetterCallback setter)
static constexpr int kAccessorGetterCount
static bool IsJSObjectFieldAccessor(Isolate *isolate, DirectHandle< Map > map, DirectHandle< Name > name, FieldIndex *field_index)
static Handle< JSObject > FunctionGetArguments(JavaScriptFrame *frame, int inlined_jsframe_index)
void(*)(Local< v8::Name > property, Local< v8::Value > value, const PropertyCallbackInfo< v8::Boolean > &info) AccessorNameBooleanSetterCallback
Handle< SharedFunctionInfo > info
void(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) AccessorNameGetterCallback
#define V8_EXPORT_PRIVATE