libv8-node 18.19.1.0-arm64-darwin → 19.9.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 (62) 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/common.h +0 -1
  5. data/vendor/v8/include/cppgc/cross-thread-persistent.h +7 -8
  6. data/vendor/v8/include/cppgc/heap-consistency.h +46 -3
  7. data/vendor/v8/include/cppgc/heap-handle.h +43 -0
  8. data/vendor/v8/include/cppgc/heap-statistics.h +2 -2
  9. data/vendor/v8/include/cppgc/heap.h +3 -7
  10. data/vendor/v8/include/cppgc/internal/api-constants.h +11 -1
  11. data/vendor/v8/include/cppgc/internal/base-page-handle.h +45 -0
  12. data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +40 -8
  13. data/vendor/v8/include/cppgc/internal/caged-heap.h +61 -0
  14. data/vendor/v8/include/cppgc/internal/gc-info.h +0 -1
  15. data/vendor/v8/include/cppgc/internal/member-storage.h +236 -0
  16. data/vendor/v8/include/cppgc/internal/name-trait.h +21 -6
  17. data/vendor/v8/include/cppgc/internal/persistent-node.h +11 -13
  18. data/vendor/v8/include/cppgc/internal/pointer-policies.h +28 -7
  19. data/vendor/v8/include/cppgc/internal/write-barrier.h +143 -101
  20. data/vendor/v8/include/cppgc/liveness-broker.h +8 -7
  21. data/vendor/v8/include/cppgc/member.h +364 -89
  22. data/vendor/v8/include/cppgc/name-provider.h +4 -4
  23. data/vendor/v8/include/cppgc/persistent.h +5 -9
  24. data/vendor/v8/include/cppgc/platform.h +2 -2
  25. data/vendor/v8/include/cppgc/sentinel-pointer.h +1 -1
  26. data/vendor/v8/include/cppgc/trace-trait.h +4 -0
  27. data/vendor/v8/include/cppgc/type-traits.h +9 -0
  28. data/vendor/v8/include/cppgc/visitor.h +89 -57
  29. data/vendor/v8/include/v8-callbacks.h +19 -5
  30. data/vendor/v8/include/v8-context.h +13 -8
  31. data/vendor/v8/include/v8-cppgc.h +12 -0
  32. data/vendor/v8/include/v8-date.h +5 -0
  33. data/vendor/v8/include/v8-embedder-heap.h +8 -3
  34. data/vendor/v8/include/v8-exception.h +1 -1
  35. data/vendor/v8/include/v8-fast-api-calls.h +46 -32
  36. data/vendor/v8/include/v8-function.h +8 -0
  37. data/vendor/v8/include/v8-initialization.h +23 -49
  38. data/vendor/v8/include/v8-inspector.h +13 -7
  39. data/vendor/v8/include/v8-internal.h +328 -123
  40. data/vendor/v8/include/v8-isolate.h +27 -42
  41. data/vendor/v8/include/v8-local-handle.h +5 -5
  42. data/vendor/v8/include/v8-locker.h +0 -11
  43. data/vendor/v8/include/v8-maybe.h +24 -1
  44. data/vendor/v8/include/v8-message.h +2 -4
  45. data/vendor/v8/include/v8-metrics.h +20 -38
  46. data/vendor/v8/include/v8-microtask-queue.h +1 -1
  47. data/vendor/v8/include/v8-object.h +8 -15
  48. data/vendor/v8/include/v8-persistent-handle.h +0 -2
  49. data/vendor/v8/include/v8-platform.h +54 -25
  50. data/vendor/v8/include/v8-primitive.h +8 -8
  51. data/vendor/v8/include/v8-profiler.h +84 -22
  52. data/vendor/v8/include/v8-regexp.h +2 -1
  53. data/vendor/v8/include/v8-script.h +62 -6
  54. data/vendor/v8/include/v8-template.h +13 -76
  55. data/vendor/v8/include/v8-unwinder-state.h +4 -4
  56. data/vendor/v8/include/v8-util.h +2 -4
  57. data/vendor/v8/include/v8-value-serializer.h +46 -23
  58. data/vendor/v8/include/v8-version.h +3 -3
  59. data/vendor/v8/include/v8-wasm.h +5 -62
  60. data/vendor/v8/include/v8-weak-callback-info.h +0 -7
  61. data/vendor/v8/include/v8config.h +280 -13
  62. metadata +7 -3
@@ -5,6 +5,7 @@
5
5
  #ifndef INCLUDE_V8_WASM_H_
6
6
  #define INCLUDE_V8_WASM_H_
7
7
 
8
+ #include <functional>
8
9
  #include <memory>
9
10
  #include <string>
10
11
 
@@ -130,19 +131,6 @@ class V8_EXPORT WasmStreaming final {
130
131
  public:
131
132
  class WasmStreamingImpl;
132
133
 
133
- /**
134
- * Client to receive streaming event notifications.
135
- */
136
- class Client {
137
- public:
138
- virtual ~Client() = default;
139
- /**
140
- * Passes the fully compiled module to the client. This can be used to
141
- * implement code caching.
142
- */
143
- virtual void OnModuleCompiled(CompiledWasmModule compiled_module) = 0;
144
- };
145
-
146
134
  explicit WasmStreaming(std::unique_ptr<WasmStreamingImpl> impl);
147
135
 
148
136
  ~WasmStreaming();
@@ -183,10 +171,11 @@ class V8_EXPORT WasmStreaming final {
183
171
  bool SetCompiledModuleBytes(const uint8_t* bytes, size_t size);
184
172
 
185
173
  /**
186
- * Sets the client object that will receive streaming event notifications.
187
- * This must be called before {OnBytesReceived}, {Finish}, or {Abort}.
174
+ * Sets a callback which is called whenever a significant number of new
175
+ * functions are ready for serialization.
188
176
  */
189
- void SetClient(std::shared_ptr<Client> client);
177
+ void SetMoreFunctionsCanBeSerializedCallback(
178
+ std::function<void(CompiledWasmModule)>);
190
179
 
191
180
  /*
192
181
  * Sets the UTF-8 encoded source URL for the {Script} object. This must be
@@ -206,52 +195,6 @@ class V8_EXPORT WasmStreaming final {
206
195
  std::unique_ptr<WasmStreamingImpl> impl_;
207
196
  };
208
197
 
209
- // TODO(mtrofin): when streaming compilation is done, we can rename this
210
- // to simply WasmModuleObjectBuilder
211
- class V8_EXPORT WasmModuleObjectBuilderStreaming final {
212
- public:
213
- explicit WasmModuleObjectBuilderStreaming(Isolate* isolate);
214
- /**
215
- * The buffer passed into OnBytesReceived is owned by the caller.
216
- */
217
- void OnBytesReceived(const uint8_t*, size_t size);
218
- void Finish();
219
- /**
220
- * Abort streaming compilation. If {exception} has a value, then the promise
221
- * associated with streaming compilation is rejected with that value. If
222
- * {exception} does not have value, the promise does not get rejected.
223
- */
224
- void Abort(MaybeLocal<Value> exception);
225
- Local<Promise> GetPromise();
226
-
227
- ~WasmModuleObjectBuilderStreaming() = default;
228
-
229
- private:
230
- WasmModuleObjectBuilderStreaming(const WasmModuleObjectBuilderStreaming&) =
231
- delete;
232
- WasmModuleObjectBuilderStreaming(WasmModuleObjectBuilderStreaming&&) =
233
- default;
234
- WasmModuleObjectBuilderStreaming& operator=(
235
- const WasmModuleObjectBuilderStreaming&) = delete;
236
- WasmModuleObjectBuilderStreaming& operator=(
237
- WasmModuleObjectBuilderStreaming&&) = default;
238
- Isolate* isolate_ = nullptr;
239
-
240
- #if V8_CC_MSVC
241
- /**
242
- * We don't need the static Copy API, so the default
243
- * NonCopyablePersistentTraits would be sufficient, however,
244
- * MSVC eagerly instantiates the Copy.
245
- * We ensure we don't use Copy, however, by compiling with the
246
- * defaults everywhere else.
247
- */
248
- Persistent<Promise, CopyablePersistentTraits<Promise>> promise_;
249
- #else
250
- Persistent<Promise> promise_;
251
- #endif
252
- std::shared_ptr<internal::wasm::StreamingDecoder> streaming_decoder_;
253
- };
254
-
255
198
  } // namespace v8
256
199
 
257
200
  #endif // INCLUDE_V8_WASM_H_
@@ -63,13 +63,6 @@ enum class WeakCallbackType {
63
63
  * Passes the first two internal fields of the object back to the callback.
64
64
  */
65
65
  kInternalFields,
66
- /**
67
- * Passes a user-defined void* parameter back to the callback. Will do so
68
- * before the object is actually reclaimed, allowing it to be resurrected. In
69
- * this case it is not possible to set a second-pass callback.
70
- */
71
- kFinalizer V8_ENUM_DEPRECATED("Resurrecting finalizers are deprecated "
72
- "and will not be supported going forward.")
73
66
  };
74
67
 
75
68
  template <class T>
@@ -308,6 +308,7 @@ path. Add it with -I<path> to the command line
308
308
  // V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported
309
309
  // V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported
310
310
  // V8_HAS_BUILTIN_UADD_OVERFLOW - __builtin_uadd_overflow() supported
311
+ // V8_HAS_BUILTIN_SMUL_OVERFLOW - __builtin_smul_overflow() supported
311
312
  // V8_HAS_COMPUTED_GOTO - computed goto/labels as values
312
313
  // supported
313
314
  // V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported
@@ -344,6 +345,7 @@ path. Add it with -I<path> to the command line
344
345
  # define V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS \
345
346
  (V8_HAS_CPP_ATTRIBUTE(no_unique_address))
346
347
 
348
+ # define V8_HAS_BUILTIN_ASSUME (__has_builtin(__builtin_assume))
347
349
  # define V8_HAS_BUILTIN_ASSUME_ALIGNED (__has_builtin(__builtin_assume_aligned))
348
350
  # define V8_HAS_BUILTIN_BSWAP16 (__has_builtin(__builtin_bswap16))
349
351
  # define V8_HAS_BUILTIN_BSWAP32 (__has_builtin(__builtin_bswap32))
@@ -356,6 +358,8 @@ path. Add it with -I<path> to the command line
356
358
  # define V8_HAS_BUILTIN_SADD_OVERFLOW (__has_builtin(__builtin_sadd_overflow))
357
359
  # define V8_HAS_BUILTIN_SSUB_OVERFLOW (__has_builtin(__builtin_ssub_overflow))
358
360
  # define V8_HAS_BUILTIN_UADD_OVERFLOW (__has_builtin(__builtin_uadd_overflow))
361
+ # define V8_HAS_BUILTIN_SMUL_OVERFLOW (__has_builtin(__builtin_smul_overflow))
362
+ # define V8_HAS_BUILTIN_UNREACHABLE (__has_builtin(__builtin_unreachable))
359
363
 
360
364
  // Clang has no __has_feature for computed gotos.
361
365
  // GCC doc: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
@@ -394,6 +398,7 @@ path. Add it with -I<path> to the command line
394
398
  # define V8_HAS_BUILTIN_EXPECT 1
395
399
  # define V8_HAS_BUILTIN_FRAME_ADDRESS 1
396
400
  # define V8_HAS_BUILTIN_POPCOUNT 1
401
+ # define V8_HAS_BUILTIN_UNREACHABLE 1
397
402
 
398
403
  // GCC doc: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
399
404
  #define V8_HAS_COMPUTED_GOTO 1
@@ -425,6 +430,18 @@ path. Add it with -I<path> to the command line
425
430
  # define V8_INLINE inline
426
431
  #endif
427
432
 
433
+ #ifdef DEBUG
434
+ // In debug mode, check assumptions instead of actually adding annotations.
435
+ # define V8_ASSUME(condition) DCHECK(condition)
436
+ #elif V8_HAS_BUILTIN_ASSUME
437
+ # define V8_ASSUME(condition) __builtin_assume(condition)
438
+ #elif V8_HAS_BUILTIN_UNREACHABLE
439
+ # define V8_ASSUME(condition) \
440
+ do { if (!(condition)) __builtin_unreachable(); } while (false)
441
+ #else
442
+ # define V8_ASSUME(condition)
443
+ #endif
444
+
428
445
  #if V8_HAS_BUILTIN_ASSUME_ALIGNED
429
446
  # define V8_ASSUME_ALIGNED(ptr, alignment) \
430
447
  __builtin_assume_aligned((ptr), (alignment))
@@ -471,6 +488,34 @@ path. Add it with -I<path> to the command line
471
488
  #endif
472
489
 
473
490
 
491
+ #if defined(V8_IMMINENT_DEPRECATION_WARNINGS) || \
492
+ defined(V8_DEPRECATION_WARNINGS)
493
+ #if defined(V8_CC_MSVC)
494
+ # define START_ALLOW_USE_DEPRECATED() \
495
+ __pragma(warning(push)) \
496
+ __pragma(warning(disable : 4996))
497
+ # define END_ALLOW_USE_DEPRECATED() __pragma(warning(pop))
498
+ #else // !defined(V8_CC_MSVC)
499
+ # define START_ALLOW_USE_DEPRECATED() \
500
+ _Pragma("GCC diagnostic push") \
501
+ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
502
+ #define END_ALLOW_USE_DEPRECATED() _Pragma("GCC diagnostic pop")
503
+ #endif // !defined(V8_CC_MSVC)
504
+ #else // !(defined(V8_IMMINENT_DEPRECATION_WARNINGS) ||
505
+ // defined(V8_DEPRECATION_WARNINGS))
506
+ #define START_ALLOW_USE_DEPRECATED()
507
+ #define END_ALLOW_USE_DEPRECATED()
508
+ #endif // !(defined(V8_IMMINENT_DEPRECATION_WARNINGS) ||
509
+ // defined(V8_DEPRECATION_WARNINGS))
510
+ #define ALLOW_COPY_AND_MOVE_WITH_DEPRECATED_FIELDS(ClassName) \
511
+ START_ALLOW_USE_DEPRECATED() \
512
+ ClassName(const ClassName&) = default; \
513
+ ClassName(ClassName&&) = default; \
514
+ ClassName& operator=(const ClassName&) = default; \
515
+ ClassName& operator=(ClassName&&) = default; \
516
+ END_ALLOW_USE_DEPRECATED()
517
+
518
+
474
519
  #if defined(__GNUC__) && !defined(__clang__) && (__GNUC__ < 6)
475
520
  # define V8_ENUM_DEPRECATED(message)
476
521
  # define V8_ENUM_DEPRECATE_SOON(message)
@@ -534,6 +579,37 @@ path. Add it with -I<path> to the command line
534
579
  #define V8_NO_UNIQUE_ADDRESS /* NOT SUPPORTED */
535
580
  #endif
536
581
 
582
+ // Marks a type as being eligible for the "trivial" ABI despite having a
583
+ // non-trivial destructor or copy/move constructor. Such types can be relocated
584
+ // after construction by simply copying their memory, which makes them eligible
585
+ // to be passed in registers. The canonical example is std::unique_ptr.
586
+ //
587
+ // Use with caution; this has some subtle effects on constructor/destructor
588
+ // ordering and will be very incorrect if the type relies on its address
589
+ // remaining constant. When used as a function argument (by value), the value
590
+ // may be constructed in the caller's stack frame, passed in a register, and
591
+ // then used and destructed in the callee's stack frame. A similar thing can
592
+ // occur when values are returned.
593
+ //
594
+ // TRIVIAL_ABI is not needed for types which have a trivial destructor and
595
+ // copy/move constructors, since those are automatically trivial by the ABI
596
+ // spec.
597
+ //
598
+ // It is also not likely to be effective on types too large to be passed in one
599
+ // or two registers on typical target ABIs.
600
+ //
601
+ // See also:
602
+ // https://clang.llvm.org/docs/AttributeReference.html#trivial-abi
603
+ // https://libcxx.llvm.org/docs/DesignDocs/UniquePtrTrivialAbi.html
604
+ #if defined(__clang__) && defined(__has_attribute)
605
+ #if __has_attribute(trivial_abi)
606
+ #define V8_TRIVIAL_ABI [[clang::trivial_abi]]
607
+ #endif // __has_attribute(trivial_abi)
608
+ #endif // defined(__clang__) && defined(__has_attribute)
609
+ #if !defined(V8_TRIVIAL_ABI)
610
+ #define V8_TRIVIAL_ABI
611
+ #endif //!defined(V8_TRIVIAL_ABI)
612
+
537
613
  // Helper macro to define no_sanitize attributes only with clang.
538
614
  #if defined(__clang__) && defined(__has_attribute)
539
615
  #if __has_attribute(no_sanitize)
@@ -580,25 +656,216 @@ V8 shared library set USING_V8_SHARED.
580
656
 
581
657
  #endif // V8_OS_WIN
582
658
 
583
- // The sandbox is available (i.e. defined) when pointer compression
584
- // is enabled, but it is only used when V8_SANDBOX is enabled as
585
- // well. This allows better test coverage of the sandbox.
586
- #if defined(V8_COMPRESS_POINTERS)
587
- #define V8_SANDBOX_IS_AVAILABLE
659
+ // clang-format on
660
+
661
+ // Processor architecture detection. For more info on what's defined, see:
662
+ // http://msdn.microsoft.com/en-us/library/b0084kay.aspx
663
+ // http://www.agner.org/optimize/calling_conventions.pdf
664
+ // or with gcc, run: "echo | gcc -E -dM -"
665
+ // The V8_HOST_ARCH_* macros correspond to the architecture on which V8, as a
666
+ // virtual machine and compiler, runs. Don't confuse this with the architecture
667
+ // on which V8 is built.
668
+ #if defined(_M_X64) || defined(__x86_64__)
669
+ #define V8_HOST_ARCH_X64 1
670
+ #if defined(__x86_64__) && __SIZEOF_POINTER__ == 4 // Check for x32.
671
+ #define V8_HOST_ARCH_32_BIT 1
672
+ #else
673
+ #define V8_HOST_ARCH_64_BIT 1
674
+ #endif
675
+ #elif defined(_M_IX86) || defined(__i386__)
676
+ #define V8_HOST_ARCH_IA32 1
677
+ #define V8_HOST_ARCH_32_BIT 1
678
+ #elif defined(__AARCH64EL__) || defined(_M_ARM64)
679
+ #define V8_HOST_ARCH_ARM64 1
680
+ #define V8_HOST_ARCH_64_BIT 1
681
+ #elif defined(__ARMEL__)
682
+ #define V8_HOST_ARCH_ARM 1
683
+ #define V8_HOST_ARCH_32_BIT 1
684
+ #elif defined(__mips64)
685
+ #define V8_HOST_ARCH_MIPS64 1
686
+ #define V8_HOST_ARCH_64_BIT 1
687
+ #elif defined(__loongarch64)
688
+ #define V8_HOST_ARCH_LOONG64 1
689
+ #define V8_HOST_ARCH_64_BIT 1
690
+ #elif defined(__PPC64__) || defined(_ARCH_PPC64)
691
+ #define V8_HOST_ARCH_PPC64 1
692
+ #define V8_HOST_ARCH_64_BIT 1
693
+ #elif defined(__PPC__) || defined(_ARCH_PPC)
694
+ #define V8_HOST_ARCH_PPC 1
695
+ #define V8_HOST_ARCH_32_BIT 1
696
+ #elif defined(__s390__) || defined(__s390x__)
697
+ #define V8_HOST_ARCH_S390 1
698
+ #if defined(__s390x__)
699
+ #define V8_HOST_ARCH_64_BIT 1
700
+ #else
701
+ #define V8_HOST_ARCH_32_BIT 1
702
+ #endif
703
+ #elif defined(__riscv) || defined(__riscv__)
704
+ #if __riscv_xlen == 64
705
+ #define V8_HOST_ARCH_RISCV64 1
706
+ #define V8_HOST_ARCH_64_BIT 1
707
+ #elif __riscv_xlen == 32
708
+ #define V8_HOST_ARCH_RISCV32 1
709
+ #define V8_HOST_ARCH_32_BIT 1
710
+ #else
711
+ #error "Cannot detect Riscv's bitwidth"
712
+ #endif
713
+ #else
714
+ #error "Host architecture was not detected as supported by v8"
715
+ #endif
716
+
717
+ // Target architecture detection. This corresponds to the architecture for which
718
+ // V8's JIT will generate code (the last stage of the canadian cross-compiler).
719
+ // The macros may be set externally. If not, detect in the same way as the host
720
+ // architecture, that is, target the native environment as presented by the
721
+ // compiler.
722
+ #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_IA32 && !V8_TARGET_ARCH_ARM && \
723
+ !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS64 && !V8_TARGET_ARCH_PPC && \
724
+ !V8_TARGET_ARCH_PPC64 && !V8_TARGET_ARCH_S390 && \
725
+ !V8_TARGET_ARCH_RISCV64 && !V8_TARGET_ARCH_LOONG64 && \
726
+ !V8_TARGET_ARCH_RISCV32
727
+ #if defined(_M_X64) || defined(__x86_64__)
728
+ #define V8_TARGET_ARCH_X64 1
729
+ #elif defined(_M_IX86) || defined(__i386__)
730
+ #define V8_TARGET_ARCH_IA32 1
731
+ #elif defined(__AARCH64EL__) || defined(_M_ARM64)
732
+ #define V8_TARGET_ARCH_ARM64 1
733
+ #elif defined(__ARMEL__)
734
+ #define V8_TARGET_ARCH_ARM 1
735
+ #elif defined(__mips64)
736
+ #define V8_TARGET_ARCH_MIPS64 1
737
+ #elif defined(__loongarch64)
738
+ #define V8_TARGET_ARCH_LOONG64 1
739
+ #elif defined(_ARCH_PPC64)
740
+ #define V8_TARGET_ARCH_PPC64 1
741
+ #elif defined(_ARCH_PPC)
742
+ #define V8_TARGET_ARCH_PPC 1
743
+ #elif defined(__s390__)
744
+ #define V8_TARGET_ARCH_S390 1
745
+ #if defined(__s390x__)
746
+ #define V8_TARGET_ARCH_S390X 1
747
+ #endif
748
+ #elif defined(__riscv) || defined(__riscv__)
749
+ #if __riscv_xlen == 64
750
+ #define V8_TARGET_ARCH_RISCV64 1
751
+ #elif __riscv_xlen == 32
752
+ #define V8_TARGET_ARCH_RISCV32 1
753
+ #endif
754
+ #else
755
+ #error Target architecture was not detected as supported by v8
756
+ #endif
588
757
  #endif
589
758
 
590
- #if defined(V8_SANDBOX) && !defined(V8_SANDBOX_IS_AVAILABLE)
591
- #error Inconsistent configuration: sandbox is enabled but not available
759
+ // Determine architecture pointer size.
760
+ #if V8_TARGET_ARCH_IA32
761
+ #define V8_TARGET_ARCH_32_BIT 1
762
+ #elif V8_TARGET_ARCH_X64
763
+ #if !V8_TARGET_ARCH_32_BIT && !V8_TARGET_ARCH_64_BIT
764
+ #if defined(__x86_64__) && __SIZEOF_POINTER__ == 4 // Check for x32.
765
+ #define V8_TARGET_ARCH_32_BIT 1
766
+ #else
767
+ #define V8_TARGET_ARCH_64_BIT 1
768
+ #endif
769
+ #endif
770
+ #elif V8_TARGET_ARCH_ARM
771
+ #define V8_TARGET_ARCH_32_BIT 1
772
+ #elif V8_TARGET_ARCH_ARM64
773
+ #define V8_TARGET_ARCH_64_BIT 1
774
+ #elif V8_TARGET_ARCH_MIPS
775
+ #define V8_TARGET_ARCH_32_BIT 1
776
+ #elif V8_TARGET_ARCH_MIPS64
777
+ #define V8_TARGET_ARCH_64_BIT 1
778
+ #elif V8_TARGET_ARCH_LOONG64
779
+ #define V8_TARGET_ARCH_64_BIT 1
780
+ #elif V8_TARGET_ARCH_PPC
781
+ #define V8_TARGET_ARCH_32_BIT 1
782
+ #elif V8_TARGET_ARCH_PPC64
783
+ #define V8_TARGET_ARCH_64_BIT 1
784
+ #elif V8_TARGET_ARCH_S390
785
+ #if V8_TARGET_ARCH_S390X
786
+ #define V8_TARGET_ARCH_64_BIT 1
787
+ #else
788
+ #define V8_TARGET_ARCH_32_BIT 1
789
+ #endif
790
+ #elif V8_TARGET_ARCH_RISCV64
791
+ #define V8_TARGET_ARCH_64_BIT 1
792
+ #elif V8_TARGET_ARCH_RISCV32
793
+ #define V8_TARGET_ARCH_32_BIT 1
794
+ #else
795
+ #error Unknown target architecture pointer size
592
796
  #endif
593
797
 
594
- // From C++17 onwards, static constexpr member variables are defined to be
595
- // "inline", and adding a separate definition for them can trigger deprecation
596
- // warnings. For C++14 and below, however, these definitions are required.
597
- #if __cplusplus < 201703L && (!defined(_MSVC_LANG) || _MSVC_LANG < 201703L)
598
- #define V8_STATIC_CONSTEXPR_VARIABLES_NEED_DEFINITIONS
798
+ // Check for supported combinations of host and target architectures.
799
+ #if V8_TARGET_ARCH_IA32 && !V8_HOST_ARCH_IA32
800
+ #error Target architecture ia32 is only supported on ia32 host
801
+ #endif
802
+ #if (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT && \
803
+ !((V8_HOST_ARCH_X64 || V8_HOST_ARCH_ARM64) && V8_HOST_ARCH_64_BIT))
804
+ #error Target architecture x64 is only supported on x64 and arm64 host
805
+ #endif
806
+ #if (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT && \
807
+ !(V8_HOST_ARCH_X64 && V8_HOST_ARCH_32_BIT))
808
+ #error Target architecture x32 is only supported on x64 host with x32 support
809
+ #endif
810
+ #if (V8_TARGET_ARCH_ARM && !(V8_HOST_ARCH_IA32 || V8_HOST_ARCH_ARM))
811
+ #error Target architecture arm is only supported on arm and ia32 host
812
+ #endif
813
+ #if (V8_TARGET_ARCH_ARM64 && !(V8_HOST_ARCH_X64 || V8_HOST_ARCH_ARM64))
814
+ #error Target architecture arm64 is only supported on arm64 and x64 host
815
+ #endif
816
+ #if (V8_TARGET_ARCH_MIPS64 && !(V8_HOST_ARCH_X64 || V8_HOST_ARCH_MIPS64))
817
+ #error Target architecture mips64 is only supported on mips64 and x64 host
818
+ #endif
819
+ #if (V8_TARGET_ARCH_RISCV64 && !(V8_HOST_ARCH_X64 || V8_HOST_ARCH_RISCV64))
820
+ #error Target architecture riscv64 is only supported on riscv64 and x64 host
821
+ #endif
822
+ #if (V8_TARGET_ARCH_RISCV32 && !(V8_HOST_ARCH_IA32 || V8_HOST_ARCH_RISCV32))
823
+ #error Target architecture riscv32 is only supported on riscv32 and ia32 host
824
+ #endif
825
+ #if (V8_TARGET_ARCH_LOONG64 && !(V8_HOST_ARCH_X64 || V8_HOST_ARCH_LOONG64))
826
+ #error Target architecture loong64 is only supported on loong64 and x64 host
599
827
  #endif
600
828
 
601
- // clang-format on
829
+ // Determine architecture endianness.
830
+ #if V8_TARGET_ARCH_IA32
831
+ #define V8_TARGET_LITTLE_ENDIAN 1
832
+ #elif V8_TARGET_ARCH_X64
833
+ #define V8_TARGET_LITTLE_ENDIAN 1
834
+ #elif V8_TARGET_ARCH_ARM
835
+ #define V8_TARGET_LITTLE_ENDIAN 1
836
+ #elif V8_TARGET_ARCH_ARM64
837
+ #define V8_TARGET_LITTLE_ENDIAN 1
838
+ #elif V8_TARGET_ARCH_LOONG64
839
+ #define V8_TARGET_LITTLE_ENDIAN 1
840
+ #elif V8_TARGET_ARCH_MIPS64
841
+ #if defined(__MIPSEB__) || defined(V8_TARGET_ARCH_MIPS64_BE)
842
+ #define V8_TARGET_BIG_ENDIAN 1
843
+ #else
844
+ #define V8_TARGET_LITTLE_ENDIAN 1
845
+ #endif
846
+ #elif defined(__BIG_ENDIAN__) // FOR PPCGR on AIX
847
+ #define V8_TARGET_BIG_ENDIAN 1
848
+ #elif V8_TARGET_ARCH_PPC_LE
849
+ #define V8_TARGET_LITTLE_ENDIAN 1
850
+ #elif V8_TARGET_ARCH_PPC_BE
851
+ #define V8_TARGET_BIG_ENDIAN 1
852
+ #elif V8_TARGET_ARCH_S390
853
+ #if V8_TARGET_ARCH_S390_LE_SIM
854
+ #define V8_TARGET_LITTLE_ENDIAN 1
855
+ #else
856
+ #define V8_TARGET_BIG_ENDIAN 1
857
+ #endif
858
+ #elif V8_TARGET_ARCH_RISCV32 || V8_TARGET_ARCH_RISCV64
859
+ #define V8_TARGET_LITTLE_ENDIAN 1
860
+ #elif defined(__BYTE_ORDER__)
861
+ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
862
+ #define V8_TARGET_BIG_ENDIAN 1
863
+ #else
864
+ #define V8_TARGET_LITTLE_ENDIAN 1
865
+ #endif
866
+ #else
867
+ #error Unknown target architecture endianness
868
+ #endif
602
869
 
603
870
  #undef V8_HAS_CPP_ATTRIBUTE
604
871
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libv8-node
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.19.1.0
4
+ version: 19.9.0.0
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-03 00:00:00.000000000 Z
11
+ date: 2023-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -61,16 +61,20 @@ files:
61
61
  - vendor/v8/include/cppgc/explicit-management.h
62
62
  - vendor/v8/include/cppgc/garbage-collected.h
63
63
  - vendor/v8/include/cppgc/heap-consistency.h
64
+ - vendor/v8/include/cppgc/heap-handle.h
64
65
  - vendor/v8/include/cppgc/heap-state.h
65
66
  - vendor/v8/include/cppgc/heap-statistics.h
66
67
  - vendor/v8/include/cppgc/heap.h
67
68
  - vendor/v8/include/cppgc/internal/api-constants.h
68
69
  - vendor/v8/include/cppgc/internal/atomic-entry-flag.h
70
+ - vendor/v8/include/cppgc/internal/base-page-handle.h
69
71
  - vendor/v8/include/cppgc/internal/caged-heap-local-data.h
72
+ - vendor/v8/include/cppgc/internal/caged-heap.h
70
73
  - vendor/v8/include/cppgc/internal/compiler-specific.h
71
74
  - vendor/v8/include/cppgc/internal/finalizer-trait.h
72
75
  - vendor/v8/include/cppgc/internal/gc-info.h
73
76
  - vendor/v8/include/cppgc/internal/logging.h
77
+ - vendor/v8/include/cppgc/internal/member-storage.h
74
78
  - vendor/v8/include/cppgc/internal/name-trait.h
75
79
  - vendor/v8/include/cppgc/internal/persistent-node.h
76
80
  - vendor/v8/include/cppgc/internal/pointer-policies.h
@@ -173,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
177
  - !ruby/object:Gem::Version
174
178
  version: '0'
175
179
  requirements: []
176
- rubygems_version: 3.4.22
180
+ rubygems_version: 3.3.20
177
181
  signing_key:
178
182
  specification_version: 4
179
183
  summary: Node.JS's V8 JavaScript engine