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 <span>
10#include <string_view>
11
12#include "v8-data.h" // NOLINT(build/include_directory)
13#include "v8-exception.h" // NOLINT(build/include_directory)
14#include "v8-function-callback.h" // NOLINT(build/include_directory)
15#include "v8-local-handle.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;
22class FunctionTemplate;
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);
59 void SetPrivate(Local<Private> name, Local<Data> value,
60 PropertyAttribute attributes = None);
61 V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value,
62 PropertyAttribute attributes = None);
63
78 void SetAccessorProperty(
79 Local<Name> name,
82 PropertyAttribute attribute = None);
83
104 void SetNativeDataProperty(
107 PropertyAttribute attribute = None,
108 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
109 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
110 V8_DEPRECATED("Use AccessorNameSetterCallbackV2 setter instead")
111 void SetNativeDataProperty(
114 PropertyAttribute attribute = None,
115 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
116 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
117 // TODO(https://crbug.com/348660658): remove once AccessorNameSetterCallback
118 // is removed.
119 void SetNativeDataProperty(
121 std::nullptr_t setter = nullptr, Local<Value> data = Local<Value>(),
122 PropertyAttribute attribute = None,
123 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
124 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect) {
125 SetNativeDataProperty(
126 name, getter, static_cast<AccessorNameSetterCallbackV2>(setter), data,
127 attribute, getter_side_effect_type, setter_side_effect_type);
128 }
129
134 void SetLazyDataProperty(
136 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
137 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
138 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
139
144 void SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic,
145 PropertyAttribute attribute = None);
146
147 private:
148 Template();
150 friend class ObjectTemplate;
151 friend class FunctionTemplate;
152};
153
161enum class Intercepted : uint32_t { kNo = 1, kYes = 0 };
162
207 Local<Name> property, const PropertyCallbackInfo<Value>& info);
208
236 Intercepted (*)(Local<Name> property, Local<Value> value,
237 const PropertyCallbackInfo<Boolean>& info);
238// TODO(https://crbug.com/348660658): deprecate and remove.
240 Intercepted (*)(Local<Name> property, Local<Value> value,
241 const PropertyCallbackInfo<void>& info);
242
270 Local<Name> property, const PropertyCallbackInfo<Integer>& info);
271
297 Local<Name> property, const PropertyCallbackInfo<Boolean>& info);
298
306 void (*)(const PropertyCallbackInfo<Array>& info);
307
335 Intercepted (*)(Local<Name> property, const PropertyDescriptor& desc,
337// TODO(https://crbug.com/348660658): deprecate and remove.
339 Intercepted (*)(Local<Name> property, const PropertyDescriptor& desc,
340 const PropertyCallbackInfo<void>& info);
341
364 Local<Name> property, const PropertyCallbackInfo<Value>& info);
365
370 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
371// TODO(https://crbug.com/348660658): deprecate and remove.
373
378 Intercepted (*)(uint32_t index, Local<Value> value,
380// TODO(https://crbug.com/348660658): deprecate and remove.
382 uint32_t index, Local<Value> value, const PropertyCallbackInfo<void>& info);
383
388 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
389// TODO(https://crbug.com/348660658): deprecate and remove.
391
396 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Boolean>& info);
397// TODO(https://crbug.com/348660658): deprecate and remove.
399
407 void (*)(const PropertyCallbackInfo<Array>& info);
408
413 Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
415// TODO(https://crbug.com/348660658): deprecate and remove.
417 Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
418 const PropertyCallbackInfo<void>& info);
419
424 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
425// TODO(https://crbug.com/348660658): deprecate and remove.
427
432 uint32_t (*)(Local<Value> value, uint32_t start_index, uint32_t end_index,
433 uint32_t* out_length, const PropertyCallbackInfo<void>& info);
434
439 void (*)(const PropertyCallbackInfo<Value>& info);
440
445using AccessCheckCallback = bool (*)(Local<Context> accessing_context,
446 Local<Object> accessed_object,
447 Local<Value> data);
449enum class ConstructorBehavior { kThrow, kAllow };
450
558class V8_EXPORT FunctionTemplate : public Template {
559 public:
561 static Local<FunctionTemplate> New(
562 Isolate* isolate, FunctionCallback callback = nullptr,
563 Local<Value> data = Local<Value>(),
564 Local<Signature> signature = Local<Signature>(), int length = 0,
565 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
566 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
567 const CFunction* c_function = nullptr, uint16_t instance_type = 0,
568 uint16_t allowed_receiver_instance_type_range_start = 0,
569 uint16_t allowed_receiver_instance_type_range_end = 0);
570
572 static Local<FunctionTemplate> NewWithCFunctionOverloads(
573 Isolate* isolate, FunctionCallback callback = nullptr,
574 Local<Value> data = Local<Value>(),
575 Local<Signature> signature = Local<Signature>(), int length = 0,
576 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
577 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
578 const std::span<const CFunction>& c_function_overloads = {});
579
583 static Local<FunctionTemplate> NewWithCache(
584 Isolate* isolate, FunctionCallback callback,
585 Local<Private> cache_property, Local<Value> data = Local<Value>(),
586 Local<Signature> signature = Local<Signature>(), int length = 0,
587 SideEffectType side_effect_type = SideEffectType::kHasSideEffect);
588
590 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
591 Local<Context> context);
592
600 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewRemoteInstance();
601
608 void SetCallHandler(
609 FunctionCallback callback, Local<Data> data = {},
610 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
611 const std::span<const CFunction>& c_function_overloads = {});
612
614 void SetLength(int length);
615
617 Local<ObjectTemplate> InstanceTemplate();
618
624 void Inherit(Local<FunctionTemplate> parent);
625
630 Local<ObjectTemplate> PrototypeTemplate();
631
638 void SetPrototypeProviderTemplate(Local<FunctionTemplate> prototype_provider);
639
645 void SetClassName(Local<String> name);
646
651 void SetInterfaceName(Local<String> name);
652
657 void SetExceptionContext(ExceptionContext context);
658
663 void SetAcceptAnyReceiver(bool value);
664
669 void ReadOnlyPrototype();
670
675 void RemovePrototype();
676
681 bool HasInstance(Local<Value> object);
682
690 bool IsLeafTemplateForApiObject(v8::Local<v8::Value> value) const;
691
698 void SealAndPrepareForPromotionToReadOnly();
699
700 V8_INLINE static FunctionTemplate* Cast(Data* data);
701
702 private:
703 FunctionTemplate();
704
705 static void CheckCast(Data* that);
706 friend class Context;
707 friend class ObjectTemplate;
708};
709
714enum class PropertyHandlerFlags {
718 kNone = 0,
719
725 kNonMasking = 1,
726
731 kOnlyInterceptStrings = 1 << 1,
732
736 kHasNoSideEffect = 1 << 2,
737
743 kHasDontDeleteProperty = 1 << 3,
744
753};
756 private:
757 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
759 return static_cast<PropertyHandlerFlags>(
760 static_cast<int>(flags) |
761 static_cast<int>(
763 }
764
765 static NamedPropertySetterCallbackV2 ConvertSetter(std::nullptr_t) {
766 return nullptr;
767 }
768 static NamedPropertySetterCallbackV2 ConvertSetter(
770 return value;
771 }
772 V8_DEPRECATED("Use NamedPropertySetterCallbackV2 setter instead")
773 static NamedPropertySetterCallbackV2 ConvertSetter(
775 return NamedPropertySetterCallbackV2(value);
776 }
777
778 static NamedPropertyDefinerCallbackV2 ConvertDefiner(std::nullptr_t) {
779 return nullptr;
780 }
781 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
783 return value;
784 }
785 V8_DEPRECATED("Use NamedPropertyDefinerCallbackV2 definer instead")
786 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
788 return NamedPropertyDefinerCallbackV2(value);
789 }
790
791 public:
792 // TODO(https://crbug.com/348660658): cleanup once migration to
793 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
794 template <typename TSetter = std::nullptr_t,
795 typename TDefiner = std::nullptr_t>
796 requires((std::is_same_v<TSetter, std::nullptr_t> ||
797 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
798 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
799 (std::is_same_v<TDefiner, std::nullptr_t> ||
800 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
801 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
804 TSetter setter, //
808 TDefiner definer, //
812 : getter(getter),
813 setter(ConvertSetter(setter)),
814 query(query),
817 definer(ConvertDefiner(definer)),
819 data(data),
820 flags(flags) {}
821
822 // TODO(https://crbug.com/348660658): cleanup once migration to
823 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
824 template <typename TSetter = std::nullptr_t>
825 requires(std::is_same_v<TSetter, std::nullptr_t> ||
826 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
827 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>)
830 TSetter setter = nullptr, //
836 : getter(getter),
837 setter(ConvertSetter(setter)),
838 query(query),
841 definer(nullptr),
842 descriptor(nullptr),
843 data(data),
844 flags(flags) {}
845
846 // TODO(https://crbug.com/348660658): cleanup once migration to
847 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
848 template <typename TSetter = std::nullptr_t,
849 typename TDefiner = std::nullptr_t>
850 requires((std::is_same_v<TSetter, std::nullptr_t> ||
851 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
852 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
853 (std::is_same_v<TDefiner, std::nullptr_t> ||
854 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
855 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
858 TSetter setter, //
862 TDefiner definer, //
865 : getter(getter),
866 setter(ConvertSetter(setter)),
867 query(nullptr),
870 definer(ConvertDefiner(definer)),
872 data(data),
873 flags(flags) {}
884};
887 private:
888 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
890 return static_cast<PropertyHandlerFlags>(
891 static_cast<int>(flags) |
892 static_cast<int>(
894 }
895
896 static IndexedPropertySetterCallback ConvertSetter(std::nullptr_t) {
897 return nullptr;
898 }
899 static IndexedPropertySetterCallback ConvertSetter(
901 return value;
902 }
903 V8_DEPRECATED("Use IndexedPropertySetterCallback setter instead")
904 static IndexedPropertySetterCallback ConvertSetter(
906 return IndexedPropertySetterCallback(value);
907 }
908
909 static IndexedPropertyDefinerCallback ConvertDefiner(std::nullptr_t) {
910 return nullptr;
911 }
912 static IndexedPropertyDefinerCallback ConvertDefiner(
914 return value;
915 }
916 V8_DEPRECATED("Use IndexedPropertyDefinerCallback definer instead")
917 static IndexedPropertyDefinerCallback ConvertDefiner(
919 return IndexedPropertyDefinerCallback(value);
920 }
921
922 public:
923 // TODO(https://crbug.com/348660658): cleanup once migration to
924 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
925 template <typename TSetter = std::nullptr_t,
926 typename TDefiner = std::nullptr_t>
927 requires((std::is_same_v<TSetter, std::nullptr_t> ||
928 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
929 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
930 (std::is_same_v<TDefiner, std::nullptr_t> ||
931 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
932 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
935 TSetter setter, //
939 TDefiner definer, //
943 : getter(getter),
944 setter(ConvertSetter(setter)),
945 query(query),
948 definer(ConvertDefiner(definer)),
950 data(data),
951 flags(flags) {}
952
953 // TODO(https://crbug.com/348660658): cleanup once migration to
954 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
955 template <typename TSetter = std::nullptr_t>
956 requires(std::is_same_v<TSetter, std::nullptr_t> ||
957 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
958 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>)
961 TSetter setter = nullptr, //
967 : getter(getter),
968 setter(ConvertSetter(setter)),
969 query(query),
972 definer(nullptr),
973 descriptor(nullptr),
974 data(data),
975 flags(flags) {}
976
977 // TODO(https://crbug.com/348660658): cleanup once migration to
978 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
979 template <typename TSetter = std::nullptr_t,
980 typename TDefiner = std::nullptr_t>
981 requires((std::is_same_v<TSetter, std::nullptr_t> ||
982 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
983 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
984 (std::is_same_v<TDefiner, std::nullptr_t> ||
985 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
986 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
989 TSetter setter, //
993 TDefiner definer, //
996 : getter(getter),
997 setter(ConvertSetter(setter)),
998 query(nullptr),
1001 definer(ConvertDefiner(definer)),
1003 data(data),
1004 flags(flags) {}
1005
1006 // TODO(https://crbug.com/348660658): cleanup once migration to
1007 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
1008 template <typename TSetter = std::nullptr_t,
1009 typename TDefiner = std::nullptr_t>
1010 requires((std::is_same_v<TSetter, std::nullptr_t> ||
1011 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
1012 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
1013 (std::is_same_v<TDefiner, std::nullptr_t> ||
1014 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
1015 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
1017 "Use IndexedPropertyHandlerConfiguration with iterable_to_list")
1020 TSetter setter, //
1024 TDefiner definer, //
1027 Local<Value> data = Local<Value>(),
1029 : getter(getter),
1030 setter(ConvertSetter(setter)),
1031 query(query),
1034 definer(ConvertDefiner(definer)),
1037 iterable_to_list(nullptr),
1038 data(data),
1039 flags(flags) {}
1040
1041 // TODO(https://crbug.com/348660658): cleanup once migration to
1042 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
1043 template <typename TSetter = std::nullptr_t,
1044 typename TDefiner = std::nullptr_t>
1045 requires((std::is_same_v<TSetter, std::nullptr_t> ||
1046 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
1047 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
1048 (std::is_same_v<TDefiner, std::nullptr_t> ||
1049 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
1050 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
1053 TSetter setter, //
1057 TDefiner definer, //
1063 : getter(getter),
1064 setter(ConvertSetter(setter)),
1065 query(query),
1068 definer(ConvertDefiner(definer)),
1072 data(data),
1073 flags(flags) {}
1086};
1087
1094class V8_EXPORT ObjectTemplate : public Template {
1095 public:
1097 static Local<ObjectTemplate> New(
1098 Isolate* isolate,
1100
1107
1119 void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
1120
1131 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration);
1132
1139 void SetCallAsFunctionHandler(FunctionCallback callback,
1140 Local<Value> data = Local<Value>());
1141
1150 void MarkAsUndetectable();
1151
1160 void SetAccessCheckCallback(AccessCheckCallback callback,
1161 Local<Value> data = Local<Value>());
1162
1169 void SetAccessCheckCallbackAndHandler(
1170 AccessCheckCallback callback,
1171 const NamedPropertyHandlerConfiguration& named_handler,
1172 const IndexedPropertyHandlerConfiguration& indexed_handler,
1173 Local<Value> data = Local<Value>());
1174
1179 int InternalFieldCount() const;
1180
1185 void SetInternalFieldCount(int value);
1186
1190 bool IsImmutableProto() const;
1191
1196 void SetImmutableProto();
1197
1207 void SetCodeLike();
1208 bool IsCodeLike() const;
1209
1216 void SealAndPrepareForPromotionToReadOnly();
1217
1218 V8_INLINE static ObjectTemplate* Cast(Data* data);
1219
1220 private:
1222
1223 static void CheckCast(Data* that);
1224 friend class FunctionTemplate;
1225};
1226
1230class V8_EXPORT DictionaryTemplate final : public Data {
1231 public:
1239 static Local<DictionaryTemplate> New(Isolate* isolate,
1240 std::span<const std::string_view> names);
1241
1252 Local<Context> context, std::span<MaybeLocal<Value>> property_values);
1253
1254 V8_INLINE static DictionaryTemplate* Cast(Data* data);
1255
1256 private:
1257 static void CheckCast(Data* that);
1258
1260};
1261
1270class V8_EXPORT Signature : public Data {
1271 public:
1272 static Local<Signature> New(
1273 Isolate* isolate,
1275
1276 V8_INLINE static Signature* Cast(Data* data);
1277
1278 private:
1279 Signature();
1280
1281 static void CheckCast(Data* that);
1282};
1283
1284// --- Implementation ---
1286void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
1287 PropertyAttribute attributes) {
1289 .ToLocalChecked(),
1290 value, attributes);
1291}
1294#ifdef V8_ENABLE_CHECKS
1295 CheckCast(data);
1296#endif
1297 return reinterpret_cast<FunctionTemplate*>(data);
1298}
1301#ifdef V8_ENABLE_CHECKS
1302 CheckCast(data);
1303#endif
1304 return reinterpret_cast<ObjectTemplate*>(data);
1305}
1308#ifdef V8_ENABLE_CHECKS
1309 CheckCast(data);
1310#endif
1311 return reinterpret_cast<DictionaryTemplate*>(data);
1312}
1315#ifdef V8_ENABLE_CHECKS
1316 CheckCast(data);
1317#endif
1318 return reinterpret_cast<Signature*>(data);
1319}
1320
1321} // namespace v8
1322
1323#endif // INCLUDE_V8_TEMPLATE_H_
Definition: v8-context.h:48
Definition: v8-data.h:18
Definition: v8-template.h:1229
static DictionaryTemplate * Cast(Data *data)
Definition: v8-template.h:1306
Definition: v8-template.h:557
static FunctionTemplate * Cast(Data *data)
Definition: v8-template.h:1292
Definition: v8-isolate.h:292
Definition: v8-local-handle.h:366
Definition: v8-local-handle.h:734
Definition: v8-primitive.h:81
Definition: v8-template.h:1093
static ObjectTemplate * Cast(Data *data)
Definition: v8-template.h:1299
Definition: v8-function-callback.h:224
Definition: v8-object.h:106
Definition: v8-container.h:148
Definition: v8-template.h:1269
static Signature * Cast(Data *data)
Definition: v8-template.h:1313
static MaybeLocal< String > NewFromUtf8(Isolate *isolate, const char *data, NewStringType type=NewStringType::kNormal, int length=-1)
Definition: v8-template.h:49
void Set(Local< Name > name, Local< Data > value, PropertyAttribute attributes=None)
Definition: v8-value.h:32
Definition: libplatform.h:15
PropertyAttribute
Definition: v8-object.h:154
void(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) AccessorNameGetterCallback
Definition: v8-object.h:180
Intercepted(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info) NamedPropertySetterCallback
Definition: v8-template.h:240
Intercepted(*)(uint32_t index, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) IndexedPropertySetterCallback
Definition: v8-template.h:378
SideEffectType
Definition: v8-object.h:231
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyDescriptorCallback
Definition: v8-template.h:363
Intercepted(*)(uint32_t index, Local< Value > value, const PropertyCallbackInfo< void > &info) IndexedPropertySetterCallbackV2
Definition: v8-template.h:381
void(*)(const PropertyCallbackInfo< Value > &info) IndexedPropertyIterableToListCallback
Definition: v8-template.h:438
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyGetterCallback
Definition: v8-template.h:206
Intercepted(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< void > &info) NamedPropertyDefinerCallback
Definition: v8-template.h:339
IndexedPropertyDescriptorCallback IndexedPropertyDescriptorCallbackV2
Definition: v8-template.h:425
IndexedPropertyGetterCallback IndexedPropertyGetterCallbackV2
Definition: v8-template.h:371
Intercepted(*)(uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDefinerCallback
Definition: v8-template.h:413
Intrinsic
Definition: v8-template.h:41
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDeleterCallback
Definition: v8-template.h:395
void(*)(const PropertyCallbackInfo< Array > &info) NamedPropertyEnumeratorCallback
Definition: v8-template.h:305
IndexedPropertyDeleterCallback IndexedPropertyDeleterCallbackV2
Definition: v8-template.h:397
ConstructorBehavior
Definition: v8-template.h:448
void(*)(const FunctionCallbackInfo< Value > &info) FunctionCallback
Definition: v8-function-callback.h:354
Intercepted(*)(uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< void > &info) IndexedPropertyDefinerCallbackV2
Definition: v8-template.h:417
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyGetterCallback
Definition: v8-template.h:369
Intercepted(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< Boolean > &info) NamedPropertyDefinerCallbackV2
Definition: v8-template.h:335
void(*)(const PropertyCallbackInfo< Array > &info) IndexedPropertyEnumeratorCallback
Definition: v8-template.h:406
IndexedPropertyQueryCallback IndexedPropertyQueryCallbackV2
Definition: v8-template.h:389
void(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) AccessorNameSetterCallbackV2
Definition: v8-object.h:203
Intercepted
Definition: v8-template.h:160
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Integer > &info) NamedPropertyQueryCallback
Definition: v8-template.h:269
void(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info) AccessorNameSetterCallback
Definition: v8-object.h:207
uint32_t(*)(Local< Value > value, uint32_t start_index, uint32_t end_index, uint32_t *out_length, const PropertyCallbackInfo< void > &info) IndexedPropertyIndexOfCallback
Definition: v8-template.h:432
bool(*)(Local< Context > accessing_context, Local< Object > accessed_object, Local< Value > data) AccessCheckCallback
Definition: v8-template.h:446
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Boolean > &info) NamedPropertyDeleterCallback
Definition: v8-template.h:296
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyDescriptorCallback
Definition: v8-template.h:423
Intercepted(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) NamedPropertySetterCallbackV2
Definition: v8-template.h:236
PropertyHandlerFlags
Definition: v8-template.h:713
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Integer > &info) IndexedPropertyQueryCallback
Definition: v8-template.h:387
Definition: v8-template.h:885
IndexedPropertyGetterCallback getter
Definition: v8-template.h:1074
IndexedPropertyDefinerCallback definer
Definition: v8-template.h:1079
PropertyHandlerFlags flags
Definition: v8-template.h:1084
IndexedPropertyDescriptorCallback descriptor
Definition: v8-template.h:1080
IndexedPropertySetterCallback setter
Definition: v8-template.h:1075
IndexedPropertyIndexOfCallback index_of
Definition: v8-template.h:1081
IndexedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:1078
IndexedPropertyQueryCallback query
Definition: v8-template.h:1076
Local< Value > data
Definition: v8-template.h:1083
IndexedPropertyDeleterCallback deleter
Definition: v8-template.h:1077
IndexedPropertyIterableToListCallback iterable_to_list
Definition: v8-template.h:1082
Definition: v8-template.h:754
NamedPropertyDescriptorCallback descriptor
Definition: v8-template.h:880
Local< Value > data
Definition: v8-template.h:881
NamedPropertyDeleterCallback deleter
Definition: v8-template.h:877
NamedPropertyDefinerCallbackV2 definer
Definition: v8-template.h:879
NamedPropertySetterCallbackV2 setter
Definition: v8-template.h:875
NamedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:878
NamedPropertyQueryCallback query
Definition: v8-template.h:876
NamedPropertyGetterCallback getter
Definition: v8-template.h:874
PropertyHandlerFlags flags
Definition: v8-template.h:882
#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:867
#define V8_INLINE
Definition: v8config.h:511
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:624
#define V8_DEPRECATED(message)
Definition: v8config.h:616
#define V8_WARN_UNUSED_RESULT
Definition: v8config.h:681