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_DEPRECATE_SOON("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
439using AccessCheckCallback = bool (*)(Local<Context> accessing_context,
440 Local<Object> accessed_object,
441 Local<Value> data);
443enum class ConstructorBehavior { kThrow, kAllow };
444
552class V8_EXPORT FunctionTemplate : public Template {
553 public:
555 static Local<FunctionTemplate> New(
556 Isolate* isolate, FunctionCallback callback = nullptr,
557 Local<Value> data = Local<Value>(),
558 Local<Signature> signature = Local<Signature>(), int length = 0,
559 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
560 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
561 const CFunction* c_function = nullptr, uint16_t instance_type = 0,
562 uint16_t allowed_receiver_instance_type_range_start = 0,
563 uint16_t allowed_receiver_instance_type_range_end = 0);
564
566 static Local<FunctionTemplate> NewWithCFunctionOverloads(
567 Isolate* isolate, FunctionCallback callback = nullptr,
568 Local<Value> data = Local<Value>(),
569 Local<Signature> signature = Local<Signature>(), int length = 0,
570 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
571 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
572 const std::span<const CFunction>& c_function_overloads = {});
573
577 static Local<FunctionTemplate> NewWithCache(
578 Isolate* isolate, FunctionCallback callback,
579 Local<Private> cache_property, Local<Value> data = Local<Value>(),
580 Local<Signature> signature = Local<Signature>(), int length = 0,
581 SideEffectType side_effect_type = SideEffectType::kHasSideEffect);
582
584 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
585 Local<Context> context);
586
594 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewRemoteInstance();
595
602 void SetCallHandler(
603 FunctionCallback callback, Local<Data> data = {},
604 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
605 const std::span<const CFunction>& c_function_overloads = {});
606
608 void SetLength(int length);
609
611 Local<ObjectTemplate> InstanceTemplate();
612
618 void Inherit(Local<FunctionTemplate> parent);
619
624 Local<ObjectTemplate> PrototypeTemplate();
625
632 void SetPrototypeProviderTemplate(Local<FunctionTemplate> prototype_provider);
633
639 void SetClassName(Local<String> name);
640
645 void SetInterfaceName(Local<String> name);
646
651 void SetExceptionContext(ExceptionContext context);
652
657 void SetAcceptAnyReceiver(bool value);
658
663 void ReadOnlyPrototype();
664
669 void RemovePrototype();
670
675 bool HasInstance(Local<Value> object);
676
684 bool IsLeafTemplateForApiObject(v8::Local<v8::Value> value) const;
685
692 void SealAndPrepareForPromotionToReadOnly();
693
694 V8_INLINE static FunctionTemplate* Cast(Data* data);
695
696 private:
697 FunctionTemplate();
698
699 static void CheckCast(Data* that);
700 friend class Context;
701 friend class ObjectTemplate;
702};
703
708enum class PropertyHandlerFlags {
712 kNone = 0,
713
719 kNonMasking = 1,
720
725 kOnlyInterceptStrings = 1 << 1,
726
730 kHasNoSideEffect = 1 << 2,
731
737 kHasDontDeleteProperty = 1 << 3,
738
747};
750 private:
751 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
753 return static_cast<PropertyHandlerFlags>(
754 static_cast<int>(flags) |
755 static_cast<int>(
757 }
758
759 static NamedPropertySetterCallbackV2 ConvertSetter(std::nullptr_t) {
760 return nullptr;
761 }
762 static NamedPropertySetterCallbackV2 ConvertSetter(
764 return value;
765 }
766 V8_DEPRECATE_SOON("Use NamedPropertySetterCallbackV2 setter instead")
767 static NamedPropertySetterCallbackV2 ConvertSetter(
769 return NamedPropertySetterCallbackV2(value);
770 }
771
772 static NamedPropertyDefinerCallbackV2 ConvertDefiner(std::nullptr_t) {
773 return nullptr;
774 }
775 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
777 return value;
778 }
779 V8_DEPRECATE_SOON("Use NamedPropertyDefinerCallbackV2 definer instead")
780 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
782 return NamedPropertyDefinerCallbackV2(value);
783 }
784
785 public:
786 // TODO(https://crbug.com/348660658): cleanup once migration to
787 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
788 template <typename TSetter = std::nullptr_t,
789 typename TDefiner = std::nullptr_t>
790 requires((std::is_same_v<TSetter, std::nullptr_t> ||
791 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
792 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
793 (std::is_same_v<TDefiner, std::nullptr_t> ||
794 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
795 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
798 TSetter setter, //
802 TDefiner definer, //
806 : getter(getter),
807 setter(ConvertSetter(setter)),
808 query(query),
811 definer(ConvertDefiner(definer)),
813 data(data),
814 flags(flags) {}
815
816 // TODO(https://crbug.com/348660658): cleanup once migration to
817 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
818 template <typename TSetter = std::nullptr_t>
819 requires(std::is_same_v<TSetter, std::nullptr_t> ||
820 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
821 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>)
824 TSetter setter = nullptr, //
830 : getter(getter),
831 setter(ConvertSetter(setter)),
832 query(query),
835 definer(nullptr),
836 descriptor(nullptr),
837 data(data),
838 flags(flags) {}
839
840 // TODO(https://crbug.com/348660658): cleanup once migration to
841 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
842 template <typename TSetter = std::nullptr_t,
843 typename TDefiner = std::nullptr_t>
844 requires((std::is_same_v<TSetter, std::nullptr_t> ||
845 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
846 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
847 (std::is_same_v<TDefiner, std::nullptr_t> ||
848 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
849 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
852 TSetter setter, //
856 TDefiner definer, //
859 : getter(getter),
860 setter(ConvertSetter(setter)),
861 query(nullptr),
864 definer(ConvertDefiner(definer)),
866 data(data),
867 flags(flags) {}
878};
881 private:
882 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
884 return static_cast<PropertyHandlerFlags>(
885 static_cast<int>(flags) |
886 static_cast<int>(
888 }
889
890 static IndexedPropertySetterCallback ConvertSetter(std::nullptr_t) {
891 return nullptr;
892 }
893 static IndexedPropertySetterCallback ConvertSetter(
895 return value;
896 }
897 V8_DEPRECATE_SOON("Use IndexedPropertySetterCallback setter instead")
898 static IndexedPropertySetterCallback ConvertSetter(
900 return IndexedPropertySetterCallback(value);
901 }
902
903 static IndexedPropertyDefinerCallback ConvertDefiner(std::nullptr_t) {
904 return nullptr;
905 }
906 static IndexedPropertyDefinerCallback ConvertDefiner(
908 return value;
909 }
910 V8_DEPRECATE_SOON("Use IndexedPropertyDefinerCallback definer instead")
911 static IndexedPropertyDefinerCallback ConvertDefiner(
913 return IndexedPropertyDefinerCallback(value);
914 }
915
916 public:
917 // TODO(https://crbug.com/348660658): cleanup once migration to
918 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
919 template <typename TSetter = std::nullptr_t,
920 typename TDefiner = std::nullptr_t>
921 requires((std::is_same_v<TSetter, std::nullptr_t> ||
922 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
923 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
924 (std::is_same_v<TDefiner, std::nullptr_t> ||
925 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
926 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
929 TSetter setter, //
933 TDefiner definer, //
937 : getter(getter),
938 setter(ConvertSetter(setter)),
939 query(query),
942 definer(ConvertDefiner(definer)),
944 data(data),
945 flags(flags) {}
946
947 // TODO(https://crbug.com/348660658): cleanup once migration to
948 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
949 template <typename TSetter = std::nullptr_t>
950 requires(std::is_same_v<TSetter, std::nullptr_t> ||
951 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
952 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>)
955 TSetter setter = nullptr, //
961 : getter(getter),
962 setter(ConvertSetter(setter)),
963 query(query),
966 definer(nullptr),
967 descriptor(nullptr),
968 data(data),
969 flags(flags) {}
970
971 // TODO(https://crbug.com/348660658): cleanup once migration to
972 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
973 template <typename TSetter = std::nullptr_t,
974 typename TDefiner = std::nullptr_t>
975 requires((std::is_same_v<TSetter, std::nullptr_t> ||
976 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
977 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
978 (std::is_same_v<TDefiner, std::nullptr_t> ||
979 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
980 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
983 TSetter setter, //
987 TDefiner definer, //
990 : getter(getter),
991 setter(ConvertSetter(setter)),
992 query(nullptr),
995 definer(ConvertDefiner(definer)),
997 data(data),
998 flags(flags) {}
999
1000 // TODO(https://crbug.com/348660658): cleanup once migration to
1001 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
1002 template <typename TSetter = std::nullptr_t,
1003 typename TDefiner = std::nullptr_t>
1004 requires((std::is_same_v<TSetter, std::nullptr_t> ||
1005 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
1006 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
1007 (std::is_same_v<TDefiner, std::nullptr_t> ||
1008 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
1009 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
1012 TSetter setter, //
1016 TDefiner definer, //
1021 : getter(getter),
1022 setter(ConvertSetter(setter)),
1023 query(query),
1026 definer(ConvertDefiner(definer)),
1029 data(data),
1030 flags(flags) {}
1042};
1043
1050class V8_EXPORT ObjectTemplate : public Template {
1051 public:
1053 static Local<ObjectTemplate> New(
1054 Isolate* isolate,
1056
1063
1075 void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
1076
1087 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration);
1088
1095 void SetCallAsFunctionHandler(FunctionCallback callback,
1096 Local<Value> data = Local<Value>());
1097
1106 void MarkAsUndetectable();
1107
1116 void SetAccessCheckCallback(AccessCheckCallback callback,
1117 Local<Value> data = Local<Value>());
1118
1125 void SetAccessCheckCallbackAndHandler(
1126 AccessCheckCallback callback,
1127 const NamedPropertyHandlerConfiguration& named_handler,
1128 const IndexedPropertyHandlerConfiguration& indexed_handler,
1129 Local<Value> data = Local<Value>());
1130
1135 int InternalFieldCount() const;
1136
1141 void SetInternalFieldCount(int value);
1142
1146 bool IsImmutableProto() const;
1147
1152 void SetImmutableProto();
1153
1163 void SetCodeLike();
1164 bool IsCodeLike() const;
1165
1172 void SealAndPrepareForPromotionToReadOnly();
1173
1174 V8_INLINE static ObjectTemplate* Cast(Data* data);
1175
1176 private:
1178
1179 static void CheckCast(Data* that);
1180 friend class FunctionTemplate;
1181};
1182
1186class V8_EXPORT DictionaryTemplate final : public Data {
1187 public:
1195 static Local<DictionaryTemplate> New(Isolate* isolate,
1196 std::span<const std::string_view> names);
1197
1208 Local<Context> context, std::span<MaybeLocal<Value>> property_values);
1209
1210 V8_INLINE static DictionaryTemplate* Cast(Data* data);
1211
1212 private:
1213 static void CheckCast(Data* that);
1214
1216};
1217
1226class V8_EXPORT Signature : public Data {
1227 public:
1228 static Local<Signature> New(
1229 Isolate* isolate,
1231
1232 V8_INLINE static Signature* Cast(Data* data);
1233
1234 private:
1235 Signature();
1236
1237 static void CheckCast(Data* that);
1238};
1239
1240// --- Implementation ---
1242void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
1243 PropertyAttribute attributes) {
1245 .ToLocalChecked(),
1246 value, attributes);
1247}
1250#ifdef V8_ENABLE_CHECKS
1251 CheckCast(data);
1252#endif
1253 return reinterpret_cast<FunctionTemplate*>(data);
1254}
1257#ifdef V8_ENABLE_CHECKS
1258 CheckCast(data);
1259#endif
1260 return reinterpret_cast<ObjectTemplate*>(data);
1261}
1264#ifdef V8_ENABLE_CHECKS
1265 CheckCast(data);
1266#endif
1267 return reinterpret_cast<DictionaryTemplate*>(data);
1268}
1271#ifdef V8_ENABLE_CHECKS
1272 CheckCast(data);
1273#endif
1274 return reinterpret_cast<Signature*>(data);
1275}
1276
1277} // namespace v8
1278
1279#endif // INCLUDE_V8_TEMPLATE_H_
Definition: v8-context.h:48
Definition: v8-data.h:18
Definition: v8-template.h:1185
static DictionaryTemplate * Cast(Data *data)
Definition: v8-template.h:1262
Definition: v8-template.h:551
static FunctionTemplate * Cast(Data *data)
Definition: v8-template.h:1248
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:1049
static ObjectTemplate * Cast(Data *data)
Definition: v8-template.h:1255
Definition: v8-function-callback.h:224
Definition: v8-object.h:106
Definition: v8-container.h:148
Definition: v8-template.h:1225
static Signature * Cast(Data *data)
Definition: v8-template.h:1269
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
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:442
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:440
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:707
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Integer > &info) IndexedPropertyQueryCallback
Definition: v8-template.h:387
Definition: v8-template.h:879
IndexedPropertyGetterCallback getter
Definition: v8-template.h:1031
IndexedPropertyDefinerCallback definer
Definition: v8-template.h:1036
PropertyHandlerFlags flags
Definition: v8-template.h:1040
IndexedPropertyDescriptorCallback descriptor
Definition: v8-template.h:1037
IndexedPropertySetterCallback setter
Definition: v8-template.h:1032
IndexedPropertyIndexOfCallback index_of
Definition: v8-template.h:1038
IndexedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:1035
IndexedPropertyQueryCallback query
Definition: v8-template.h:1033
Local< Value > data
Definition: v8-template.h:1039
IndexedPropertyDeleterCallback deleter
Definition: v8-template.h:1034
Definition: v8-template.h:748
NamedPropertyDescriptorCallback descriptor
Definition: v8-template.h:874
Local< Value > data
Definition: v8-template.h:875
NamedPropertyDeleterCallback deleter
Definition: v8-template.h:871
NamedPropertyDefinerCallbackV2 definer
Definition: v8-template.h:873
NamedPropertySetterCallbackV2 setter
Definition: v8-template.h:869
NamedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:872
NamedPropertyQueryCallback query
Definition: v8-template.h:870
NamedPropertyGetterCallback getter
Definition: v8-template.h:868
PropertyHandlerFlags flags
Definition: v8-template.h:876
#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_WARN_UNUSED_RESULT
Definition: v8config.h:681