node-linux-s390x 22.9.0 → 23.0.0

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 (169) hide show
  1. package/CHANGELOG.md +395 -1901
  2. package/README.md +13 -4
  3. package/bin/node +0 -0
  4. package/include/node/common.gypi +3 -3
  5. package/include/node/config.gypi +3 -3
  6. package/include/node/cppgc/allocation.h +10 -11
  7. package/include/node/cppgc/garbage-collected.h +8 -0
  8. package/include/node/cppgc/heap-statistics.h +2 -0
  9. package/include/node/cppgc/internal/api-constants.h +6 -1
  10. package/include/node/cppgc/internal/compiler-specific.h +9 -1
  11. package/include/node/cppgc/internal/gc-info.h +12 -10
  12. package/include/node/cppgc/internal/member-storage.h +6 -0
  13. package/include/node/cppgc/internal/name-trait.h +5 -1
  14. package/include/node/cppgc/name-provider.h +7 -0
  15. package/include/node/node.h +8 -18
  16. package/include/node/node_api.h +12 -0
  17. package/include/node/node_version.h +3 -3
  18. package/include/node/openssl/archs/BSD-x86/asm/crypto/buildinf.h +1 -1
  19. package/include/node/openssl/archs/BSD-x86/asm/include/openssl/opensslv.h +5 -5
  20. package/include/node/openssl/archs/BSD-x86/asm_avx2/crypto/buildinf.h +1 -1
  21. package/include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h +5 -5
  22. package/include/node/openssl/archs/BSD-x86/no-asm/crypto/buildinf.h +1 -1
  23. package/include/node/openssl/archs/BSD-x86/no-asm/include/openssl/opensslv.h +5 -5
  24. package/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h +1 -1
  25. package/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslv.h +5 -5
  26. package/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h +1 -1
  27. package/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h +5 -5
  28. package/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h +1 -1
  29. package/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h +5 -5
  30. package/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h +1 -1
  31. package/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslv.h +5 -5
  32. package/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h +1 -1
  33. package/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h +5 -5
  34. package/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h +1 -1
  35. package/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslv.h +5 -5
  36. package/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h +1 -1
  37. package/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h +5 -5
  38. package/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h +1 -1
  39. package/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslv.h +5 -5
  40. package/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h +1 -1
  41. package/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h +5 -5
  42. package/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h +1 -1
  43. package/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h +5 -5
  44. package/include/node/openssl/archs/aix64-gcc-as/asm/crypto/buildinf.h +1 -1
  45. package/include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/opensslv.h +5 -5
  46. package/include/node/openssl/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h +1 -1
  47. package/include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h +5 -5
  48. package/include/node/openssl/archs/aix64-gcc-as/no-asm/crypto/buildinf.h +1 -1
  49. package/include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h +5 -5
  50. package/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h +1 -1
  51. package/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslv.h +5 -5
  52. package/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h +1 -1
  53. package/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h +5 -5
  54. package/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +1 -1
  55. package/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h +5 -5
  56. package/include/node/openssl/archs/darwin64-arm64-cc/asm/crypto/buildinf.h +1 -1
  57. package/include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h +5 -5
  58. package/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h +1 -1
  59. package/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h +5 -5
  60. package/include/node/openssl/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h +1 -1
  61. package/include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h +5 -5
  62. package/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +1 -1
  63. package/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h +5 -5
  64. package/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h +1 -1
  65. package/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h +5 -5
  66. package/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +1 -1
  67. package/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h +5 -5
  68. package/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h +1 -1
  69. package/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslv.h +5 -5
  70. package/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h +1 -1
  71. package/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h +5 -5
  72. package/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h +1 -1
  73. package/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslv.h +5 -5
  74. package/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h +1 -1
  75. package/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslv.h +5 -5
  76. package/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h +1 -1
  77. package/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h +5 -5
  78. package/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h +1 -1
  79. package/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslv.h +5 -5
  80. package/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h +1 -1
  81. package/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslv.h +5 -5
  82. package/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h +1 -1
  83. package/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslv.h +5 -5
  84. package/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h +1 -1
  85. package/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslv.h +5 -5
  86. package/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h +1 -1
  87. package/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslv.h +5 -5
  88. package/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h +1 -1
  89. package/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h +5 -5
  90. package/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h +1 -1
  91. package/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h +5 -5
  92. package/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h +1 -1
  93. package/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslv.h +5 -5
  94. package/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h +1 -1
  95. package/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h +5 -5
  96. package/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h +1 -1
  97. package/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslv.h +5 -5
  98. package/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h +1 -1
  99. package/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslv.h +5 -5
  100. package/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h +1 -1
  101. package/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h +5 -5
  102. package/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h +1 -1
  103. package/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslv.h +5 -5
  104. package/include/node/openssl/archs/linux64-loongarch64/no-asm/crypto/buildinf.h +1 -1
  105. package/include/node/openssl/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h +5 -5
  106. package/include/node/openssl/archs/linux64-mips64/asm/crypto/buildinf.h +1 -1
  107. package/include/node/openssl/archs/linux64-mips64/asm/include/openssl/opensslv.h +5 -5
  108. package/include/node/openssl/archs/linux64-mips64/asm_avx2/crypto/buildinf.h +1 -1
  109. package/include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h +5 -5
  110. package/include/node/openssl/archs/linux64-mips64/no-asm/crypto/buildinf.h +1 -1
  111. package/include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/opensslv.h +5 -5
  112. package/include/node/openssl/archs/linux64-riscv64/no-asm/crypto/buildinf.h +1 -1
  113. package/include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h +5 -5
  114. package/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h +1 -1
  115. package/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslv.h +5 -5
  116. package/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h +1 -1
  117. package/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h +5 -5
  118. package/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h +1 -1
  119. package/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslv.h +5 -5
  120. package/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h +1 -1
  121. package/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h +5 -5
  122. package/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h +1 -1
  123. package/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h +5 -5
  124. package/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h +1 -1
  125. package/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h +5 -5
  126. package/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h +1 -1
  127. package/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h +5 -5
  128. package/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h +1 -1
  129. package/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h +5 -5
  130. package/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h +1 -1
  131. package/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h +5 -5
  132. package/include/node/openssl/sslerr.h +3 -1
  133. package/include/node/openssl/tls1.h +3 -1
  134. package/include/node/v8-array-buffer.h +44 -24
  135. package/include/node/v8-callbacks.h +10 -5
  136. package/include/node/v8-context.h +41 -9
  137. package/include/node/v8-cppgc.h +3 -55
  138. package/include/node/v8-date.h +9 -0
  139. package/include/node/v8-embedder-heap.h +4 -1
  140. package/include/node/v8-exception.h +70 -0
  141. package/include/node/v8-function-callback.h +203 -62
  142. package/include/node/v8-function.h +4 -3
  143. package/include/node/v8-handle-base.h +2 -2
  144. package/include/node/v8-initialization.h +18 -1
  145. package/include/node/v8-internal.h +303 -58
  146. package/include/node/v8-isolate.h +51 -39
  147. package/include/node/v8-local-handle.h +18 -19
  148. package/include/node/v8-message.h +0 -21
  149. package/include/node/v8-microtask-queue.h +0 -5
  150. package/include/node/v8-object.h +284 -35
  151. package/include/node/v8-persistent-handle.h +0 -19
  152. package/include/node/v8-platform.h +21 -35
  153. package/include/node/v8-primitive.h +92 -1
  154. package/include/node/v8-profiler.h +38 -1
  155. package/include/node/v8-promise.h +2 -2
  156. package/include/node/v8-sandbox.h +173 -0
  157. package/include/node/v8-script.h +44 -14
  158. package/include/node/v8-snapshot.h +38 -2
  159. package/include/node/v8-template.h +105 -263
  160. package/include/node/v8-traced-handle.h +4 -15
  161. package/include/node/v8-unwinder.h +2 -1
  162. package/include/node/v8-value.h +3 -2
  163. package/include/node/v8-version.h +3 -3
  164. package/include/node/v8-wasm.h +3 -0
  165. package/include/node/v8config.h +47 -7
  166. package/package.json +1 -1
  167. package/share/doc/node/gdbinit +41 -3
  168. package/share/doc/node/lldb_commands.py +7 -2
  169. package/share/man/man1/node.1 +3 -14
@@ -18,6 +18,7 @@
18
18
  #include "v8-data.h" // NOLINT(build/include_directory)
19
19
  #include "v8-debug.h" // NOLINT(build/include_directory)
20
20
  #include "v8-embedder-heap.h" // NOLINT(build/include_directory)
21
+ #include "v8-exception.h" // NOLINT(build/include_directory)
21
22
  #include "v8-function-callback.h" // NOLINT(build/include_directory)
22
23
  #include "v8-internal.h" // NOLINT(build/include_directory)
23
24
  #include "v8-local-handle.h" // NOLINT(build/include_directory)
@@ -277,11 +278,6 @@ class V8_EXPORT Isolate {
277
278
  */
278
279
  bool allow_atomics_wait = true;
279
280
 
280
- /**
281
- * Termination is postponed when there is no active SafeForTerminationScope.
282
- */
283
- bool only_terminate_in_safe_scope = false;
284
-
285
281
  /**
286
282
  * The following parameters describe the offsets for addressing type info
287
283
  * for wrapped API objects and are used by the fast C API
@@ -390,21 +386,6 @@ class V8_EXPORT Isolate {
390
386
  friend class internal::ThreadLocalTop;
391
387
  };
392
388
 
393
- /**
394
- * This scope allows terminations inside direct V8 API calls and forbid them
395
- * inside any recursive API calls without explicit SafeForTerminationScope.
396
- */
397
- class V8_EXPORT V8_NODISCARD SafeForTerminationScope {
398
- public:
399
- V8_DEPRECATE_SOON("All code should be safe for termination")
400
- explicit SafeForTerminationScope(v8::Isolate* v8_isolate) {}
401
- ~SafeForTerminationScope() {}
402
-
403
- // Prevent copying of Scope objects.
404
- SafeForTerminationScope(const SafeForTerminationScope&) = delete;
405
- SafeForTerminationScope& operator=(const SafeForTerminationScope&) = delete;
406
- };
407
-
408
389
  /**
409
390
  * Types of garbage collections that can be requested via
410
391
  * RequestGarbageCollectionForTesting.
@@ -564,6 +545,9 @@ class V8_EXPORT Isolate {
564
545
  kWasmExnRef = 138,
565
546
  kWasmTypedFuncRef = 139,
566
547
  kInvalidatedStringWrapperToPrimitiveProtector = 140,
548
+ kDocumentAllLegacyCall = 141,
549
+ kDocumentAllLegacyConstruct = 142,
550
+ kConsoleContext = 143,
567
551
 
568
552
  // If you add new values here, you'll also need to update Chromium's:
569
553
  // web_feature.mojom, use_counter_callback.cc, and enums.xml. V8 changes to
@@ -581,6 +565,21 @@ class V8_EXPORT Isolate {
581
565
  kMessageWarning,
582
566
  };
583
567
 
568
+ // The different priorities that an isolate can have.
569
+ enum class Priority {
570
+ // The isolate does not relate to content that is currently important
571
+ // to the user. Lowest priority.
572
+ kBestEffort,
573
+
574
+ // The isolate contributes to content that is visible to the user, like a
575
+ // visible iframe that's not interacted directly with. High priority.
576
+ kUserVisible,
577
+
578
+ // The isolate contributes to content that is of the utmost importance to
579
+ // the user, like visible content in the focused window. Highest priority.
580
+ kUserBlocking,
581
+ };
582
+
584
583
  using UseCounterCallback = void (*)(Isolate* isolate,
585
584
  UseCounterFeature feature);
586
585
 
@@ -692,6 +691,11 @@ class V8_EXPORT Isolate {
692
691
  */
693
692
  void SetPrepareStackTraceCallback(PrepareStackTraceCallback callback);
694
693
 
694
+ /**
695
+ * Get the stackTraceLimit property of Error.
696
+ */
697
+ int GetStackTraceLimit();
698
+
695
699
  #if defined(V8_OS_WIN)
696
700
  /**
697
701
  * This specifies the callback called when an ETW tracing session starts.
@@ -933,6 +937,12 @@ class V8_EXPORT Isolate {
933
937
  */
934
938
  Local<Context> GetIncumbentContext();
935
939
 
940
+ /**
941
+ * Returns the host defined options set for currently running script or
942
+ * module, if available.
943
+ */
944
+ MaybeLocal<Data> GetCurrentHostDefinedOptions();
945
+
936
946
  /**
937
947
  * Schedules a v8::Exception::Error with the given message.
938
948
  * See ThrowException for more details. Templatized to provide compile-time
@@ -1274,6 +1284,15 @@ class V8_EXPORT Isolate {
1274
1284
  */
1275
1285
  void SetPromiseRejectCallback(PromiseRejectCallback callback);
1276
1286
 
1287
+ /**
1288
+ * This is a part of experimental Api and might be changed without further
1289
+ * notice.
1290
+ * Do not use it.
1291
+ *
1292
+ * Set callback to notify about a new exception being thrown.
1293
+ */
1294
+ void SetExceptionPropagationCallback(ExceptionPropagationCallback callback);
1295
+
1277
1296
  /**
1278
1297
  * Runs the default MicrotaskQueue until it gets empty and perform other
1279
1298
  * microtask checkpoint steps, such as calling ClearKeptObjects. Asserts that
@@ -1363,24 +1382,6 @@ class V8_EXPORT Isolate {
1363
1382
  */
1364
1383
  void SetAddCrashKeyCallback(AddCrashKeyCallback);
1365
1384
 
1366
- /**
1367
- * Optional notification that the embedder is idle.
1368
- * V8 uses the notification to perform garbage collection.
1369
- * This call can be used repeatedly if the embedder remains idle.
1370
- * Returns true if the embedder should stop calling IdleNotificationDeadline
1371
- * until real work has been done. This indicates that V8 has done
1372
- * as much cleanup as it will be able to do.
1373
- *
1374
- * The deadline_in_seconds argument specifies the deadline V8 has to finish
1375
- * garbage collection work. deadline_in_seconds is compared with
1376
- * MonotonicallyIncreasingTime() and should be based on the same timebase as
1377
- * that function. There is no guarantee that the actual work will be done
1378
- * within the time limit.
1379
- */
1380
- V8_DEPRECATE_SOON(
1381
- "Use MemoryPressureNotification() to influence the GC schedule.")
1382
- bool IdleNotificationDeadline(double deadline_in_seconds);
1383
-
1384
1385
  /**
1385
1386
  * Optional notification that the system is running low on memory.
1386
1387
  * V8 uses these notifications to attempt to free memory.
@@ -1402,14 +1403,22 @@ class V8_EXPORT Isolate {
1402
1403
  * Optional notification that the isolate switched to the foreground.
1403
1404
  * V8 uses these notifications to guide heuristics.
1404
1405
  */
1406
+ V8_DEPRECATE_SOON("Use SetPriority(Priority::kUserBlocking) instead")
1405
1407
  void IsolateInForegroundNotification();
1406
1408
 
1407
1409
  /**
1408
1410
  * Optional notification that the isolate switched to the background.
1409
1411
  * V8 uses these notifications to guide heuristics.
1410
1412
  */
1413
+ V8_DEPRECATE_SOON("Use SetPriority(Priority::kBestEffort) instead")
1411
1414
  void IsolateInBackgroundNotification();
1412
1415
 
1416
+ /**
1417
+ * Optional notification that the isolate changed `priority`.
1418
+ * V8 uses the priority value to guide heuristics.
1419
+ */
1420
+ void SetPriority(Priority priority);
1421
+
1413
1422
  /**
1414
1423
  * Optional notification to tell V8 the current performance requirements
1415
1424
  * of the embedder based on RAIL.
@@ -1593,6 +1602,9 @@ class V8_EXPORT Isolate {
1593
1602
  * Register callback to control whether compile hints magic comments are
1594
1603
  * enabled.
1595
1604
  */
1605
+ V8_DEPRECATED(
1606
+ "Will be removed, use ScriptCompiler::CompileOptions for enabling the "
1607
+ "compile hints magic comments")
1596
1608
  void SetJavaScriptCompileHintsMagicEnabledCallback(
1597
1609
  JavaScriptCompileHintsMagicEnabledCallback callback);
1598
1610
 
@@ -1657,7 +1669,7 @@ class V8_EXPORT Isolate {
1657
1669
  * heap. GC is not invoked prior to iterating, therefore there is no
1658
1670
  * guarantee that visited objects are still alive.
1659
1671
  */
1660
- V8_DEPRECATE_SOON("Will be removed without replacement. crbug.com/v8/14172")
1672
+ V8_DEPRECATED("Will be removed without replacement. crbug.com/v8/14172")
1661
1673
  void VisitExternalResources(ExternalResourceVisitor* visitor);
1662
1674
 
1663
1675
  /**
@@ -51,8 +51,6 @@ class Isolate;
51
51
  class Object;
52
52
  template <class F1, class F2, class F3>
53
53
  class PersistentValueMapBase;
54
- template <class F1, class F2>
55
- class PersistentValueVector;
56
54
  class Primitive;
57
55
  class Private;
58
56
  template <class F>
@@ -152,11 +150,11 @@ class V8_EXPORT V8_NODISCARD HandleScope {
152
150
 
153
151
  /**
154
152
  * A base class for local handles.
155
- * Its implementation depends on whether direct local support is enabled.
153
+ * Its implementation depends on whether direct handle support is enabled.
156
154
  * When it is, a local handle contains a direct pointer to the referenced
157
155
  * object, otherwise it contains an indirect pointer.
158
156
  */
159
- #ifdef V8_ENABLE_DIRECT_LOCAL
157
+ #ifdef V8_ENABLE_DIRECT_HANDLE
160
158
 
161
159
  template <typename T>
162
160
  class LocalBase : public api_internal::DirectHandleBase {
@@ -185,7 +183,7 @@ class LocalBase : public api_internal::DirectHandleBase {
185
183
  }
186
184
  };
187
185
 
188
- #else // !V8_ENABLE_DIRECT_LOCAL
186
+ #else // !V8_ENABLE_DIRECT_HANDLE
189
187
 
190
188
  template <typename T>
191
189
  class LocalBase : public api_internal::IndirectHandleBase {
@@ -217,7 +215,7 @@ class LocalBase : public api_internal::IndirectHandleBase {
217
215
  }
218
216
  };
219
217
 
220
- #endif // V8_ENABLE_DIRECT_LOCAL
218
+ #endif // V8_ENABLE_DIRECT_HANDLE
221
219
 
222
220
  /**
223
221
  * An object reference managed by the v8 garbage collector.
@@ -382,8 +380,6 @@ class V8_TRIVIAL_ABI Local : public LocalBase<T>,
382
380
  friend class InternalEscapableScope;
383
381
  template <class F1, class F2, class F3>
384
382
  friend class PersistentValueMapBase;
385
- template <class F1, class F2>
386
- friend class PersistentValueVector;
387
383
  template <class F>
388
384
  friend class ReturnValue;
389
385
  template <class F>
@@ -404,13 +400,13 @@ class V8_TRIVIAL_ABI Local : public LocalBase<T>,
404
400
  return Local<T>(LocalBase<T>::FromSlot(slot));
405
401
  }
406
402
 
407
- #ifdef V8_ENABLE_DIRECT_LOCAL
403
+ #ifdef V8_ENABLE_DIRECT_HANDLE
408
404
  friend class TypecheckWitness;
409
405
 
410
406
  V8_INLINE static Local<T> FromAddress(internal::Address ptr) {
411
407
  return Local<T>(LocalBase<T>(ptr));
412
408
  }
413
- #endif // V8_ENABLE_DIRECT_LOCAL
409
+ #endif // V8_ENABLE_DIRECT_HANDLE
414
410
 
415
411
  V8_INLINE static Local<T> New(Isolate* isolate, internal::Address value) {
416
412
  return Local<T>(LocalBase<T>::New(isolate, value));
@@ -439,16 +435,16 @@ class V8_TRIVIAL_ABI LocalUnchecked : public Local<T> {
439
435
  // In this case, the check is also enforced in the copy constructor and we
440
436
  // need to suppress it.
441
437
  LocalUnchecked(const LocalUnchecked& other)
442
- : Local<T>(other, Local<T>::do_not_check) {}
443
- LocalUnchecked& operator=(const LocalUnchecked&) = default;
438
+ : Local<T>(other, Local<T>::do_not_check) noexcept {}
439
+ LocalUnchecked& operator=(const LocalUnchecked&) noexcept = default;
444
440
  #endif
445
441
 
446
442
  // Implicit conversion from Local.
447
- LocalUnchecked(const Local<T>& other) // NOLINT(runtime/explicit)
443
+ LocalUnchecked(const Local<T>& other) noexcept // NOLINT(runtime/explicit)
448
444
  : Local<T>(other, Local<T>::do_not_check) {}
449
445
  };
450
446
 
451
- #ifdef V8_ENABLE_DIRECT_LOCAL
447
+ #ifdef V8_ENABLE_DIRECT_HANDLE
452
448
  // Off-stack allocated direct locals must be registered as strong roots.
453
449
  // For off-stack indirect locals, this is not necessary.
454
450
 
@@ -460,8 +456,10 @@ class StrongRootAllocator<LocalUnchecked<T>> : public StrongRootAllocatorBase {
460
456
  static_assert(sizeof(value_type) == sizeof(Address));
461
457
 
462
458
  explicit StrongRootAllocator(Heap* heap) : StrongRootAllocatorBase(heap) {}
463
- explicit StrongRootAllocator(v8::Isolate* isolate)
459
+ explicit StrongRootAllocator(Isolate* isolate)
464
460
  : StrongRootAllocatorBase(isolate) {}
461
+ explicit StrongRootAllocator(v8::Isolate* isolate)
462
+ : StrongRootAllocatorBase(reinterpret_cast<Isolate*>(isolate)) {}
465
463
  template <typename U>
466
464
  StrongRootAllocator(const StrongRootAllocator<U>& other) noexcept
467
465
  : StrongRootAllocatorBase(other) {}
@@ -473,7 +471,7 @@ class StrongRootAllocator<LocalUnchecked<T>> : public StrongRootAllocatorBase {
473
471
  return deallocate_impl(reinterpret_cast<Address*>(p), n);
474
472
  }
475
473
  };
476
- #endif // V8_ENABLE_DIRECT_LOCAL
474
+ #endif // V8_ENABLE_DIRECT_HANDLE
477
475
  } // namespace internal
478
476
 
479
477
  template <typename T>
@@ -481,7 +479,7 @@ class LocalVector {
481
479
  private:
482
480
  using element_type = internal::LocalUnchecked<T>;
483
481
 
484
- #ifdef V8_ENABLE_DIRECT_LOCAL
482
+ #ifdef V8_ENABLE_DIRECT_HANDLE
485
483
  using allocator_type = internal::StrongRootAllocator<element_type>;
486
484
 
487
485
  static allocator_type make_allocator(Isolate* isolate) noexcept {
@@ -493,7 +491,7 @@ class LocalVector {
493
491
  static allocator_type make_allocator(Isolate* isolate) noexcept {
494
492
  return allocator_type();
495
493
  }
496
- #endif // V8_ENABLE_DIRECT_LOCAL
494
+ #endif // V8_ENABLE_DIRECT_HANDLE
497
495
 
498
496
  using vector_type = std::vector<element_type, allocator_type>;
499
497
 
@@ -560,6 +558,7 @@ class LocalVector {
560
558
 
561
559
  LocalVector<T>& operator=(std::initializer_list<Local<T>> init) {
562
560
  backing_.clear();
561
+ backing_.reserve(init.size());
563
562
  backing_.insert(backing_.end(), init.begin(), init.end());
564
563
  return *this;
565
564
  }
@@ -716,7 +715,7 @@ class V8_EXPORT V8_NODISCARD EscapableHandleScope
716
715
  V8_INLINE ~EscapableHandleScope() = default;
717
716
  template <class T>
718
717
  V8_INLINE Local<T> Escape(Local<T> value) {
719
- #ifdef V8_ENABLE_DIRECT_LOCAL
718
+ #ifdef V8_ENABLE_DIRECT_HANDLE
720
719
  return value;
721
720
  #else
722
721
  if (value.IsEmpty()) return value;
@@ -61,27 +61,6 @@ class ScriptOriginOptions {
61
61
  */
62
62
  class V8_EXPORT ScriptOrigin {
63
63
  public:
64
- V8_DEPRECATE_SOON("Use constructor without the isolate.")
65
- V8_INLINE ScriptOrigin(Isolate* isolate, Local<Value> resource_name,
66
- int resource_line_offset = 0,
67
- int resource_column_offset = 0,
68
- bool resource_is_shared_cross_origin = false,
69
- int script_id = -1,
70
- Local<Value> source_map_url = Local<Value>(),
71
- bool resource_is_opaque = false, bool is_wasm = false,
72
- bool is_module = false,
73
- Local<Data> host_defined_options = Local<Data>())
74
- : resource_name_(resource_name),
75
- resource_line_offset_(resource_line_offset),
76
- resource_column_offset_(resource_column_offset),
77
- options_(resource_is_shared_cross_origin, resource_is_opaque, is_wasm,
78
- is_module),
79
- script_id_(script_id),
80
- source_map_url_(source_map_url),
81
- host_defined_options_(host_defined_options) {
82
- VerifyHostDefinedOptions();
83
- }
84
-
85
64
  V8_INLINE ScriptOrigin(Local<Value> resource_name,
86
65
  int resource_line_offset = 0,
87
66
  int resource_column_offset = 0,
@@ -118,11 +118,6 @@ class V8_EXPORT V8_NODISCARD MicrotasksScope {
118
118
  public:
119
119
  enum Type { kRunMicrotasks, kDoNotRunMicrotasks };
120
120
 
121
- V8_DEPRECATE_SOON(
122
- "May be incorrect if context was created with non-default microtask "
123
- "queue")
124
- MicrotasksScope(Isolate* isolate, Type type);
125
-
126
121
  MicrotasksScope(Local<Context> context, Type type);
127
122
  MicrotasksScope(Isolate* isolate, MicrotaskQueue* microtask_queue, Type type);
128
123
  ~MicrotasksScope();