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;
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 MemorySpan<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 MemorySpan<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
740};
743 private:
744 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
746 return static_cast<PropertyHandlerFlags>(
747 static_cast<int>(flags) |
748 static_cast<int>(
750 }
751
752 static NamedPropertySetterCallbackV2 ConvertSetter(std::nullptr_t) {
753 return nullptr;
754 }
755 static NamedPropertySetterCallbackV2 ConvertSetter(
757 return value;
758 }
759 V8_DEPRECATE_SOON("Use NamedPropertySetterCallbackV2 setter instead")
760 static NamedPropertySetterCallbackV2 ConvertSetter(
762 return NamedPropertySetterCallbackV2(value);
763 }
764
765 static NamedPropertyDefinerCallbackV2 ConvertDefiner(std::nullptr_t) {
766 return nullptr;
767 }
768 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
770 return value;
771 }
772 V8_DEPRECATE_SOON("Use NamedPropertyDefinerCallbackV2 definer instead")
773 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
775 return NamedPropertyDefinerCallbackV2(value);
776 }
777
778 public:
779 // TODO(https://crbug.com/348660658): cleanup once migration to
780 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
781 template <typename TSetter = std::nullptr_t,
782 typename TDefiner = std::nullptr_t>
783 requires((std::is_same_v<TSetter, std::nullptr_t> ||
784 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
785 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
786 (std::is_same_v<TDefiner, std::nullptr_t> ||
787 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
788 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
791 TSetter setter, //
795 TDefiner definer, //
799 : getter(getter),
800 setter(ConvertSetter(setter)),
801 query(query),
804 definer(ConvertDefiner(definer)),
806 data(data),
807 flags(flags) {}
808
809 // TODO(https://crbug.com/348660658): cleanup once migration to
810 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
811 template <typename TSetter = std::nullptr_t>
812 requires(std::is_same_v<TSetter, std::nullptr_t> ||
813 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
814 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>)
817 TSetter setter = nullptr, //
823 : getter(getter),
824 setter(ConvertSetter(setter)),
825 query(query),
828 definer(nullptr),
829 descriptor(nullptr),
830 data(data),
831 flags(flags) {}
832
833 // TODO(https://crbug.com/348660658): cleanup once migration to
834 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
835 template <typename TSetter = std::nullptr_t,
836 typename TDefiner = std::nullptr_t>
837 requires((std::is_same_v<TSetter, std::nullptr_t> ||
838 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
839 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
840 (std::is_same_v<TDefiner, std::nullptr_t> ||
841 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
842 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
845 TSetter setter, //
849 TDefiner definer, //
852 : getter(getter),
853 setter(ConvertSetter(setter)),
854 query(nullptr),
857 definer(ConvertDefiner(definer)),
859 data(data),
860 flags(flags) {}
871};
874 private:
875 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
877 return static_cast<PropertyHandlerFlags>(
878 static_cast<int>(flags) |
879 static_cast<int>(
881 }
882
883 static IndexedPropertySetterCallback ConvertSetter(std::nullptr_t) {
884 return nullptr;
885 }
886 static IndexedPropertySetterCallback ConvertSetter(
888 return value;
889 }
890 V8_DEPRECATE_SOON("Use IndexedPropertySetterCallback setter instead")
891 static IndexedPropertySetterCallback ConvertSetter(
893 return IndexedPropertySetterCallback(value);
894 }
895
896 static IndexedPropertyDefinerCallback ConvertDefiner(std::nullptr_t) {
897 return nullptr;
898 }
899 static IndexedPropertyDefinerCallback ConvertDefiner(
901 return value;
902 }
903 V8_DEPRECATE_SOON("Use IndexedPropertyDefinerCallback definer instead")
904 static IndexedPropertyDefinerCallback ConvertDefiner(
906 return IndexedPropertyDefinerCallback(value);
907 }
908
909 public:
910 // TODO(https://crbug.com/348660658): cleanup once migration to
911 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
912 template <typename TSetter = std::nullptr_t,
913 typename TDefiner = std::nullptr_t>
914 requires((std::is_same_v<TSetter, std::nullptr_t> ||
915 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
916 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
917 (std::is_same_v<TDefiner, std::nullptr_t> ||
918 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
919 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
922 TSetter setter, //
926 TDefiner definer, //
930 : getter(getter),
931 setter(ConvertSetter(setter)),
932 query(query),
935 definer(ConvertDefiner(definer)),
937 data(data),
938 flags(flags) {}
939
940 // TODO(https://crbug.com/348660658): cleanup once migration to
941 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
942 template <typename TSetter = std::nullptr_t>
943 requires(std::is_same_v<TSetter, std::nullptr_t> ||
944 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
945 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>)
948 TSetter setter = nullptr, //
954 : getter(getter),
955 setter(ConvertSetter(setter)),
956 query(query),
959 definer(nullptr),
960 descriptor(nullptr),
961 data(data),
962 flags(flags) {}
963
964 // TODO(https://crbug.com/348660658): cleanup once migration to
965 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
966 template <typename TSetter = std::nullptr_t,
967 typename TDefiner = std::nullptr_t>
968 requires((std::is_same_v<TSetter, std::nullptr_t> ||
969 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
970 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
971 (std::is_same_v<TDefiner, std::nullptr_t> ||
972 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
973 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
976 TSetter setter, //
980 TDefiner definer, //
983 : getter(getter),
984 setter(ConvertSetter(setter)),
985 query(nullptr),
988 definer(ConvertDefiner(definer)),
990 data(data),
991 flags(flags) {}
992
993 // TODO(https://crbug.com/348660658): cleanup once migration to
994 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
995 template <typename TSetter = std::nullptr_t,
996 typename TDefiner = std::nullptr_t>
997 requires((std::is_same_v<TSetter, std::nullptr_t> ||
998 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
999 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
1000 (std::is_same_v<TDefiner, std::nullptr_t> ||
1001 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
1002 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
1005 TSetter setter, //
1009 TDefiner definer, //
1014 : getter(getter),
1015 setter(ConvertSetter(setter)),
1016 query(query),
1019 definer(ConvertDefiner(definer)),
1022 data(data),
1023 flags(flags) {}
1035};
1036
1043class V8_EXPORT ObjectTemplate : public Template {
1044 public:
1046 static Local<ObjectTemplate> New(
1047 Isolate* isolate,
1049
1056
1068 void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
1069
1080 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration);
1081
1088 void SetCallAsFunctionHandler(FunctionCallback callback,
1089 Local<Value> data = Local<Value>());
1090
1099 void MarkAsUndetectable();
1100
1109 void SetAccessCheckCallback(AccessCheckCallback callback,
1110 Local<Value> data = Local<Value>());
1111
1118 void SetAccessCheckCallbackAndHandler(
1119 AccessCheckCallback callback,
1120 const NamedPropertyHandlerConfiguration& named_handler,
1121 const IndexedPropertyHandlerConfiguration& indexed_handler,
1122 Local<Value> data = Local<Value>());
1123
1128 int InternalFieldCount() const;
1129
1134 void SetInternalFieldCount(int value);
1135
1139 bool IsImmutableProto() const;
1140
1145 void SetImmutableProto();
1146
1156 void SetCodeLike();
1157 bool IsCodeLike() const;
1158
1165 void SealAndPrepareForPromotionToReadOnly();
1166
1167 V8_INLINE static ObjectTemplate* Cast(Data* data);
1168
1169 private:
1171
1172 static void CheckCast(Data* that);
1173 friend class FunctionTemplate;
1174};
1175
1179class V8_EXPORT DictionaryTemplate final : public Data {
1180 public:
1188 static Local<DictionaryTemplate> New(
1190
1201 Local<Context> context, MemorySpan<MaybeLocal<Value>> property_values);
1202
1203 V8_INLINE static DictionaryTemplate* Cast(Data* data);
1204
1205 private:
1206 static void CheckCast(Data* that);
1207
1209};
1210
1219class V8_EXPORT Signature : public Data {
1220 public:
1221 static Local<Signature> New(
1222 Isolate* isolate,
1224
1225 V8_INLINE static Signature* Cast(Data* data);
1226
1227 private:
1228 Signature();
1229
1230 static void CheckCast(Data* that);
1231};
1232
1233// --- Implementation ---
1235void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
1236 PropertyAttribute attributes) {
1238 .ToLocalChecked(),
1239 value, attributes);
1240}
1243#ifdef V8_ENABLE_CHECKS
1244 CheckCast(data);
1245#endif
1246 return reinterpret_cast<FunctionTemplate*>(data);
1247}
1250#ifdef V8_ENABLE_CHECKS
1251 CheckCast(data);
1252#endif
1253 return reinterpret_cast<ObjectTemplate*>(data);
1254}
1257#ifdef V8_ENABLE_CHECKS
1258 CheckCast(data);
1259#endif
1260 return reinterpret_cast<DictionaryTemplate*>(data);
1261}
1264#ifdef V8_ENABLE_CHECKS
1265 CheckCast(data);
1266#endif
1267 return reinterpret_cast<Signature*>(data);
1268}
1269
1270} // namespace v8
1271
1272#endif // INCLUDE_V8_TEMPLATE_H_
Definition: v8-context.h:48
Definition: v8-data.h:18
Definition: v8-template.h:1178
static DictionaryTemplate * Cast(Data *data)
Definition: v8-template.h:1255
Definition: v8-template.h:551
static FunctionTemplate * Cast(Data *data)
Definition: v8-template.h:1241
Definition: v8-isolate.h:291
Definition: v8-local-handle.h:366
Definition: v8-local-handle.h:734
Definition: v8-memory-span.h:48
Definition: v8-primitive.h:81
Definition: v8-template.h:1042
static ObjectTemplate * Cast(Data *data)
Definition: v8-template.h:1248
Definition: v8-function-callback.h:224
Definition: v8-object.h:106
Definition: v8-container.h:148
Definition: v8-template.h:1218
static Signature * Cast(Data *data)
Definition: v8-template.h:1262
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:872
IndexedPropertyGetterCallback getter
Definition: v8-template.h:1024
IndexedPropertyDefinerCallback definer
Definition: v8-template.h:1029
PropertyHandlerFlags flags
Definition: v8-template.h:1033
IndexedPropertyDescriptorCallback descriptor
Definition: v8-template.h:1030
IndexedPropertySetterCallback setter
Definition: v8-template.h:1025
IndexedPropertyIndexOfCallback index_of
Definition: v8-template.h:1031
IndexedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:1028
IndexedPropertyQueryCallback query
Definition: v8-template.h:1026
Local< Value > data
Definition: v8-template.h:1032
IndexedPropertyDeleterCallback deleter
Definition: v8-template.h:1027
Definition: v8-template.h:741
NamedPropertyDescriptorCallback descriptor
Definition: v8-template.h:867
Local< Value > data
Definition: v8-template.h:868
NamedPropertyDeleterCallback deleter
Definition: v8-template.h:864
NamedPropertyDefinerCallbackV2 definer
Definition: v8-template.h:866
NamedPropertySetterCallbackV2 setter
Definition: v8-template.h:862
NamedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:865
NamedPropertyQueryCallback query
Definition: v8-template.h:863
NamedPropertyGetterCallback getter
Definition: v8-template.h:861
PropertyHandlerFlags flags
Definition: v8-template.h:869
#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:854
#define V8_INLINE
Definition: v8config.h:508
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:621
#define V8_WARN_UNUSED_RESULT
Definition: v8config.h:678