v8 13.6.233 (node 24.1.0)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
v8-template.h
Go to the documentation of this file.
1// Copyright 2021 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef INCLUDE_V8_TEMPLATE_H_
6#define INCLUDE_V8_TEMPLATE_H_
7
8#include <cstddef>
9#include <string_view>
10
11#include "v8-data.h" // NOLINT(build/include_directory)
12#include "v8-exception.h" // NOLINT(build/include_directory)
13#include "v8-function-callback.h" // NOLINT(build/include_directory)
14#include "v8-local-handle.h" // NOLINT(build/include_directory)
15#include "v8-memory-span.h" // NOLINT(build/include_directory)
16#include "v8-object.h" // NOLINT(build/include_directory)
17#include "v8config.h" // NOLINT(build/include_directory)
18
19namespace v8 {
20
21class CFunction;
23class ObjectTemplate;
24class Signature;
25
26// --- Templates ---
27
28#define V8_INTRINSICS_LIST(F) \
29 F(ArrayProto_entries, array_entries_iterator) \
30 F(ArrayProto_forEach, array_for_each_iterator) \
31 F(ArrayProto_keys, array_keys_iterator) \
32 F(ArrayProto_values, array_values_iterator) \
33 F(ArrayPrototype, initial_array_prototype) \
34 F(AsyncIteratorPrototype, initial_async_iterator_prototype) \
35 F(ErrorPrototype, initial_error_prototype) \
36 F(IteratorPrototype, initial_iterator_prototype) \
37 F(MapIteratorPrototype, initial_map_iterator_prototype) \
38 F(ObjProto_valueOf, object_value_of_function) \
39 F(SetIteratorPrototype, initial_set_iterator_prototype)
40
42#define V8_DECL_INTRINSIC(name, iname) k##name,
44#undef V8_DECL_INTRINSIC
45};
46
50class V8_EXPORT Template : public Data {
51 public:
57 void Set(Local<Name> name, Local<Data> value,
58 PropertyAttribute attributes = None);
60 PropertyAttribute attributes = None);
61 V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value,
62 PropertyAttribute attributes = None);
63
79 Local<Name> name,
82 PropertyAttribute attribute = None);
83
106 AccessorNameSetterCallback setter = nullptr,
107 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
108 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
109 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
110
117 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
118 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
119 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
120
126 PropertyAttribute attribute = None);
127
128 private:
129 Template();
130
131 friend class ObjectTemplate;
132 friend class FunctionTemplate;
133};
134
139enum class Intercepted : uint8_t { kNo = 0, kYes = 1 };
140
185 Local<Name> property, const PropertyCallbackInfo<Value>& info);
186// This variant will be deprecated soon.
187//
188// Use `info.GetReturnValue().Set()` to set the return value of the
189// intercepted get request. If the property does not exist the callback should
190// not set the result and must not produce side effects.
192 void (*)(Local<Name> property, const PropertyCallbackInfo<Value>& info);
193
214 Intercepted (*)(Local<Name> property, Local<Value> value,
215 const PropertyCallbackInfo<void>& info);
216// This variant will be deprecated soon.
217//
218// Use `info.GetReturnValue()` to indicate whether the request was intercepted
219// or not. If the setter successfully intercepts the request, i.e., if the
220// request should not be further executed, call
221// `info.GetReturnValue().Set(value)`. If the setter did not intercept the
222// request, i.e., if the request should be handled as if no interceptor is
223// present, do not not call `Set()` and do not produce side effects.
225 void (*)(Local<Name> property, Local<Value> value,
226 const PropertyCallbackInfo<Value>& info);
227
255 Local<Name> property, const PropertyCallbackInfo<Integer>& info);
256// This variant will be deprecated soon.
257//
258// Use `info.GetReturnValue().Set(value)` to set the property attributes. The
259// value is an integer encoding a `v8::PropertyAttribute`. If the property does
260// not exist the callback should not set the result and must not produce side
261// effects.
263 void (*)(Local<Name> property, const PropertyCallbackInfo<Integer>& info);
264
290 Local<Name> property, const PropertyCallbackInfo<Boolean>& info);
291// This variant will be deprecated soon.
292//
293// Use `info.GetReturnValue()` to indicate whether the request was intercepted
294// or not. If the deleter successfully intercepts the request, i.e., if the
295// request should not be further executed, call
296// `info.GetReturnValue().Set(value)` with a boolean `value`. The `value` is
297// used as the return value of `delete`. If the deleter does not intercept the
298// request then it should not set the result and must not produce side effects.
300 void (*)(Local<Name> property, const PropertyCallbackInfo<Boolean>& info);
301
309 void (*)(const PropertyCallbackInfo<Array>& info);
310// This variant will be deprecated soon.
311// This is just a renaming of the typedef.
313
334 Intercepted (*)(Local<Name> property, const PropertyDescriptor& desc,
335 const PropertyCallbackInfo<void>& info);
336// This variant will be deprecated soon.
337//
338// Use `info.GetReturnValue()` to indicate whether the request was intercepted
339// or not. If the definer successfully intercepts the request, i.e., if the
340// request should not be further executed, call
341// `info.GetReturnValue().Set(value)`. If the definer did not intercept the
342// request, i.e., if the request should be handled as if no interceptor is
343// present, do not not call `Set()` and do not produce side effects.
345 void (*)(Local<Name> property, const PropertyDescriptor& desc,
346 const PropertyCallbackInfo<Value>& info);
347
373 Local<Name> property, const PropertyCallbackInfo<Value>& info);
374// This variant will be deprecated soon.
375//
376// Use `info.GetReturnValue().Set()` to set the return value of the
377// intercepted request. The return value must be an object that
378// can be converted to a PropertyDescriptor, e.g., a `v8::Value` returned from
379// `v8::Object::getOwnPropertyDescriptor`.
381 void (*)(Local<Name> property, const PropertyCallbackInfo<Value>& info);
382
383// TODO(ishell): Rename IndexedPropertyXxxCallbackV2 back to
384// IndexedPropertyXxxCallback once the old IndexedPropertyXxxCallback is
385// removed.
386
391 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
392// This variant will be deprecated soon.
394 void (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
395
400 uint32_t index, Local<Value> value, const PropertyCallbackInfo<void>& info);
401// This variant will be deprecated soon.
403 void (*)(uint32_t index, Local<Value> value,
404 const PropertyCallbackInfo<Value>& info);
405
410 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
411// This variant will be deprecated soon.
413 void (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
414
419 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Boolean>& info);
420// This variant will be deprecated soon.
422 void (*)(uint32_t index, const PropertyCallbackInfo<Boolean>& info);
423
431 void (*)(const PropertyCallbackInfo<Array>& info);
432
437 Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
438 const PropertyCallbackInfo<void>& info);
439// This variant will be deprecated soon.
441 void (*)(uint32_t index, const PropertyDescriptor& desc,
442 const PropertyCallbackInfo<Value>& info);
443
448 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
449// This variant will be deprecated soon.
451 void (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
452
457using AccessCheckCallback = bool (*)(Local<Context> accessing_context,
458 Local<Object> accessed_object,
459 Local<Value> data);
460
462
570class V8_EXPORT FunctionTemplate : public Template {
571 public:
574 Isolate* isolate, FunctionCallback callback = nullptr,
575 Local<Value> data = Local<Value>(),
576 Local<Signature> signature = Local<Signature>(), int length = 0,
579 const CFunction* c_function = nullptr, uint16_t instance_type = 0,
580 uint16_t allowed_receiver_instance_type_range_start = 0,
581 uint16_t allowed_receiver_instance_type_range_end = 0);
582
585 Isolate* isolate, FunctionCallback callback = nullptr,
586 Local<Value> data = Local<Value>(),
587 Local<Signature> signature = Local<Signature>(), int length = 0,
590 const MemorySpan<const CFunction>& c_function_overloads = {});
591
596 Isolate* isolate, FunctionCallback callback,
597 Local<Private> cache_property, Local<Value> data = Local<Value>(),
598 Local<Signature> signature = Local<Signature>(), int length = 0,
600
603 Local<Context> context);
604
613
621 FunctionCallback callback, Local<Value> data = Local<Value>(),
623 const MemorySpan<const CFunction>& c_function_overloads = {});
624
626 void SetLength(int length);
627
630
637
643
651
658
664
670
675 void SetAcceptAnyReceiver(bool value);
676
682
688
694
703
711
712 V8_INLINE static FunctionTemplate* Cast(Data* data);
713
714 private:
715 FunctionTemplate();
716
717 static void CheckCast(Data* that);
718 friend class Context;
719 friend class ObjectTemplate;
720};
721
759
761 private:
762 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
764 return static_cast<PropertyHandlerFlags>(
765 static_cast<int>(flags) |
766 static_cast<int>(
768 }
769
770 public:
790
808
827
837};
838
840 private:
841 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
843 return static_cast<PropertyHandlerFlags>(
844 static_cast<int>(flags) |
845 static_cast<int>(
847 }
848
849 public:
869
887
906
916};
917
924class V8_EXPORT ObjectTemplate : public Template {
925 public:
928 Isolate* isolate,
930
937
950
962
970 Local<Value> data = Local<Value>());
971
981
991 Local<Value> data = Local<Value>());
992
1000 AccessCheckCallback callback,
1001 const NamedPropertyHandlerConfiguration& named_handler,
1002 const IndexedPropertyHandlerConfiguration& indexed_handler,
1003 Local<Value> data = Local<Value>());
1004
1010
1015 void SetInternalFieldCount(int value);
1016
1020 bool IsImmutableProto() const;
1021
1027
1038 bool IsCodeLike() const;
1039
1040 V8_INLINE static ObjectTemplate* Cast(Data* data);
1041
1042 private:
1043 ObjectTemplate();
1044
1045 static void CheckCast(Data* that);
1046 friend class FunctionTemplate;
1047};
1048
1052class V8_EXPORT DictionaryTemplate final {
1053 public:
1063
1074 Local<Context> context, MemorySpan<MaybeLocal<Value>> property_values);
1075
1076 V8_INLINE static DictionaryTemplate* Cast(Data* data);
1077
1078 private:
1079 static void CheckCast(Data* that);
1080
1081 DictionaryTemplate();
1082};
1083
1092class V8_EXPORT Signature : public Data {
1093 public:
1095 Isolate* isolate,
1097
1098 V8_INLINE static Signature* Cast(Data* data);
1099
1100 private:
1101 Signature();
1102
1103 static void CheckCast(Data* that);
1104};
1105
1106// --- Implementation ---
1107
1108void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
1109 PropertyAttribute attributes) {
1111 .ToLocalChecked(),
1112 value, attributes);
1113}
1114
1115FunctionTemplate* FunctionTemplate::Cast(Data* data) {
1116#ifdef V8_ENABLE_CHECKS
1117 CheckCast(data);
1118#endif
1119 return reinterpret_cast<FunctionTemplate*>(data);
1120}
1121
1122ObjectTemplate* ObjectTemplate::Cast(Data* data) {
1123#ifdef V8_ENABLE_CHECKS
1124 CheckCast(data);
1125#endif
1126 return reinterpret_cast<ObjectTemplate*>(data);
1127}
1128
1129DictionaryTemplate* DictionaryTemplate::Cast(Data* data) {
1130#ifdef V8_ENABLE_CHECKS
1131 CheckCast(data);
1132#endif
1133 return reinterpret_cast<DictionaryTemplate*>(data);
1134}
1135
1136Signature* Signature::Cast(Data* data) {
1137#ifdef V8_ENABLE_CHECKS
1138 CheckCast(data);
1139#endif
1140 return reinterpret_cast<Signature*>(data);
1141}
1142
1143} // namespace v8
1144
1145#endif // INCLUDE_V8_TEMPLATE_H_
V8_WARN_UNUSED_RESULT Local< Object > NewInstance(Local< Context > context, MemorySpan< MaybeLocal< Value > > property_values)
static Local< DictionaryTemplate > New(Isolate *isolate, MemorySpan< const std::string_view > names)
static V8_INLINE DictionaryTemplate * Cast(Data *data)
bool HasInstance(Local< Value > object)
friend class ObjectTemplate
static Local< FunctionTemplate > New(Isolate *isolate, FunctionCallback callback=nullptr, Local< Value > data=Local< Value >(), Local< Signature > signature=Local< Signature >(), int length=0, ConstructorBehavior behavior=ConstructorBehavior::kAllow, SideEffectType side_effect_type=SideEffectType::kHasSideEffect, const CFunction *c_function=nullptr, uint16_t instance_type=0, uint16_t allowed_receiver_instance_type_range_start=0, uint16_t allowed_receiver_instance_type_range_end=0)
void SealAndPrepareForPromotionToReadOnly()
static Local< FunctionTemplate > NewWithCache(Isolate *isolate, FunctionCallback callback, Local< Private > cache_property, Local< Value > data=Local< Value >(), Local< Signature > signature=Local< Signature >(), int length=0, SideEffectType side_effect_type=SideEffectType::kHasSideEffect)
void SetCallHandler(FunctionCallback callback, Local< Value > data=Local< Value >(), SideEffectType side_effect_type=SideEffectType::kHasSideEffect, const MemorySpan< const CFunction > &c_function_overloads={})
void SetExceptionContext(ExceptionContext context)
static Local< FunctionTemplate > NewWithCFunctionOverloads(Isolate *isolate, FunctionCallback callback=nullptr, Local< Value > data=Local< Value >(), Local< Signature > signature=Local< Signature >(), int length=0, ConstructorBehavior behavior=ConstructorBehavior::kAllow, SideEffectType side_effect_type=SideEffectType::kHasSideEffect, const MemorySpan< const CFunction > &c_function_overloads={})
Local< ObjectTemplate > InstanceTemplate()
void SetInterfaceName(Local< String > name)
void SetLength(int length)
bool IsLeafTemplateForApiObject(v8::Local< v8::Value > value) const
Local< ObjectTemplate > PrototypeTemplate()
friend class Context
void Inherit(Local< FunctionTemplate > parent)
V8_WARN_UNUSED_RESULT MaybeLocal< Function > GetFunction(Local< Context > context)
static V8_INLINE FunctionTemplate * Cast(Data *data)
V8_WARN_UNUSED_RESULT MaybeLocal< Object > NewRemoteInstance()
void SetPrototypeProviderTemplate(Local< FunctionTemplate > prototype_provider)
void SetClassName(Local< String > name)
void SetAcceptAnyReceiver(bool value)
void SetHandler(const NamedPropertyHandlerConfiguration &configuration)
void SetInternalFieldCount(int value)
static Local< ObjectTemplate > New(Isolate *isolate, Local< FunctionTemplate > constructor=Local< FunctionTemplate >())
friend class FunctionTemplate
bool IsCodeLike() const
void SetCallAsFunctionHandler(FunctionCallback callback, Local< Value > data=Local< Value >())
void SetAccessCheckCallbackAndHandler(AccessCheckCallback callback, const NamedPropertyHandlerConfiguration &named_handler, const IndexedPropertyHandlerConfiguration &indexed_handler, Local< Value > data=Local< Value >())
void SetAccessCheckCallback(AccessCheckCallback callback, Local< Value > data=Local< Value >())
bool IsImmutableProto() const
void SetHandler(const IndexedPropertyHandlerConfiguration &configuration)
V8_WARN_UNUSED_RESULT MaybeLocal< Object > NewInstance(Local< Context > context)
static V8_INLINE ObjectTemplate * Cast(Data *data)
int InternalFieldCount() const
static V8_INLINE Signature * Cast(Data *data)
static Local< Signature > New(Isolate *isolate, Local< FunctionTemplate > receiver=Local< FunctionTemplate >())
static V8_WARN_UNUSED_RESULT MaybeLocal< String > NewFromUtf8(Isolate *isolate, const char *data, NewStringType type=NewStringType::kNormal, int length=-1)
void SetNativeDataProperty(Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), PropertyAttribute attribute=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
friend class FunctionTemplate
friend class ObjectTemplate
void SetIntrinsicDataProperty(Local< Name > name, Intrinsic intrinsic, PropertyAttribute attribute=None)
void SetPrivate(Local< Private > name, Local< Data > value, PropertyAttribute attributes=None)
void SetLazyDataProperty(Local< Name > name, AccessorNameGetterCallback getter, Local< Value > data=Local< Value >(), PropertyAttribute attribute=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
void Set(Local< Name > name, Local< Data > value, PropertyAttribute attributes=None)
void SetAccessorProperty(Local< Name > name, Local< FunctionTemplate > getter=Local< FunctionTemplate >(), Local< FunctionTemplate > setter=Local< FunctionTemplate >(), PropertyAttribute attribute=None)
void(*)(const PropertyCallbackInfo< Array > &info) NamedPropertyEnumeratorCallback
void(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) AccessorNameGetterCallback
Definition v8-object.h:155
void(*)(uint32_t index, const PropertyCallbackInfo< Integer > &info) IndexedPropertyQueryCallback
Intrinsic
Definition v8-template.h:41
bool(*)(Local< Context > accessing_context, Local< Object > accessed_object, Local< Value > data) AccessCheckCallback
void(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) GenericNamedPropertyDescriptorCallback
void(*)(uint32_t index, Local< Value > value, const PropertyCallbackInfo< Value > &info) IndexedPropertySetterCallback
Intercepted(*)( uint32_t index, Local< Value > value, const PropertyCallbackInfo< void > &info) IndexedPropertySetterCallbackV2
void(*)(const PropertyCallbackInfo< Array > &info) IndexedPropertyEnumeratorCallback
void(*)(const FunctionCallbackInfo< Value > &info) FunctionCallback
void(*)(Local< Name > property, const PropertyCallbackInfo< Boolean > &info) GenericNamedPropertyDeleterCallback
void(*)(uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< Value > &info) IndexedPropertyDefinerCallback
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyDescriptorCallbackV2
Intercepted
Intercepted(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info) NamedPropertySetterCallback
void(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyDescriptorCallback
SideEffectType
Definition v8-object.h:198
NamedPropertyEnumeratorCallback GenericNamedPropertyEnumeratorCallback
Intercepted(*)( Local< Name > property, const PropertyCallbackInfo< Integer > &info) NamedPropertyQueryCallback
void(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyGetterCallback
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Integer > &info) IndexedPropertyQueryCallbackV2
void(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) GenericNamedPropertyGetterCallback
void(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< Value > &info) GenericNamedPropertyDefinerCallback
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyGetterCallbackV2
void(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info) AccessorNameSetterCallback
Definition v8-object.h:158
PropertyAttribute
Definition v8-object.h:139
@ None
Definition v8-object.h:141
Intercepted(*)( Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyGetterCallback
Intercepted(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< void > &info) NamedPropertyDefinerCallback
void(*)(uint32_t index, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDeleterCallback
void(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Value > &info) GenericNamedPropertySetterCallback
Intercepted(*)( Local< Name > property, const PropertyCallbackInfo< Boolean > &info) NamedPropertyDeleterCallback
Intercepted(*)( Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyDescriptorCallback
ConstructorBehavior
Intercepted(*)(uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< void > &info) IndexedPropertyDefinerCallbackV2
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDeleterCallbackV2
void(*)(Local< Name > property, const PropertyCallbackInfo< Integer > &info) GenericNamedPropertyQueryCallback
ExceptionContext
PropertyHandlerFlags
IndexedPropertyQueryCallbackV2 query
IndexedPropertyDefinerCallbackV2 definer
IndexedPropertySetterCallbackV2 setter
IndexedPropertyHandlerConfiguration(IndexedPropertyGetterCallbackV2 getter=nullptr, IndexedPropertySetterCallbackV2 setter=nullptr, IndexedPropertyQueryCallbackV2 query=nullptr, IndexedPropertyDeleterCallbackV2 deleter=nullptr, IndexedPropertyEnumeratorCallback enumerator=nullptr, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
IndexedPropertyGetterCallbackV2 getter
IndexedPropertyHandlerConfiguration(IndexedPropertyGetterCallbackV2 getter, IndexedPropertySetterCallbackV2 setter, IndexedPropertyDescriptorCallbackV2 descriptor, IndexedPropertyDeleterCallbackV2 deleter, IndexedPropertyEnumeratorCallback enumerator, IndexedPropertyDefinerCallbackV2 definer, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
IndexedPropertyDeleterCallbackV2 deleter
IndexedPropertyHandlerConfiguration(IndexedPropertyGetterCallbackV2 getter, IndexedPropertySetterCallbackV2 setter, IndexedPropertyQueryCallbackV2 query, IndexedPropertyDeleterCallbackV2 deleter, IndexedPropertyEnumeratorCallback enumerator, IndexedPropertyDefinerCallbackV2 definer, IndexedPropertyDescriptorCallbackV2 descriptor, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
IndexedPropertyDescriptorCallbackV2 descriptor
IndexedPropertyEnumeratorCallback enumerator
NamedPropertyDeleterCallback deleter
NamedPropertySetterCallback setter
NamedPropertyDescriptorCallback descriptor
NamedPropertyHandlerConfiguration(NamedPropertyGetterCallback getter, NamedPropertySetterCallback setter, NamedPropertyDescriptorCallback descriptor, NamedPropertyDeleterCallback deleter, NamedPropertyEnumeratorCallback enumerator, NamedPropertyDefinerCallback definer, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
NamedPropertyQueryCallback query
NamedPropertyEnumeratorCallback enumerator
NamedPropertyDefinerCallback definer
NamedPropertyHandlerConfiguration(NamedPropertyGetterCallback getter, NamedPropertySetterCallback setter, NamedPropertyQueryCallback query, NamedPropertyDeleterCallback deleter, NamedPropertyEnumeratorCallback enumerator, NamedPropertyDefinerCallback definer, NamedPropertyDescriptorCallback descriptor, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
NamedPropertyGetterCallback getter
NamedPropertyHandlerConfiguration(NamedPropertyGetterCallback getter, NamedPropertySetterCallback setter=nullptr, NamedPropertyQueryCallback query=nullptr, NamedPropertyDeleterCallback deleter=nullptr, NamedPropertyEnumeratorCallback enumerator=nullptr, Local< Value > data=Local< Value >(), PropertyHandlerFlags flags=PropertyHandlerFlags::kNone)
#define V8_INTRINSICS_LIST(F)
Definition v8-template.h:28
#define V8_DECL_INTRINSIC(name, iname)
Definition v8-template.h:42
#define V8_EXPORT
Definition v8config.h:800
#define V8_INLINE
Definition v8config.h:500
#define V8_WARN_UNUSED_RESULT
Definition v8config.h:671