libv8-node 22.7.0.4-arm64-darwin → 24.1.0.0-arm64-darwin

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libv8/node/version.rb +3 -3
  3. data/vendor/v8/arm64-darwin/libv8/obj/libv8_monolith.a +0 -0
  4. data/vendor/v8/include/cppgc/allocation.h +11 -13
  5. data/vendor/v8/include/cppgc/default-platform.h +3 -2
  6. data/vendor/v8/include/cppgc/garbage-collected.h +8 -0
  7. data/vendor/v8/include/cppgc/heap-consistency.h +1 -1
  8. data/vendor/v8/include/cppgc/heap-statistics.h +2 -0
  9. data/vendor/v8/include/cppgc/internal/api-constants.h +2 -14
  10. data/vendor/v8/include/cppgc/internal/base-page-handle.h +2 -4
  11. data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +0 -4
  12. data/vendor/v8/include/cppgc/internal/caged-heap.h +0 -4
  13. data/vendor/v8/include/cppgc/internal/compiler-specific.h +9 -1
  14. data/vendor/v8/include/cppgc/internal/conditional-stack-allocated.h +41 -0
  15. data/vendor/v8/include/cppgc/internal/gc-info.h +12 -10
  16. data/vendor/v8/include/cppgc/internal/logging.h +3 -3
  17. data/vendor/v8/include/cppgc/internal/member-storage.h +69 -20
  18. data/vendor/v8/include/cppgc/internal/name-trait.h +5 -1
  19. data/vendor/v8/include/cppgc/internal/persistent-node.h +8 -3
  20. data/vendor/v8/include/cppgc/internal/pointer-policies.h +48 -11
  21. data/vendor/v8/include/cppgc/macros.h +21 -0
  22. data/vendor/v8/include/cppgc/member.h +70 -36
  23. data/vendor/v8/include/cppgc/name-provider.h +10 -0
  24. data/vendor/v8/include/cppgc/platform.h +11 -0
  25. data/vendor/v8/include/cppgc/type-traits.h +1 -0
  26. data/vendor/v8/include/cppgc/visitor.h +25 -1
  27. data/vendor/v8/include/libplatform/libplatform-export.h +2 -2
  28. data/vendor/v8/include/libplatform/v8-tracing.h +0 -1
  29. data/vendor/v8/include/v8-array-buffer.h +143 -46
  30. data/vendor/v8/include/v8-callbacks.h +94 -31
  31. data/vendor/v8/include/v8-context.h +48 -15
  32. data/vendor/v8/include/v8-cppgc.h +5 -56
  33. data/vendor/v8/include/v8-data.h +5 -0
  34. data/vendor/v8/include/v8-date.h +9 -0
  35. data/vendor/v8/include/v8-debug.h +11 -0
  36. data/vendor/v8/include/v8-embedder-heap.h +1 -29
  37. data/vendor/v8/include/v8-exception.h +72 -0
  38. data/vendor/v8/include/v8-external-memory-accounter.h +60 -0
  39. data/vendor/v8/include/v8-fast-api-calls.h +41 -206
  40. data/vendor/v8/include/v8-function-callback.h +190 -78
  41. data/vendor/v8/include/v8-function.h +11 -3
  42. data/vendor/v8/include/v8-handle-base.h +20 -2
  43. data/vendor/v8/include/v8-initialization.h +26 -1
  44. data/vendor/v8/include/v8-inspector.h +10 -3
  45. data/vendor/v8/include/v8-internal.h +638 -315
  46. data/vendor/v8/include/v8-isolate.h +275 -189
  47. data/vendor/v8/include/v8-local-handle.h +69 -42
  48. data/vendor/v8/include/v8-maybe.h +2 -1
  49. data/vendor/v8/include/v8-memory-span.h +149 -24
  50. data/vendor/v8/include/v8-message.h +9 -22
  51. data/vendor/v8/include/v8-metrics.h +14 -0
  52. data/vendor/v8/include/v8-microtask-queue.h +0 -5
  53. data/vendor/v8/include/v8-object.h +291 -37
  54. data/vendor/v8/include/v8-persistent-handle.h +17 -36
  55. data/vendor/v8/include/v8-platform.h +66 -45
  56. data/vendor/v8/include/v8-primitive.h +221 -5
  57. data/vendor/v8/include/v8-profiler.h +51 -2
  58. data/vendor/v8/include/v8-promise.h +2 -2
  59. data/vendor/v8/include/v8-proxy.h +0 -1
  60. data/vendor/v8/include/v8-regexp.h +0 -1
  61. data/vendor/v8/include/v8-sandbox.h +173 -0
  62. data/vendor/v8/include/v8-script.h +65 -17
  63. data/vendor/v8/include/v8-snapshot.h +38 -2
  64. data/vendor/v8/include/v8-source-location.h +6 -1
  65. data/vendor/v8/include/v8-template.h +111 -263
  66. data/vendor/v8/include/v8-trace-categories.h +23 -0
  67. data/vendor/v8/include/v8-traced-handle.h +20 -32
  68. data/vendor/v8/include/v8-typed-array.h +6 -10
  69. data/vendor/v8/include/v8-unwinder-state.h +2 -3
  70. data/vendor/v8/include/v8-unwinder.h +2 -1
  71. data/vendor/v8/include/v8-util.h +1 -117
  72. data/vendor/v8/include/v8-value-serializer-version.h +3 -3
  73. data/vendor/v8/include/v8-value.h +21 -2
  74. data/vendor/v8/include/v8-version.h +4 -4
  75. data/vendor/v8/include/v8-wasm.h +27 -0
  76. data/vendor/v8/include/v8-weak-callback-info.h +20 -12
  77. data/vendor/v8/include/v8.h +3 -3
  78. data/vendor/v8/include/v8config.h +83 -45
  79. metadata +7 -7
  80. data/vendor/v8/include/cppgc/ephemeron-pair.h +0 -30
@@ -9,6 +9,7 @@
9
9
  #include <string_view>
10
10
 
11
11
  #include "v8-data.h" // NOLINT(build/include_directory)
12
+ #include "v8-exception.h" // NOLINT(build/include_directory)
12
13
  #include "v8-function-callback.h" // NOLINT(build/include_directory)
13
14
  #include "v8-local-handle.h" // NOLINT(build/include_directory)
14
15
  #include "v8-memory-span.h" // NOLINT(build/include_directory)
@@ -60,6 +61,20 @@ class V8_EXPORT Template : public Data {
60
61
  V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value,
61
62
  PropertyAttribute attributes = None);
62
63
 
64
+ /**
65
+ * Sets an "accessor property" on the object template, see
66
+ * https://tc39.es/ecma262/#sec-object-type.
67
+ *
68
+ * Whenever the property with the given name is accessed on objects
69
+ * created from this ObjectTemplate the getter and setter functions
70
+ * are called.
71
+ *
72
+ * \param name The name of the property for which an accessor is added.
73
+ * \param getter The callback to invoke when getting the property.
74
+ * \param setter The callback to invoke when setting the property.
75
+ * \param attribute The attributes of the property for which an accessor
76
+ * is added.
77
+ */
63
78
  void SetAccessorProperty(
64
79
  Local<Name> name,
65
80
  Local<FunctionTemplate> getter = Local<FunctionTemplate>(),
@@ -67,12 +82,18 @@ class V8_EXPORT Template : public Data {
67
82
  PropertyAttribute attribute = None);
68
83
 
69
84
  /**
85
+ * Sets a "data property" on the object template, see
86
+ * https://tc39.es/ecma262/#sec-object-type.
87
+ *
70
88
  * Whenever the property with the given name is accessed on objects
71
89
  * created from this Template the getter and setter callbacks
72
90
  * are called instead of getting and setting the property directly
73
91
  * on the JavaScript object.
92
+ * Note that in case a property is written via a "child" object, the setter
93
+ * will not be called according to the JavaScript specification. See
94
+ * https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-set-p-v-receiver.
74
95
  *
75
- * \param name The name of the property for which an accessor is added.
96
+ * \param name The name of the data property for which an accessor is added.
76
97
  * \param getter The callback to invoke when getting the property.
77
98
  * \param setter The callback to invoke when setting the property.
78
99
  * \param data A piece of data that will be passed to the getter and setter
@@ -80,27 +101,6 @@ class V8_EXPORT Template : public Data {
80
101
  * \param attribute The attributes of the property for which an accessor
81
102
  * is added.
82
103
  */
83
- V8_DEPRECATE_SOON("Use SetNativeDataProperty without AccessControl instead")
84
- void SetNativeDataProperty(
85
- Local<String> name, AccessorGetterCallback getter,
86
- AccessorSetterCallback setter, Local<Value> data,
87
- PropertyAttribute attribute, AccessControl settings,
88
- SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
89
- SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
90
- V8_DEPRECATE_SOON("Use SetNativeDataProperty without AccessControl instead")
91
- void SetNativeDataProperty(
92
- Local<Name> name, AccessorNameGetterCallback getter,
93
- AccessorNameSetterCallback setter, Local<Value> data,
94
- PropertyAttribute attribute, AccessControl settings,
95
- SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
96
- SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
97
- V8_DEPRECATE_SOON("Use SetNativeDataProperty with Local<Name> instead")
98
- void SetNativeDataProperty(
99
- Local<String> name, AccessorGetterCallback getter,
100
- AccessorSetterCallback setter = nullptr,
101
- Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
102
- SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
103
- SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
104
104
  void SetNativeDataProperty(
105
105
  Local<Name> name, AccessorNameGetterCallback getter,
106
106
  AccessorNameSetterCallback setter = nullptr,
@@ -142,7 +142,8 @@ enum class Intercepted : uint8_t { kNo = 0, kYes = 1 };
142
142
  * Interceptor for get requests on an object.
143
143
  *
144
144
  * If the interceptor handles the request (i.e. the property should not be
145
- * looked up beyond the interceptor) it should
145
+ * looked up beyond the interceptor or in case an exception was thrown) it
146
+ * should
146
147
  * - (optionally) use info.GetReturnValue().Set()` to set the return value
147
148
  * (by default the result is set to v8::Undefined),
148
149
  * - return `Intercepted::kYes`.
@@ -194,7 +195,8 @@ using GenericNamedPropertyGetterCallback =
194
195
  * Interceptor for set requests on an object.
195
196
  *
196
197
  * If the interceptor handles the request (i.e. the property should not be
197
- * looked up beyond the interceptor) it should return `Intercepted::kYes`.
198
+ * looked up beyond the interceptor or in case an exception was thrown) it
199
+ * should return `Intercepted::kYes`.
198
200
  * If the interceptor does not handle the request it must return
199
201
  * `Intercepted::kNo` and it must not produce side effects.
200
202
  *
@@ -229,9 +231,10 @@ using GenericNamedPropertySetterCallback =
229
231
  * defineProperty().
230
232
  *
231
233
  * If the interceptor handles the request (i.e. the property should not be
232
- * looked up beyond the interceptor) it should
233
- * - use `info.GetReturnValue().Set()` to set to an Integer value encoding
234
- * a `v8::PropertyAttribute` bits,
234
+ * looked up beyond the interceptor or in case an exception was thrown) it
235
+ * should
236
+ * - (optionally) use `info.GetReturnValue().Set()` to set to an Integer
237
+ * value encoding a `v8::PropertyAttribute` bits,
235
238
  * - return `Intercepted::kYes`.
236
239
  * If the interceptor does not handle the request it must return
237
240
  * `Intercepted::kNo` and it must not produce side effects.
@@ -263,9 +266,10 @@ using GenericNamedPropertyQueryCallback =
263
266
  * Interceptor for delete requests on an object.
264
267
  *
265
268
  * If the interceptor handles the request (i.e. the property should not be
266
- * looked up beyond the interceptor) it should
267
- * - use `info.GetReturnValue().Set()` to set to a Boolean value indicating
268
- * whether the property deletion was successful or not,
269
+ * looked up beyond the interceptor or in case an exception was thrown) it
270
+ * should
271
+ * - (optionally) use `info.GetReturnValue().Set()` to set to a Boolean value
272
+ * indicating whether the property deletion was successful or not,
269
273
  * - return `Intercepted::kYes`.
270
274
  * If the interceptor does not handle the request it must return
271
275
  * `Intercepted::kNo` and it must not produce side effects.
@@ -311,7 +315,8 @@ using GenericNamedPropertyEnumeratorCallback = NamedPropertyEnumeratorCallback;
311
315
  * Interceptor for defineProperty requests on an object.
312
316
  *
313
317
  * If the interceptor handles the request (i.e. the property should not be
314
- * looked up beyond the interceptor) it should return `Intercepted::kYes`.
318
+ * looked up beyond the interceptor or in case an exception was thrown) it
319
+ * should return `Intercepted::kYes`.
315
320
  * If the interceptor does not handle the request it must return
316
321
  * `Intercepted::kNo` and it must not produce side effects.
317
322
  *
@@ -344,10 +349,11 @@ using GenericNamedPropertyDefinerCallback =
344
349
  * Interceptor for getOwnPropertyDescriptor requests on an object.
345
350
  *
346
351
  * If the interceptor handles the request (i.e. the property should not be
347
- * looked up beyond the interceptor) it should
348
- * - use `info.GetReturnValue().Set()` to set the return value which must be
349
- * object that can be converted to a PropertyDescriptor (for example,
350
- * a value returned by `v8::Object::getOwnPropertyDescriptor`),
352
+ * looked up beyond the interceptor or in case an exception was thrown) it
353
+ * should
354
+ * - (optionally) use `info.GetReturnValue().Set()` to set the return value
355
+ * which must be object that can be converted to a PropertyDescriptor (for
356
+ * example, a value returned by `v8::Object::getOwnPropertyDescriptor`),
351
357
  * - return `Intercepted::kYes`.
352
358
  * If the interceptor does not handle the request it must return
353
359
  * `Intercepted::kNo` and it must not produce side effects.
@@ -379,7 +385,7 @@ using GenericNamedPropertyDescriptorCallback =
379
385
  // removed.
380
386
 
381
387
  /**
382
- * See `v8::GenericNamedPropertyGetterCallback`.
388
+ * See `v8::NamedPropertyGetterCallback`.
383
389
  */
384
390
  using IndexedPropertyGetterCallbackV2 =
385
391
  Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
@@ -388,7 +394,7 @@ using IndexedPropertyGetterCallback =
388
394
  void (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
389
395
 
390
396
  /**
391
- * See `v8::GenericNamedPropertySetterCallback`.
397
+ * See `v8::NamedPropertySetterCallback`.
392
398
  */
393
399
  using IndexedPropertySetterCallbackV2 = Intercepted (*)(
394
400
  uint32_t index, Local<Value> value, const PropertyCallbackInfo<void>& info);
@@ -398,7 +404,7 @@ using IndexedPropertySetterCallback =
398
404
  const PropertyCallbackInfo<Value>& info);
399
405
 
400
406
  /**
401
- * See `v8::GenericNamedPropertyQueryCallback`.
407
+ * See `v8::NamedPropertyQueryCallback`.
402
408
  */
403
409
  using IndexedPropertyQueryCallbackV2 =
404
410
  Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
@@ -407,7 +413,7 @@ using IndexedPropertyQueryCallback =
407
413
  void (*)(uint32_t index, const PropertyCallbackInfo<Integer>& info);
408
414
 
409
415
  /**
410
- * See `v8::GenericNamedPropertyDeleterCallback`.
416
+ * See `v8::NamedPropertyDeleterCallback`.
411
417
  */
412
418
  using IndexedPropertyDeleterCallbackV2 =
413
419
  Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Boolean>& info);
@@ -425,7 +431,7 @@ using IndexedPropertyEnumeratorCallback =
425
431
  void (*)(const PropertyCallbackInfo<Array>& info);
426
432
 
427
433
  /**
428
- * See `v8::GenericNamedPropertyDefinerCallback`.
434
+ * See `v8::NamedPropertyDefinerCallback`.
429
435
  */
430
436
  using IndexedPropertyDefinerCallbackV2 =
431
437
  Intercepted (*)(uint32_t index, const PropertyDescriptor& desc,
@@ -436,7 +442,7 @@ using IndexedPropertyDefinerCallback =
436
442
  const PropertyCallbackInfo<Value>& info);
437
443
 
438
444
  /**
439
- * See `v8::GenericNamedPropertyDescriptorCallback`.
445
+ * See `v8::NamedPropertyDescriptorCallback`.
440
446
  */
441
447
  using IndexedPropertyDescriptorCallbackV2 =
442
448
  Intercepted (*)(uint32_t index, const PropertyCallbackInfo<Value>& info);
@@ -489,8 +495,8 @@ enum class ConstructorBehavior { kThrow, kAllow };
489
495
  * proto_t->Set(isolate, "proto_const", v8::Number::New(isolate, 2));
490
496
  *
491
497
  * v8::Local<v8::ObjectTemplate> instance_t = t->InstanceTemplate();
492
- * instance_t->SetAccessor(
493
- String::NewFromUtf8Literal(isolate, "instance_accessor"),
498
+ * instance_t->SetNativeDataProperty(
499
+ * String::NewFromUtf8Literal(isolate, "instance_accessor"),
494
500
  * InstanceAccessorCallback);
495
501
  * instance_t->SetHandler(
496
502
  * NamedPropertyHandlerConfiguration(PropertyHandlerCallback));
@@ -650,6 +656,18 @@ class V8_EXPORT FunctionTemplate : public Template {
650
656
  */
651
657
  void SetClassName(Local<String> name);
652
658
 
659
+ /**
660
+ * Set the interface name of the FunctionTemplate. This is provided as
661
+ * contextual information in an ExceptionPropagationMessage to the embedder.
662
+ */
663
+ void SetInterfaceName(Local<String> name);
664
+
665
+ /**
666
+ * Provides information on the type of FunctionTemplate for embedder
667
+ * exception handling.
668
+ */
669
+ void SetExceptionContext(ExceptionContext context);
670
+
653
671
  /**
654
672
  * When set to true, no access check will be performed on the receiver of a
655
673
  * function call. Currently defaults to true, but this is subject to change.
@@ -683,6 +701,14 @@ class V8_EXPORT FunctionTemplate : public Template {
683
701
  */
684
702
  bool IsLeafTemplateForApiObject(v8::Local<v8::Value> value) const;
685
703
 
704
+ /**
705
+ * Checks if the object can be promoted to read only space, seals it and
706
+ * prepares for promotion.
707
+ *
708
+ * This is an experimental feature and may still change significantly.
709
+ */
710
+ void SealAndPrepareForPromotionToReadOnly();
711
+
686
712
  V8_INLINE static FunctionTemplate* Cast(Data* data);
687
713
 
688
714
  private:
@@ -752,34 +778,13 @@ struct NamedPropertyHandlerConfiguration {
752
778
  NamedPropertyDescriptorCallback descriptor, //
753
779
  Local<Value> data = Local<Value>(),
754
780
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
755
- : getter(reinterpret_cast<void*>(getter)),
756
- setter(reinterpret_cast<void*>(setter)),
757
- query(reinterpret_cast<void*>(query)),
758
- deleter(reinterpret_cast<void*>(deleter)),
759
- enumerator(enumerator),
760
- definer(reinterpret_cast<void*>(definer)),
761
- descriptor(reinterpret_cast<void*>(descriptor)),
762
- data(data),
763
- flags(WithNewSignatureFlag(flags)) {}
764
-
765
- // This variant will be deprecated soon.
766
- NamedPropertyHandlerConfiguration(
767
- GenericNamedPropertyGetterCallback getter,
768
- GenericNamedPropertySetterCallback setter,
769
- GenericNamedPropertyQueryCallback query,
770
- GenericNamedPropertyDeleterCallback deleter,
771
- GenericNamedPropertyEnumeratorCallback enumerator,
772
- GenericNamedPropertyDefinerCallback definer,
773
- GenericNamedPropertyDescriptorCallback descriptor,
774
- Local<Value> data = Local<Value>(),
775
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
776
- : getter(reinterpret_cast<void*>(getter)),
777
- setter(reinterpret_cast<void*>(setter)),
778
- query(reinterpret_cast<void*>(query)),
779
- deleter(reinterpret_cast<void*>(deleter)),
781
+ : getter(getter),
782
+ setter(setter),
783
+ query(query),
784
+ deleter(deleter),
780
785
  enumerator(enumerator),
781
- definer(reinterpret_cast<void*>(definer)),
782
- descriptor(reinterpret_cast<void*>(descriptor)),
786
+ definer(definer),
787
+ descriptor(descriptor),
783
788
  data(data),
784
789
  flags(flags) {}
785
790
 
@@ -791,29 +796,10 @@ struct NamedPropertyHandlerConfiguration {
791
796
  NamedPropertyEnumeratorCallback enumerator = nullptr,
792
797
  Local<Value> data = Local<Value>(),
793
798
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
794
- : getter(reinterpret_cast<void*>(getter)),
795
- setter(reinterpret_cast<void*>(setter)),
796
- query(reinterpret_cast<void*>(query)),
797
- deleter(reinterpret_cast<void*>(deleter)),
798
- enumerator(enumerator),
799
- definer(nullptr),
800
- descriptor(nullptr),
801
- data(data),
802
- flags(WithNewSignatureFlag(flags)) {}
803
-
804
- // This variant will be deprecated soon.
805
- explicit NamedPropertyHandlerConfiguration(
806
- GenericNamedPropertyGetterCallback getter,
807
- GenericNamedPropertySetterCallback setter = nullptr,
808
- GenericNamedPropertyQueryCallback query = nullptr,
809
- GenericNamedPropertyDeleterCallback deleter = nullptr,
810
- GenericNamedPropertyEnumeratorCallback enumerator = nullptr,
811
- Local<Value> data = Local<Value>(),
812
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
813
- : getter(reinterpret_cast<void*>(getter)),
814
- setter(reinterpret_cast<void*>(setter)),
815
- query(reinterpret_cast<void*>(query)),
816
- deleter(reinterpret_cast<void*>(deleter)),
799
+ : getter(getter),
800
+ setter(setter),
801
+ query(query),
802
+ deleter(deleter),
817
803
  enumerator(enumerator),
818
804
  definer(nullptr),
819
805
  descriptor(nullptr),
@@ -829,43 +815,23 @@ struct NamedPropertyHandlerConfiguration {
829
815
  NamedPropertyDefinerCallback definer, //
830
816
  Local<Value> data = Local<Value>(),
831
817
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
832
- : getter(reinterpret_cast<void*>(getter)),
833
- setter(reinterpret_cast<void*>(setter)),
834
- query(nullptr),
835
- deleter(reinterpret_cast<void*>(deleter)),
836
- enumerator(enumerator),
837
- definer(reinterpret_cast<void*>(definer)),
838
- descriptor(reinterpret_cast<void*>(descriptor)),
839
- data(data),
840
- flags(WithNewSignatureFlag(flags)) {}
841
-
842
- // This variant will be deprecated soon.
843
- NamedPropertyHandlerConfiguration(
844
- GenericNamedPropertyGetterCallback getter,
845
- GenericNamedPropertySetterCallback setter,
846
- GenericNamedPropertyDescriptorCallback descriptor,
847
- GenericNamedPropertyDeleterCallback deleter,
848
- GenericNamedPropertyEnumeratorCallback enumerator,
849
- GenericNamedPropertyDefinerCallback definer,
850
- Local<Value> data = Local<Value>(),
851
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
852
- : getter(reinterpret_cast<void*>(getter)),
853
- setter(reinterpret_cast<void*>(setter)),
818
+ : getter(getter),
819
+ setter(setter),
854
820
  query(nullptr),
855
- deleter(reinterpret_cast<void*>(deleter)),
821
+ deleter(deleter),
856
822
  enumerator(enumerator),
857
- definer(reinterpret_cast<void*>(definer)),
858
- descriptor(reinterpret_cast<void*>(descriptor)),
823
+ definer(definer),
824
+ descriptor(descriptor),
859
825
  data(data),
860
826
  flags(flags) {}
861
827
 
862
- void* getter; // [Generic]NamedPropertyGetterCallback
863
- void* setter; // [Generic]NamedPropertySetterCallback
864
- void* query; // [Generic]NamedPropertyQueryCallback
865
- void* deleter; // [Generic]NamedPropertyDeleterCallback
828
+ NamedPropertyGetterCallback getter;
829
+ NamedPropertySetterCallback setter;
830
+ NamedPropertyQueryCallback query;
831
+ NamedPropertyDeleterCallback deleter;
866
832
  NamedPropertyEnumeratorCallback enumerator;
867
- void* definer; // [Generic]NamedPropertyDefinerCallback
868
- void* descriptor; // [Generic]NamedPropertyDescriptorCallback
833
+ NamedPropertyDefinerCallback definer;
834
+ NamedPropertyDescriptorCallback descriptor;
869
835
  Local<Value> data;
870
836
  PropertyHandlerFlags flags;
871
837
  };
@@ -891,34 +857,13 @@ struct IndexedPropertyHandlerConfiguration {
891
857
  IndexedPropertyDescriptorCallbackV2 descriptor, //
892
858
  Local<Value> data = Local<Value>(),
893
859
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
894
- : getter(reinterpret_cast<void*>(getter)),
895
- setter(reinterpret_cast<void*>(setter)),
896
- query(reinterpret_cast<void*>(query)),
897
- deleter(reinterpret_cast<void*>(deleter)),
898
- enumerator(enumerator),
899
- definer(reinterpret_cast<void*>(definer)),
900
- descriptor(reinterpret_cast<void*>(descriptor)),
901
- data(data),
902
- flags(WithNewSignatureFlag(flags)) {}
903
-
904
- // This variant will be deprecated soon.
905
- IndexedPropertyHandlerConfiguration(
906
- IndexedPropertyGetterCallback getter, //
907
- IndexedPropertySetterCallback setter, //
908
- IndexedPropertyQueryCallback query, //
909
- IndexedPropertyDeleterCallback deleter, //
910
- IndexedPropertyEnumeratorCallback enumerator, //
911
- IndexedPropertyDefinerCallback definer, //
912
- IndexedPropertyDescriptorCallback descriptor, //
913
- Local<Value> data = Local<Value>(),
914
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
915
- : getter(reinterpret_cast<void*>(getter)),
916
- setter(reinterpret_cast<void*>(setter)),
917
- query(reinterpret_cast<void*>(query)),
918
- deleter(reinterpret_cast<void*>(deleter)),
860
+ : getter(getter),
861
+ setter(setter),
862
+ query(query),
863
+ deleter(deleter),
919
864
  enumerator(enumerator),
920
- definer(reinterpret_cast<void*>(definer)),
921
- descriptor(reinterpret_cast<void*>(descriptor)),
865
+ definer(definer),
866
+ descriptor(descriptor),
922
867
  data(data),
923
868
  flags(flags) {}
924
869
 
@@ -930,29 +875,10 @@ struct IndexedPropertyHandlerConfiguration {
930
875
  IndexedPropertyEnumeratorCallback enumerator = nullptr,
931
876
  Local<Value> data = Local<Value>(),
932
877
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
933
- : getter(reinterpret_cast<void*>(getter)),
934
- setter(reinterpret_cast<void*>(setter)),
935
- query(reinterpret_cast<void*>(query)),
936
- deleter(reinterpret_cast<void*>(deleter)),
937
- enumerator(enumerator),
938
- definer(nullptr),
939
- descriptor(nullptr),
940
- data(data),
941
- flags(WithNewSignatureFlag(flags)) {}
942
-
943
- // This variant will be deprecated soon.
944
- explicit IndexedPropertyHandlerConfiguration(
945
- IndexedPropertyGetterCallback getter,
946
- IndexedPropertySetterCallback setter = nullptr,
947
- IndexedPropertyQueryCallback query = nullptr,
948
- IndexedPropertyDeleterCallback deleter = nullptr,
949
- IndexedPropertyEnumeratorCallback enumerator = nullptr,
950
- Local<Value> data = Local<Value>(),
951
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
952
- : getter(reinterpret_cast<void*>(getter)),
953
- setter(reinterpret_cast<void*>(setter)),
954
- query(reinterpret_cast<void*>(query)),
955
- deleter(reinterpret_cast<void*>(deleter)),
878
+ : getter(getter),
879
+ setter(setter),
880
+ query(query),
881
+ deleter(deleter),
956
882
  enumerator(enumerator),
957
883
  definer(nullptr),
958
884
  descriptor(nullptr),
@@ -968,43 +894,23 @@ struct IndexedPropertyHandlerConfiguration {
968
894
  IndexedPropertyDefinerCallbackV2 definer,
969
895
  Local<Value> data = Local<Value>(),
970
896
  PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
971
- : getter(reinterpret_cast<void*>(getter)),
972
- setter(reinterpret_cast<void*>(setter)),
897
+ : getter(getter),
898
+ setter(setter),
973
899
  query(nullptr),
974
- deleter(reinterpret_cast<void*>(deleter)),
900
+ deleter(deleter),
975
901
  enumerator(enumerator),
976
- definer(reinterpret_cast<void*>(definer)),
977
- descriptor(reinterpret_cast<void*>(descriptor)),
978
- data(data),
979
- flags(WithNewSignatureFlag(flags)) {}
980
-
981
- // This variant will be deprecated soon.
982
- IndexedPropertyHandlerConfiguration(
983
- IndexedPropertyGetterCallback getter,
984
- IndexedPropertySetterCallback setter,
985
- IndexedPropertyDescriptorCallback descriptor,
986
- IndexedPropertyDeleterCallback deleter,
987
- IndexedPropertyEnumeratorCallback enumerator,
988
- IndexedPropertyDefinerCallback definer,
989
- Local<Value> data = Local<Value>(),
990
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
991
- : getter(reinterpret_cast<void*>(getter)),
992
- setter(reinterpret_cast<void*>(setter)),
993
- query(nullptr),
994
- deleter(reinterpret_cast<void*>(deleter)),
995
- enumerator(enumerator),
996
- definer(reinterpret_cast<void*>(definer)),
997
- descriptor(reinterpret_cast<void*>(descriptor)),
902
+ definer(definer),
903
+ descriptor(descriptor),
998
904
  data(data),
999
905
  flags(flags) {}
1000
906
 
1001
- void* getter; // IndexedPropertyGetterCallback[V2]
1002
- void* setter; // IndexedPropertySetterCallback[V2]
1003
- void* query; // IndexedPropertyQueryCallback[V2]
1004
- void* deleter; // IndexedPropertyDeleterCallback[V2]
907
+ IndexedPropertyGetterCallbackV2 getter;
908
+ IndexedPropertySetterCallbackV2 setter;
909
+ IndexedPropertyQueryCallbackV2 query;
910
+ IndexedPropertyDeleterCallbackV2 deleter;
1005
911
  IndexedPropertyEnumeratorCallback enumerator;
1006
- void* definer; // IndexedPropertyDefinerCallback[V2]
1007
- void* descriptor; // IndexedPropertyDescriptorCallback[V2]
912
+ IndexedPropertyDefinerCallbackV2 definer;
913
+ IndexedPropertyDescriptorCallbackV2 descriptor;
1008
914
  Local<Value> data;
1009
915
  PropertyHandlerFlags flags;
1010
916
  };
@@ -1029,36 +935,6 @@ class V8_EXPORT ObjectTemplate : public Template {
1029
935
  */
1030
936
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(Local<Context> context);
1031
937
 
1032
- /**
1033
- * Sets an accessor on the object template.
1034
- *
1035
- * Whenever the property with the given name is accessed on objects
1036
- * created from this ObjectTemplate the getter and setter callbacks
1037
- * are called instead of getting and setting the property directly
1038
- * on the JavaScript object.
1039
- *
1040
- * \param name The name of the property for which an accessor is added.
1041
- * \param getter The callback to invoke when getting the property.
1042
- * \param setter The callback to invoke when setting the property.
1043
- * \param data A piece of data that will be passed to the getter and setter
1044
- * callbacks whenever they are invoked.
1045
- * \param attribute The attributes of the property for which an accessor
1046
- * is added.
1047
- */
1048
- V8_DEPRECATE_SOON("Use SetAccessor with Local<Name> instead")
1049
- void SetAccessor(
1050
- Local<String> name, AccessorGetterCallback getter,
1051
- AccessorSetterCallback setter = nullptr,
1052
- Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
1053
- SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
1054
- SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
1055
- void SetAccessor(
1056
- Local<Name> name, AccessorNameGetterCallback getter,
1057
- AccessorNameSetterCallback setter = nullptr,
1058
- Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
1059
- SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
1060
- SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
1061
-
1062
938
  /**
1063
939
  * Sets a named property handler on the object template.
1064
940
  *
@@ -1072,34 +948,6 @@ class V8_EXPORT ObjectTemplate : public Template {
1072
948
  */
1073
949
  void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
1074
950
 
1075
- /**
1076
- * Sets an indexed property handler on the object template.
1077
- *
1078
- * Whenever an indexed property is accessed on objects created from
1079
- * this object template, the provided callback is invoked instead of
1080
- * accessing the property directly on the JavaScript object.
1081
- *
1082
- * \param getter The callback to invoke when getting a property.
1083
- * \param setter The callback to invoke when setting a property.
1084
- * \param query The callback to invoke to check if an object has a property.
1085
- * \param deleter The callback to invoke when deleting a property.
1086
- * \param enumerator The callback to invoke to enumerate all the indexed
1087
- * properties of an object.
1088
- * \param data A piece of data that will be passed to the callbacks
1089
- * whenever they are invoked.
1090
- */
1091
- V8_DEPRECATE_SOON("Use SetHandler instead")
1092
- void SetIndexedPropertyHandler(
1093
- IndexedPropertyGetterCallback getter,
1094
- IndexedPropertySetterCallback setter = nullptr,
1095
- IndexedPropertyQueryCallback query = nullptr,
1096
- IndexedPropertyDeleterCallback deleter = nullptr,
1097
- IndexedPropertyEnumeratorCallback enumerator = nullptr,
1098
- Local<Value> data = Local<Value>()) {
1099
- SetHandler(IndexedPropertyHandlerConfiguration(getter, setter, query,
1100
- deleter, enumerator, data));
1101
- }
1102
-
1103
951
  /**
1104
952
  * Sets an indexed property handler on the object template.
1105
953
  *
@@ -0,0 +1,23 @@
1
+ // Copyright 2025 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_TRACE_CATEGORIES_H_
6
+ #define INCLUDE_V8_TRACE_CATEGORIES_H_
7
+
8
+ #if defined(V8_USE_PERFETTO)
9
+
10
+ #include "perfetto/tracing/track_event.h"
11
+ #include "v8config.h"
12
+
13
+ namespace v8 {
14
+
15
+ // Returns the perfeto TrackEventCategoryRegistry for v8 tracing categories.
16
+ V8_EXPORT const perfetto::internal::TrackEventCategoryRegistry&
17
+ GetTrackEventCategoryRegistry();
18
+
19
+ } // namespace v8
20
+
21
+ #endif // defined(V8_USE_PERFETTO)
22
+
23
+ #endif // INCLUDE_V8_TRACE_CATEGORIES_H_