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 void SetNativeDataProperty(
113 PropertyAttribute attribute = None,
114 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
115 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
116 // TODO(https://crbug.com/348660658): remove once AccessorNameSetterCallback
117 // is removed.
118 void SetNativeDataProperty(
120 nullptr_t setter = nullptr, Local<Value> data = Local<Value>(),
121 PropertyAttribute attribute = None,
122 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
123 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect) {
124 SetNativeDataProperty(
125 name, getter, static_cast<AccessorNameSetterCallbackV2>(setter), data,
126 attribute, getter_side_effect_type, setter_side_effect_type);
127 }
128
133 void SetLazyDataProperty(
135 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
136 SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
137 SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
138
143 void SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic,
144 PropertyAttribute attribute = None);
145
146 private:
147 Template();
149 friend class ObjectTemplate;
150 friend class FunctionTemplate;
151};
152
160enum class Intercepted : uint32_t { kNo = 1, kYes = 0 };
161
206 Local<Name> property, const PropertyCallbackInfo<Value>& info);
207
235 Intercepted (*)(Local<Name> property, Local<Value> value,
236 const PropertyCallbackInfo<Boolean>& info);
237// TODO(https://crbug.com/348660658): deprecate and remove.
239 Intercepted (*)(Local<Name> property, Local<Value> value,
240 const PropertyCallbackInfo<void>& info);
241
269 Local<Name> property, const PropertyCallbackInfo<Integer>& info);
270
296 Local<Name> property, const PropertyCallbackInfo<Boolean>& info);
297
305 void (*)(const PropertyCallbackInfo<Array>& info);
306
334 Intercepted (*)(Local<Name> property, const PropertyDescriptor& desc,
336// TODO(https://crbug.com/348660658): deprecate and remove.
338 Intercepted (*)(Local<Name> property, const PropertyDescriptor& desc,
339 const PropertyCallbackInfo<void>& info);
340
363 Local<Name> property, const PropertyCallbackInfo<Value>& info);
364
369 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
370// TODO(https://crbug.com/348660658): deprecate and remove.
372
377 Intercepted (*)(uint32_t index, Local<Value> value,
379// TODO(https://crbug.com/348660658): deprecate and remove.
381 uint32_t index, Local<Value> value, const PropertyCallbackInfo<void>& info);
382
387 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
388// TODO(https://crbug.com/348660658): deprecate and remove.
390
395 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Boolean>& info);
396// TODO(https://crbug.com/348660658): deprecate and remove.
398
406 void (*)(const PropertyCallbackInfo<Array>& info);
407
412 Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
414// TODO(https://crbug.com/348660658): deprecate and remove.
416 Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
417 const PropertyCallbackInfo<void>& info);
418
423 Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
424// TODO(https://crbug.com/348660658): deprecate and remove.
426
431 uint32_t (*)(Local<Value> value, uint32_t start_index, uint32_t end_index,
432 uint32_t* out_length, const PropertyCallbackInfo<void>& info);
433
438using AccessCheckCallback = bool (*)(Local<Context> accessing_context,
439 Local<Object> accessed_object,
440 Local<Value> data);
442enum class ConstructorBehavior { kThrow, kAllow };
443
551class V8_EXPORT FunctionTemplate : public Template {
552 public:
554 static Local<FunctionTemplate> New(
555 Isolate* isolate, FunctionCallback callback = nullptr,
556 Local<Value> data = Local<Value>(),
557 Local<Signature> signature = Local<Signature>(), int length = 0,
558 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
559 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
560 const CFunction* c_function = nullptr, uint16_t instance_type = 0,
561 uint16_t allowed_receiver_instance_type_range_start = 0,
562 uint16_t allowed_receiver_instance_type_range_end = 0);
563
565 static Local<FunctionTemplate> NewWithCFunctionOverloads(
566 Isolate* isolate, FunctionCallback callback = nullptr,
567 Local<Value> data = Local<Value>(),
568 Local<Signature> signature = Local<Signature>(), int length = 0,
569 ConstructorBehavior behavior = ConstructorBehavior::kAllow,
570 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
571 const MemorySpan<const CFunction>& c_function_overloads = {});
572
576 static Local<FunctionTemplate> NewWithCache(
577 Isolate* isolate, FunctionCallback callback,
578 Local<Private> cache_property, Local<Value> data = Local<Value>(),
579 Local<Signature> signature = Local<Signature>(), int length = 0,
580 SideEffectType side_effect_type = SideEffectType::kHasSideEffect);
581
583 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
584 Local<Context> context);
585
593 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewRemoteInstance();
594
601 void SetCallHandler(
602 FunctionCallback callback, Local<Data> data = {},
603 SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
604 const MemorySpan<const CFunction>& c_function_overloads = {});
605
607 void SetLength(int length);
608
610 Local<ObjectTemplate> InstanceTemplate();
611
617 void Inherit(Local<FunctionTemplate> parent);
618
623 Local<ObjectTemplate> PrototypeTemplate();
624
631 void SetPrototypeProviderTemplate(Local<FunctionTemplate> prototype_provider);
632
638 void SetClassName(Local<String> name);
639
644 void SetInterfaceName(Local<String> name);
645
650 void SetExceptionContext(ExceptionContext context);
651
656 void SetAcceptAnyReceiver(bool value);
657
662 void ReadOnlyPrototype();
663
668 void RemovePrototype();
669
674 bool HasInstance(Local<Value> object);
675
683 bool IsLeafTemplateForApiObject(v8::Local<v8::Value> value) const;
684
691 void SealAndPrepareForPromotionToReadOnly();
692
693 V8_INLINE static FunctionTemplate* Cast(Data* data);
694
695 private:
696 FunctionTemplate();
697
698 static void CheckCast(Data* that);
699 friend class Context;
700 friend class ObjectTemplate;
701};
702
707enum class PropertyHandlerFlags {
711 kNone = 0,
712
718 kNonMasking = 1,
719
724 kOnlyInterceptStrings = 1 << 1,
725
729 kHasNoSideEffect = 1 << 2,
730
739};
742 private:
743 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
745 return static_cast<PropertyHandlerFlags>(
746 static_cast<int>(flags) |
747 static_cast<int>(
749 }
750
751 static NamedPropertySetterCallbackV2 ConvertSetter(nullptr_t) {
752 return nullptr;
753 }
754 static NamedPropertySetterCallbackV2 ConvertSetter(
756 return value;
757 }
758 static NamedPropertySetterCallbackV2 ConvertSetter(
760 return NamedPropertySetterCallbackV2(value);
761 }
762
763 static NamedPropertyDefinerCallbackV2 ConvertDefiner(nullptr_t) {
764 return nullptr;
765 }
766 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
768 return value;
769 }
770 static NamedPropertyDefinerCallbackV2 ConvertDefiner(
772 return NamedPropertyDefinerCallbackV2(value);
773 }
774
775 public:
776 // TODO(https://crbug.com/348660658): cleanup once migration to
777 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
778 template <typename TSetter = nullptr_t, typename TDefiner = nullptr_t>
779 requires((std::is_same_v<TSetter, nullptr_t> ||
780 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
781 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
782 (std::is_same_v<TDefiner, nullptr_t> ||
783 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
784 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
787 TSetter setter, //
791 TDefiner definer, //
795 : getter(getter),
796 setter(ConvertSetter(setter)),
797 query(query),
800 definer(ConvertDefiner(definer)),
802 data(data),
803 flags(flags) {}
804
805 // TODO(https://crbug.com/348660658): cleanup once migration to
806 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
807 template <typename TSetter = nullptr_t>
808 requires(std::is_same_v<TSetter, nullptr_t> ||
809 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
810 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>)
813 TSetter setter = nullptr, //
819 : getter(getter),
820 setter(ConvertSetter(setter)),
821 query(query),
824 definer(nullptr),
825 descriptor(nullptr),
826 data(data),
827 flags(flags) {}
828
829 // TODO(https://crbug.com/348660658): cleanup once migration to
830 // NamedPropertySetterCallbackV2/NamedPropertyDefinerCallbackV2 is done.
831 template <typename TSetter = nullptr_t, typename TDefiner = nullptr_t>
832 requires((std::is_same_v<TSetter, nullptr_t> ||
833 std::is_same_v<TSetter, NamedPropertySetterCallback> ||
834 std::is_same_v<TSetter, NamedPropertySetterCallbackV2>) &&
835 (std::is_same_v<TDefiner, nullptr_t> ||
836 std::is_same_v<TDefiner, NamedPropertyDefinerCallback> ||
837 std::is_same_v<TDefiner, NamedPropertyDefinerCallbackV2>))
840 TSetter setter, //
844 TDefiner definer, //
847 : getter(getter),
848 setter(ConvertSetter(setter)),
849 query(nullptr),
852 definer(ConvertDefiner(definer)),
854 data(data),
855 flags(flags) {}
866};
869 private:
870 static constexpr PropertyHandlerFlags WithNewSignatureFlag(
872 return static_cast<PropertyHandlerFlags>(
873 static_cast<int>(flags) |
874 static_cast<int>(
876 }
877
878 static IndexedPropertySetterCallback ConvertSetter(nullptr_t) {
879 return nullptr;
880 }
881 static IndexedPropertySetterCallback ConvertSetter(
883 return value;
884 }
885 static IndexedPropertySetterCallback ConvertSetter(
887 return IndexedPropertySetterCallback(value);
888 }
889
890 static IndexedPropertyDefinerCallback ConvertDefiner(nullptr_t) {
891 return nullptr;
892 }
893 static IndexedPropertyDefinerCallback ConvertDefiner(
895 return value;
896 }
897 static IndexedPropertyDefinerCallback ConvertDefiner(
899 return IndexedPropertyDefinerCallback(value);
900 }
901
902 public:
903 // TODO(https://crbug.com/348660658): cleanup once migration to
904 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
905 template <typename TSetter = nullptr_t, typename TDefiner = nullptr_t>
906 requires((std::is_same_v<TSetter, nullptr_t> ||
907 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
908 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
909 (std::is_same_v<TDefiner, nullptr_t> ||
910 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
911 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
914 TSetter setter, //
918 TDefiner definer, //
922 : getter(getter),
923 setter(ConvertSetter(setter)),
924 query(query),
927 definer(ConvertDefiner(definer)),
929 data(data),
930 flags(flags) {}
931
932 // TODO(https://crbug.com/348660658): cleanup once migration to
933 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
934 template <typename TSetter = nullptr_t>
935 requires(std::is_same_v<TSetter, nullptr_t> ||
936 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
937 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>)
940 TSetter setter = nullptr, //
946 : getter(getter),
947 setter(ConvertSetter(setter)),
948 query(query),
951 definer(nullptr),
952 descriptor(nullptr),
953 data(data),
954 flags(flags) {}
955
956 // TODO(https://crbug.com/348660658): cleanup once migration to
957 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
958 template <typename TSetter = nullptr_t, typename TDefiner = nullptr_t>
959 requires((std::is_same_v<TSetter, nullptr_t> ||
960 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
961 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
962 (std::is_same_v<TDefiner, nullptr_t> ||
963 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
964 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
967 TSetter setter, //
971 TDefiner definer, //
974 : getter(getter),
975 setter(ConvertSetter(setter)),
976 query(nullptr),
979 definer(ConvertDefiner(definer)),
981 data(data),
982 flags(flags) {}
983
984 // TODO(https://crbug.com/348660658): cleanup once migration to
985 // IndexedPropertySetterCallback/IndexedPropertyDefinerCallback is done.
986 template <typename TSetter = nullptr_t, typename TDefiner = nullptr_t>
987 requires((std::is_same_v<TSetter, nullptr_t> ||
988 std::is_same_v<TSetter, IndexedPropertySetterCallback> ||
989 std::is_same_v<TSetter, IndexedPropertySetterCallbackV2>) &&
990 (std::is_same_v<TDefiner, nullptr_t> ||
991 std::is_same_v<TDefiner, IndexedPropertyDefinerCallback> ||
992 std::is_same_v<TDefiner, IndexedPropertyDefinerCallbackV2>))
995 TSetter setter, //
999 TDefiner definer, //
1004 : getter(getter),
1005 setter(ConvertSetter(setter)),
1006 query(query),
1009 definer(ConvertDefiner(definer)),
1012 data(data),
1013 flags(flags) {}
1025};
1026
1033class V8_EXPORT ObjectTemplate : public Template {
1034 public:
1036 static Local<ObjectTemplate> New(
1037 Isolate* isolate,
1039
1046
1058 void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
1059
1070 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration);
1071
1078 void SetCallAsFunctionHandler(FunctionCallback callback,
1079 Local<Value> data = Local<Value>());
1080
1089 void MarkAsUndetectable();
1090
1099 void SetAccessCheckCallback(AccessCheckCallback callback,
1100 Local<Value> data = Local<Value>());
1101
1108 void SetAccessCheckCallbackAndHandler(
1109 AccessCheckCallback callback,
1110 const NamedPropertyHandlerConfiguration& named_handler,
1111 const IndexedPropertyHandlerConfiguration& indexed_handler,
1112 Local<Value> data = Local<Value>());
1113
1118 int InternalFieldCount() const;
1119
1124 void SetInternalFieldCount(int value);
1125
1129 bool IsImmutableProto() const;
1130
1135 void SetImmutableProto();
1136
1146 void SetCodeLike();
1147 bool IsCodeLike() const;
1148
1155 void SealAndPrepareForPromotionToReadOnly();
1156
1157 V8_INLINE static ObjectTemplate* Cast(Data* data);
1158
1159 private:
1161
1162 static void CheckCast(Data* that);
1163 friend class FunctionTemplate;
1164};
1165
1169class V8_EXPORT DictionaryTemplate final : public Data {
1170 public:
1178 static Local<DictionaryTemplate> New(
1180
1191 Local<Context> context, MemorySpan<MaybeLocal<Value>> property_values);
1192
1193 V8_INLINE static DictionaryTemplate* Cast(Data* data);
1194
1195 private:
1196 static void CheckCast(Data* that);
1197
1199};
1200
1209class V8_EXPORT Signature : public Data {
1210 public:
1211 static Local<Signature> New(
1212 Isolate* isolate,
1214
1215 V8_INLINE static Signature* Cast(Data* data);
1216
1217 private:
1218 Signature();
1219
1220 static void CheckCast(Data* that);
1221};
1222
1223// --- Implementation ---
1225void Template::Set(Isolate* isolate, const char* name, Local<Data> value,
1226 PropertyAttribute attributes) {
1228 .ToLocalChecked(),
1229 value, attributes);
1230}
1233#ifdef V8_ENABLE_CHECKS
1234 CheckCast(data);
1235#endif
1236 return reinterpret_cast<FunctionTemplate*>(data);
1237}
1240#ifdef V8_ENABLE_CHECKS
1241 CheckCast(data);
1242#endif
1243 return reinterpret_cast<ObjectTemplate*>(data);
1244}
1247#ifdef V8_ENABLE_CHECKS
1248 CheckCast(data);
1249#endif
1250 return reinterpret_cast<DictionaryTemplate*>(data);
1251}
1254#ifdef V8_ENABLE_CHECKS
1255 CheckCast(data);
1256#endif
1257 return reinterpret_cast<Signature*>(data);
1258}
1259
1260} // namespace v8
1261
1262#endif // INCLUDE_V8_TEMPLATE_H_
Definition: v8-context.h:48
Definition: v8-data.h:18
Definition: v8-template.h:1168
static DictionaryTemplate * Cast(Data *data)
Definition: v8-template.h:1245
Definition: v8-template.h:550
static FunctionTemplate * Cast(Data *data)
Definition: v8-template.h:1231
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-template.h:1032
static ObjectTemplate * Cast(Data *data)
Definition: v8-template.h:1238
Definition: v8-function-callback.h:224
Definition: v8-object.h:106
Definition: v8-container.h:148
Definition: v8-template.h:1208
static Signature * Cast(Data *data)
Definition: v8-template.h:1252
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: 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:239
Intercepted(*)(uint32_t index, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) IndexedPropertySetterCallback
Definition: v8-template.h:377
SideEffectType
Definition: v8-object.h:231
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyDescriptorCallback
Definition: v8-template.h:362
Intercepted(*)(uint32_t index, Local< Value > value, const PropertyCallbackInfo< void > &info) IndexedPropertySetterCallbackV2
Definition: v8-template.h:380
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Value > &info) NamedPropertyGetterCallback
Definition: v8-template.h:205
Intercepted(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< void > &info) NamedPropertyDefinerCallback
Definition: v8-template.h:338
IndexedPropertyDescriptorCallback IndexedPropertyDescriptorCallbackV2
Definition: v8-template.h:424
IndexedPropertyGetterCallback IndexedPropertyGetterCallbackV2
Definition: v8-template.h:370
Intercepted(*)(uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDefinerCallback
Definition: v8-template.h:412
Intrinsic
Definition: v8-template.h:41
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Boolean > &info) IndexedPropertyDeleterCallback
Definition: v8-template.h:394
void(*)(const PropertyCallbackInfo< Array > &info) NamedPropertyEnumeratorCallback
Definition: v8-template.h:304
IndexedPropertyDeleterCallback IndexedPropertyDeleterCallbackV2
Definition: v8-template.h:396
ConstructorBehavior
Definition: v8-template.h:441
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:416
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyGetterCallback
Definition: v8-template.h:368
Intercepted(*)(Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< Boolean > &info) NamedPropertyDefinerCallbackV2
Definition: v8-template.h:334
void(*)(const PropertyCallbackInfo< Array > &info) IndexedPropertyEnumeratorCallback
Definition: v8-template.h:405
IndexedPropertyQueryCallback IndexedPropertyQueryCallbackV2
Definition: v8-template.h:388
void(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) AccessorNameSetterCallbackV2
Definition: v8-object.h:203
Intercepted
Definition: v8-template.h:159
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Integer > &info) NamedPropertyQueryCallback
Definition: v8-template.h:268
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:431
bool(*)(Local< Context > accessing_context, Local< Object > accessed_object, Local< Value > data) AccessCheckCallback
Definition: v8-template.h:439
Intercepted(*)(Local< Name > property, const PropertyCallbackInfo< Boolean > &info) NamedPropertyDeleterCallback
Definition: v8-template.h:295
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Value > &info) IndexedPropertyDescriptorCallback
Definition: v8-template.h:422
Intercepted(*)(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Boolean > &info) NamedPropertySetterCallbackV2
Definition: v8-template.h:235
PropertyHandlerFlags
Definition: v8-template.h:706
Intercepted(*)(uint32_t index, const PropertyCallbackInfo< Integer > &info) IndexedPropertyQueryCallback
Definition: v8-template.h:386
Definition: v8-template.h:867
IndexedPropertyGetterCallback getter
Definition: v8-template.h:1014
IndexedPropertyDefinerCallback definer
Definition: v8-template.h:1019
PropertyHandlerFlags flags
Definition: v8-template.h:1023
IndexedPropertyDescriptorCallback descriptor
Definition: v8-template.h:1020
IndexedPropertySetterCallback setter
Definition: v8-template.h:1015
IndexedPropertyIndexOfCallback index_of
Definition: v8-template.h:1021
IndexedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:1018
IndexedPropertyQueryCallback query
Definition: v8-template.h:1016
Local< Value > data
Definition: v8-template.h:1022
IndexedPropertyDeleterCallback deleter
Definition: v8-template.h:1017
Definition: v8-template.h:740
NamedPropertyDescriptorCallback descriptor
Definition: v8-template.h:862
Local< Value > data
Definition: v8-template.h:863
NamedPropertyDeleterCallback deleter
Definition: v8-template.h:859
NamedPropertyDefinerCallbackV2 definer
Definition: v8-template.h:861
NamedPropertySetterCallbackV2 setter
Definition: v8-template.h:857
NamedPropertyEnumeratorCallback enumerator
Definition: v8-template.h:860
NamedPropertyQueryCallback query
Definition: v8-template.h:858
NamedPropertyGetterCallback getter
Definition: v8-template.h:856
PropertyHandlerFlags flags
Definition: v8-template.h:864
#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_WARN_UNUSED_RESULT
Definition: v8config.h:678