libv8-node 21.7.2.0-aarch64-linux-musl → 24.12.0.0-aarch64-linux-musl
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.
- checksums.yaml +4 -4
- data/ext/libv8-node/location.rb +3 -5
- data/ext/libv8-node/paths.rb +2 -0
- data/lib/libv8/node/version.rb +7 -4
- data/lib/libv8/node.rb +2 -0
- data/lib/libv8-node.rb +2 -0
- data/vendor/v8/aarch64-linux-musl/libv8/obj/libv8_monolith.a +0 -0
- data/vendor/v8/include/cppgc/allocation.h +11 -13
- data/vendor/v8/include/cppgc/default-platform.h +3 -2
- data/vendor/v8/include/cppgc/garbage-collected.h +8 -0
- data/vendor/v8/include/cppgc/heap-consistency.h +1 -1
- data/vendor/v8/include/cppgc/heap-statistics.h +2 -0
- data/vendor/v8/include/cppgc/internal/api-constants.h +2 -14
- data/vendor/v8/include/cppgc/internal/base-page-handle.h +2 -4
- data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +0 -4
- data/vendor/v8/include/cppgc/internal/caged-heap.h +0 -4
- data/vendor/v8/include/cppgc/internal/compiler-specific.h +9 -1
- data/vendor/v8/include/cppgc/internal/conditional-stack-allocated.h +41 -0
- data/vendor/v8/include/cppgc/internal/gc-info.h +12 -10
- data/vendor/v8/include/cppgc/internal/logging.h +3 -3
- data/vendor/v8/include/cppgc/internal/member-storage.h +69 -20
- data/vendor/v8/include/cppgc/internal/name-trait.h +5 -1
- data/vendor/v8/include/cppgc/internal/persistent-node.h +8 -3
- data/vendor/v8/include/cppgc/internal/pointer-policies.h +48 -11
- data/vendor/v8/include/cppgc/macros.h +21 -0
- data/vendor/v8/include/cppgc/member.h +70 -36
- data/vendor/v8/include/cppgc/name-provider.h +10 -0
- data/vendor/v8/include/cppgc/platform.h +11 -0
- data/vendor/v8/include/cppgc/type-traits.h +26 -4
- data/vendor/v8/include/cppgc/visitor.h +25 -1
- data/vendor/v8/include/libplatform/libplatform-export.h +2 -2
- data/vendor/v8/include/libplatform/v8-tracing.h +0 -1
- data/vendor/v8/include/v8-array-buffer.h +149 -46
- data/vendor/v8/include/v8-callbacks.h +100 -43
- data/vendor/v8/include/v8-container.h +54 -0
- data/vendor/v8/include/v8-context.h +92 -30
- data/vendor/v8/include/v8-cppgc.h +5 -56
- data/vendor/v8/include/v8-data.h +5 -0
- data/vendor/v8/include/v8-date.h +9 -0
- data/vendor/v8/include/v8-debug.h +11 -0
- data/vendor/v8/include/v8-embedder-heap.h +8 -20
- data/vendor/v8/include/v8-embedder-state-scope.h +2 -1
- data/vendor/v8/include/v8-exception.h +87 -9
- data/vendor/v8/include/v8-external-memory-accounter.h +60 -0
- data/vendor/v8/include/v8-fast-api-calls.h +67 -223
- data/vendor/v8/include/v8-forward.h +1 -0
- data/vendor/v8/include/v8-function-callback.h +296 -75
- data/vendor/v8/include/v8-function.h +11 -3
- data/vendor/v8/include/v8-handle-base.h +52 -82
- data/vendor/v8/include/v8-initialization.h +26 -1
- data/vendor/v8/include/v8-inspector.h +26 -27
- data/vendor/v8/include/v8-internal.h +960 -230
- data/vendor/v8/include/v8-isolate.h +347 -226
- data/vendor/v8/include/v8-local-handle.h +307 -55
- data/vendor/v8/include/v8-maybe.h +2 -1
- data/vendor/v8/include/v8-memory-span.h +284 -4
- data/vendor/v8/include/v8-message.h +11 -5
- data/vendor/v8/include/v8-metrics.h +15 -0
- data/vendor/v8/include/v8-microtask-queue.h +0 -5
- data/vendor/v8/include/v8-object.h +314 -41
- data/vendor/v8/include/v8-persistent-handle.h +29 -39
- data/vendor/v8/include/v8-platform.h +135 -77
- data/vendor/v8/include/v8-primitive.h +223 -5
- data/vendor/v8/include/v8-profiler.h +51 -2
- data/vendor/v8/include/v8-promise.h +2 -2
- data/vendor/v8/include/v8-proxy.h +0 -1
- data/vendor/v8/include/v8-regexp.h +0 -1
- data/vendor/v8/include/v8-sandbox.h +173 -0
- data/vendor/v8/include/v8-script.h +125 -27
- data/vendor/v8/include/v8-snapshot.h +130 -23
- data/vendor/v8/include/v8-source-location.h +6 -1
- data/vendor/v8/include/v8-statistics.h +10 -24
- data/vendor/v8/include/v8-template.h +320 -193
- data/vendor/v8/include/v8-trace-categories.h +23 -0
- data/vendor/v8/include/v8-traced-handle.h +99 -76
- data/vendor/v8/include/v8-typed-array.h +111 -7
- data/vendor/v8/include/v8-unwinder-state.h +2 -3
- data/vendor/v8/include/v8-unwinder.h +2 -1
- data/vendor/v8/include/v8-util.h +10 -125
- data/vendor/v8/include/v8-value-serializer-version.h +3 -3
- data/vendor/v8/include/v8-value.h +113 -6
- data/vendor/v8/include/v8-version.h +3 -3
- data/vendor/v8/include/v8-wasm.h +27 -0
- data/vendor/v8/include/v8-weak-callback-info.h +20 -12
- data/vendor/v8/include/v8.h +3 -3
- data/vendor/v8/include/v8config.h +116 -53
- metadata +55 -12
- data/vendor/v8/include/cppgc/ephemeron-pair.h +0 -30
|
@@ -5,14 +5,23 @@
|
|
|
5
5
|
#ifndef V8CONFIG_H_
|
|
6
6
|
#define V8CONFIG_H_
|
|
7
7
|
|
|
8
|
+
// gcc 10 defines __cplusplus to "an unspecified value strictly larger than
|
|
9
|
+
// 201703L" for its experimental -std=gnu++2a config.
|
|
10
|
+
// TODO(leszeks): Change to `__cplusplus <= 202002L` once we only support
|
|
11
|
+
// compilers with full C++20 support.
|
|
12
|
+
#if __cplusplus <= 201703L
|
|
13
|
+
#error "C++20 or later required."
|
|
14
|
+
#endif
|
|
15
|
+
|
|
8
16
|
#ifdef V8_GN_HEADER
|
|
9
|
-
#if
|
|
17
|
+
#if !__has_include("v8-gn.h")
|
|
10
18
|
#error Missing v8-gn.h. The configuration for v8 is missing from the include \
|
|
11
19
|
path. Add it with -I<path> to the command line
|
|
12
20
|
#endif
|
|
13
21
|
#include "v8-gn.h" // NOLINT(build/include_directory)
|
|
14
22
|
#endif
|
|
15
23
|
|
|
24
|
+
#include <memory>
|
|
16
25
|
// clang-format off
|
|
17
26
|
|
|
18
27
|
// Platform headers for feature detection below.
|
|
@@ -22,6 +31,8 @@ path. Add it with -I<path> to the command line
|
|
|
22
31
|
# include <TargetConditionals.h>
|
|
23
32
|
#elif defined(__linux__)
|
|
24
33
|
# include <features.h>
|
|
34
|
+
#elif defined(__MVS__)
|
|
35
|
+
# include "zos-base.h"
|
|
25
36
|
#endif
|
|
26
37
|
|
|
27
38
|
|
|
@@ -82,6 +93,7 @@ path. Add it with -I<path> to the command line
|
|
|
82
93
|
// V8_OS_STARBOARD - Starboard (platform abstraction for Cobalt)
|
|
83
94
|
// V8_OS_AIX - AIX
|
|
84
95
|
// V8_OS_WIN - Microsoft Windows
|
|
96
|
+
// V8_OS_ZOS - z/OS
|
|
85
97
|
|
|
86
98
|
#if defined(__ANDROID__)
|
|
87
99
|
# define V8_OS_ANDROID 1
|
|
@@ -162,6 +174,11 @@ path. Add it with -I<path> to the command line
|
|
|
162
174
|
#elif defined(_WIN32)
|
|
163
175
|
# define V8_OS_WIN 1
|
|
164
176
|
# define V8_OS_STRING "windows"
|
|
177
|
+
|
|
178
|
+
#elif defined(__MVS__)
|
|
179
|
+
# define V8_OS_POSIX 1
|
|
180
|
+
# define V8_OS_ZOS 1
|
|
181
|
+
# define V8_OS_STRING "zos"
|
|
165
182
|
#endif
|
|
166
183
|
|
|
167
184
|
// -----------------------------------------------------------------------------
|
|
@@ -297,12 +314,16 @@ path. Add it with -I<path> to the command line
|
|
|
297
314
|
// V8_HAS_ATTRIBUTE_NONNULL - __attribute__((nonnull)) supported
|
|
298
315
|
// V8_HAS_ATTRIBUTE_NOINLINE - __attribute__((noinline)) supported
|
|
299
316
|
// V8_HAS_ATTRIBUTE_UNUSED - __attribute__((unused)) supported
|
|
317
|
+
// V8_HAS_ATTRIBUTE_USED - __attribute__((used)) supported
|
|
318
|
+
// V8_HAS_ATTRIBUTE_RETAIN - __attribute__((retain)) supported
|
|
300
319
|
// V8_HAS_ATTRIBUTE_VISIBILITY - __attribute__((visibility)) supported
|
|
301
320
|
// V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT - __attribute__((warn_unused_result))
|
|
302
321
|
// supported
|
|
303
322
|
// V8_HAS_CPP_ATTRIBUTE_NODISCARD - [[nodiscard]] supported
|
|
304
323
|
// V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS
|
|
305
324
|
// - [[no_unique_address]] supported
|
|
325
|
+
// V8_HAS_BUILTIN_ADD_OVERFLOW - __builtin_add_overflow() supported
|
|
326
|
+
// V8_HAS_BUILTIN_BIT_CAST - __builtin_bit_cast() supported
|
|
306
327
|
// V8_HAS_BUILTIN_BSWAP16 - __builtin_bswap16() supported
|
|
307
328
|
// V8_HAS_BUILTIN_BSWAP32 - __builtin_bswap32() supported
|
|
308
329
|
// V8_HAS_BUILTIN_BSWAP64 - __builtin_bswap64() supported
|
|
@@ -310,14 +331,13 @@ path. Add it with -I<path> to the command line
|
|
|
310
331
|
// V8_HAS_BUILTIN_CTZ - __builtin_ctz() supported
|
|
311
332
|
// V8_HAS_BUILTIN_EXPECT - __builtin_expect() supported
|
|
312
333
|
// V8_HAS_BUILTIN_FRAME_ADDRESS - __builtin_frame_address() supported
|
|
313
|
-
// V8_HAS_BUILTIN_POPCOUNT - __builtin_popcount() supported
|
|
314
|
-
// V8_HAS_BUILTIN_ADD_OVERFLOW - __builtin_add_overflow() supported
|
|
315
|
-
// V8_HAS_BUILTIN_SUB_OVERFLOW - __builtin_sub_overflow() supported
|
|
316
334
|
// V8_HAS_BUILTIN_MUL_OVERFLOW - __builtin_mul_overflow() supported
|
|
335
|
+
// V8_HAS_BUILTIN_POPCOUNT - __builtin_popcount() supported
|
|
317
336
|
// V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported
|
|
337
|
+
// V8_HAS_BUILTIN_SMUL_OVERFLOW - __builtin_smul_overflow() supported
|
|
318
338
|
// V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported
|
|
339
|
+
// V8_HAS_BUILTIN_SUB_OVERFLOW - __builtin_sub_overflow() supported
|
|
319
340
|
// V8_HAS_BUILTIN_UADD_OVERFLOW - __builtin_uadd_overflow() supported
|
|
320
|
-
// V8_HAS_BUILTIN_SMUL_OVERFLOW - __builtin_smul_overflow() supported
|
|
321
341
|
// V8_HAS_COMPUTED_GOTO - computed goto/labels as values
|
|
322
342
|
// supported
|
|
323
343
|
// V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported
|
|
@@ -349,6 +369,9 @@ path. Add it with -I<path> to the command line
|
|
|
349
369
|
# define V8_HAS_ATTRIBUTE_NONNULL (__has_attribute(nonnull))
|
|
350
370
|
# define V8_HAS_ATTRIBUTE_NOINLINE (__has_attribute(noinline))
|
|
351
371
|
# define V8_HAS_ATTRIBUTE_UNUSED (__has_attribute(unused))
|
|
372
|
+
# define V8_HAS_ATTRIBUTE_USED (__has_attribute(used))
|
|
373
|
+
# define V8_HAS_ATTRIBUTE_RETAIN (__has_attribute(retain))
|
|
374
|
+
# define V8_HAS_ATTRIBUTE_OPTNONE (__has_attribute(optnone))
|
|
352
375
|
// Support for the "preserve_most" attribute is limited:
|
|
353
376
|
// - 32-bit platforms do not implement it,
|
|
354
377
|
// - component builds fail because _dl_runtime_resolve clobbers registers,
|
|
@@ -370,11 +393,19 @@ path. Add it with -I<path> to the command line
|
|
|
370
393
|
# define V8_HAS_ATTRIBUTE_WEAK (__has_attribute(weak))
|
|
371
394
|
|
|
372
395
|
# define V8_HAS_CPP_ATTRIBUTE_NODISCARD (V8_HAS_CPP_ATTRIBUTE(nodiscard))
|
|
396
|
+
#if defined(V8_CC_MSVC)
|
|
397
|
+
# define V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS \
|
|
398
|
+
(V8_HAS_CPP_ATTRIBUTE(msvc::no_unique_address) || \
|
|
399
|
+
V8_HAS_CPP_ATTRIBUTE(no_unique_address))
|
|
400
|
+
#else
|
|
373
401
|
# define V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS \
|
|
374
402
|
(V8_HAS_CPP_ATTRIBUTE(no_unique_address))
|
|
403
|
+
#endif
|
|
375
404
|
|
|
405
|
+
# define V8_HAS_BUILTIN_ADD_OVERFLOW (__has_builtin(__builtin_add_overflow))
|
|
376
406
|
# define V8_HAS_BUILTIN_ASSUME (__has_builtin(__builtin_assume))
|
|
377
407
|
# define V8_HAS_BUILTIN_ASSUME_ALIGNED (__has_builtin(__builtin_assume_aligned))
|
|
408
|
+
# define V8_HAS_BUILTIN_BIT_CAST (__has_builtin(__builtin_bit_cast))
|
|
378
409
|
# define V8_HAS_BUILTIN_BSWAP16 (__has_builtin(__builtin_bswap16))
|
|
379
410
|
# define V8_HAS_BUILTIN_BSWAP32 (__has_builtin(__builtin_bswap32))
|
|
380
411
|
# define V8_HAS_BUILTIN_BSWAP64 (__has_builtin(__builtin_bswap64))
|
|
@@ -382,14 +413,13 @@ path. Add it with -I<path> to the command line
|
|
|
382
413
|
# define V8_HAS_BUILTIN_CTZ (__has_builtin(__builtin_ctz))
|
|
383
414
|
# define V8_HAS_BUILTIN_EXPECT (__has_builtin(__builtin_expect))
|
|
384
415
|
# define V8_HAS_BUILTIN_FRAME_ADDRESS (__has_builtin(__builtin_frame_address))
|
|
385
|
-
# define V8_HAS_BUILTIN_POPCOUNT (__has_builtin(__builtin_popcount))
|
|
386
|
-
# define V8_HAS_BUILTIN_ADD_OVERFLOW (__has_builtin(__builtin_add_overflow))
|
|
387
|
-
# define V8_HAS_BUILTIN_SUB_OVERFLOW (__has_builtin(__builtin_sub_overflow))
|
|
388
416
|
# define V8_HAS_BUILTIN_MUL_OVERFLOW (__has_builtin(__builtin_mul_overflow))
|
|
417
|
+
# define V8_HAS_BUILTIN_POPCOUNT (__has_builtin(__builtin_popcount))
|
|
389
418
|
# define V8_HAS_BUILTIN_SADD_OVERFLOW (__has_builtin(__builtin_sadd_overflow))
|
|
419
|
+
# define V8_HAS_BUILTIN_SMUL_OVERFLOW (__has_builtin(__builtin_smul_overflow))
|
|
390
420
|
# define V8_HAS_BUILTIN_SSUB_OVERFLOW (__has_builtin(__builtin_ssub_overflow))
|
|
421
|
+
# define V8_HAS_BUILTIN_SUB_OVERFLOW (__has_builtin(__builtin_sub_overflow))
|
|
391
422
|
# define V8_HAS_BUILTIN_UADD_OVERFLOW (__has_builtin(__builtin_uadd_overflow))
|
|
392
|
-
# define V8_HAS_BUILTIN_SMUL_OVERFLOW (__has_builtin(__builtin_smul_overflow))
|
|
393
423
|
# define V8_HAS_BUILTIN_UNREACHABLE (__has_builtin(__builtin_unreachable))
|
|
394
424
|
|
|
395
425
|
// Clang has no __has_feature for computed gotos.
|
|
@@ -410,6 +440,11 @@ path. Add it with -I<path> to the command line
|
|
|
410
440
|
# endif
|
|
411
441
|
# define V8_CC_MINGW (V8_CC_MINGW32 || V8_CC_MINGW64)
|
|
412
442
|
|
|
443
|
+
// FYI: __has_builtin is only available with GCC 10 and later, so explicitly
|
|
444
|
+
// check GCC version numbers to enable features. TODO(leszeks): Merge feature
|
|
445
|
+
// enabling for GCC 10 and later into the Clang section above, and leave this
|
|
446
|
+
// section for GCC 9 and earlier.
|
|
447
|
+
|
|
413
448
|
// always_inline is available in gcc 4.0 but not very reliable until 4.4.
|
|
414
449
|
// Works around "sorry, unimplemented: inlining failed" build errors with
|
|
415
450
|
// older compilers.
|
|
@@ -425,6 +460,9 @@ path. Add it with -I<path> to the command line
|
|
|
425
460
|
// for V8_HAS_CPP_ATTRIBUTE_NODISCARD. See https://crbug.com/v8/11707.
|
|
426
461
|
|
|
427
462
|
# define V8_HAS_BUILTIN_ASSUME_ALIGNED 1
|
|
463
|
+
# if __GNUC__ >= 11
|
|
464
|
+
# define V8_HAS_BUILTIN_BIT_CAST 1
|
|
465
|
+
# endif
|
|
428
466
|
# define V8_HAS_BUILTIN_CLZ 1
|
|
429
467
|
# define V8_HAS_BUILTIN_CTZ 1
|
|
430
468
|
# define V8_HAS_BUILTIN_EXPECT 1
|
|
@@ -462,28 +500,51 @@ path. Add it with -I<path> to the command line
|
|
|
462
500
|
# define V8_INLINE inline
|
|
463
501
|
#endif
|
|
464
502
|
|
|
503
|
+
// A macro to force better inlining of calls in a statement. Don't bother for
|
|
504
|
+
// debug builds.
|
|
505
|
+
// Use like:
|
|
506
|
+
// V8_INLINE_STATEMENT foo = bar(); // Will force inlining the bar() call.
|
|
507
|
+
#if !defined(DEBUG) && defined(__clang__) && V8_HAS_ATTRIBUTE_ALWAYS_INLINE
|
|
508
|
+
# define V8_INLINE_STATEMENT [[clang::always_inline]]
|
|
509
|
+
#else
|
|
510
|
+
# define V8_INLINE_STATEMENT
|
|
511
|
+
#endif
|
|
512
|
+
|
|
513
|
+
#if V8_HAS_BUILTIN_ASSUME
|
|
465
514
|
#ifdef DEBUG
|
|
466
|
-
// In debug mode, check assumptions
|
|
467
|
-
|
|
468
|
-
|
|
515
|
+
// In debug mode, check assumptions in addition to adding annotations.
|
|
516
|
+
// This helps GCC (and maybe other compilers) figure out that certain
|
|
517
|
+
// situations are unreachable.
|
|
518
|
+
# define V8_ASSUME(condition) \
|
|
519
|
+
do { \
|
|
520
|
+
DCHECK(condition); \
|
|
521
|
+
__builtin_assume(condition); \
|
|
522
|
+
} while (false)
|
|
523
|
+
#else // DEBUG
|
|
469
524
|
# define V8_ASSUME __builtin_assume
|
|
525
|
+
#endif // DEBUG
|
|
470
526
|
#elif V8_HAS_BUILTIN_UNREACHABLE
|
|
471
527
|
# define V8_ASSUME(condition) \
|
|
472
528
|
do { \
|
|
529
|
+
DCHECK(condition); \
|
|
473
530
|
if (!(condition)) __builtin_unreachable(); \
|
|
474
531
|
} while (false)
|
|
475
532
|
#else
|
|
476
533
|
# define V8_ASSUME USE
|
|
477
534
|
#endif
|
|
478
535
|
|
|
479
|
-
|
|
536
|
+
// Prefer c++20 std::assume_aligned. Don't use it on MSVC though, because it's
|
|
537
|
+
// not happy with our large 4GB alignment values.
|
|
538
|
+
#if __cplusplus >= 202002L && defined(__cpp_lib_assume_aligned) && !V8_CC_MSVC
|
|
539
|
+
# define V8_ASSUME_ALIGNED(ptr, alignment) \
|
|
540
|
+
std::assume_aligned<(alignment)>(ptr)
|
|
541
|
+
#elif V8_HAS_BUILTIN_ASSUME_ALIGNED
|
|
480
542
|
# define V8_ASSUME_ALIGNED(ptr, alignment) \
|
|
481
543
|
__builtin_assume_aligned((ptr), (alignment))
|
|
482
544
|
#else
|
|
483
545
|
# define V8_ASSUME_ALIGNED(ptr, alignment) (ptr)
|
|
484
546
|
#endif
|
|
485
547
|
|
|
486
|
-
|
|
487
548
|
// A macro to mark functions whose values don't change (e.g. across calls)
|
|
488
549
|
// and thereby compiler is free to hoist and fold multiple calls together.
|
|
489
550
|
// Use like:
|
|
@@ -531,11 +592,15 @@ path. Add it with -I<path> to the command line
|
|
|
531
592
|
// functions.
|
|
532
593
|
// Use like:
|
|
533
594
|
// V8_NOINLINE V8_PRESERVE_MOST void UnlikelyMethod();
|
|
595
|
+
#if V8_OS_WIN
|
|
596
|
+
# define V8_PRESERVE_MOST
|
|
597
|
+
#else
|
|
534
598
|
#if V8_HAS_ATTRIBUTE_PRESERVE_MOST
|
|
535
599
|
# define V8_PRESERVE_MOST __attribute__((preserve_most))
|
|
536
600
|
#else
|
|
537
601
|
# define V8_PRESERVE_MOST /* NOT SUPPORTED */
|
|
538
602
|
#endif
|
|
603
|
+
#endif
|
|
539
604
|
|
|
540
605
|
|
|
541
606
|
// A macro (V8_DEPRECATED) to mark classes or functions as deprecated.
|
|
@@ -648,7 +713,15 @@ path. Add it with -I<path> to the command line
|
|
|
648
713
|
// [[no_unique_address]] comes in C++20 but supported in clang with
|
|
649
714
|
// -std >= c++11.
|
|
650
715
|
#if V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS
|
|
716
|
+
#if defined(V8_CC_MSVC) && V8_HAS_CPP_ATTRIBUTE(msvc::no_unique_address)
|
|
717
|
+
// Unfortunately MSVC ignores [[no_unique_address]] (see
|
|
718
|
+
// https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#msvc-extensions-and-abi),
|
|
719
|
+
// and clang-cl matches it for ABI compatibility reasons. We need to prefer
|
|
720
|
+
// [[msvc::no_unique_address]] when available if we actually want any effect.
|
|
721
|
+
#define V8_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
|
|
722
|
+
#else
|
|
651
723
|
#define V8_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
|
724
|
+
#endif
|
|
652
725
|
#else
|
|
653
726
|
#define V8_NO_UNIQUE_ADDRESS /* NOT SUPPORTED */
|
|
654
727
|
#endif
|
|
@@ -678,10 +751,12 @@ path. Add it with -I<path> to the command line
|
|
|
678
751
|
#if defined(__clang__) && defined(__has_attribute)
|
|
679
752
|
#if __has_attribute(trivial_abi)
|
|
680
753
|
#define V8_TRIVIAL_ABI [[clang::trivial_abi]]
|
|
754
|
+
#define V8_HAS_ATTRIBUTE_TRIVIAL_ABI 1
|
|
681
755
|
#endif // __has_attribute(trivial_abi)
|
|
682
756
|
#endif // defined(__clang__) && defined(__has_attribute)
|
|
683
757
|
#if !defined(V8_TRIVIAL_ABI)
|
|
684
758
|
#define V8_TRIVIAL_ABI
|
|
759
|
+
#define V8_HAS_ATTRIBUTE_TRIVIAL_ABI 0
|
|
685
760
|
#endif //!defined(V8_TRIVIAL_ABI)
|
|
686
761
|
|
|
687
762
|
// Helper macro to define no_sanitize attributes only with clang.
|
|
@@ -694,6 +769,11 @@ path. Add it with -I<path> to the command line
|
|
|
694
769
|
#define V8_CLANG_NO_SANITIZE(what)
|
|
695
770
|
#endif
|
|
696
771
|
|
|
772
|
+
// Exposing private symbols requires exposing public symbols too.
|
|
773
|
+
#ifdef BUILDING_V8_SHARED_PRIVATE
|
|
774
|
+
#define BUILDING_V8_SHARED
|
|
775
|
+
#endif
|
|
776
|
+
|
|
697
777
|
#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
|
|
698
778
|
#error Inconsistent build configuration: To build the V8 shared library \
|
|
699
779
|
set BUILDING_V8_SHARED, to include its headers for linking against the \
|
|
@@ -718,15 +798,11 @@ V8 shared library set USING_V8_SHARED.
|
|
|
718
798
|
#else // V8_OS_WIN
|
|
719
799
|
|
|
720
800
|
// Setup for Linux shared library export.
|
|
721
|
-
#if V8_HAS_ATTRIBUTE_VISIBILITY
|
|
722
|
-
#
|
|
723
|
-
# define V8_EXPORT __attribute__ ((visibility("default")))
|
|
724
|
-
# else
|
|
725
|
-
# define V8_EXPORT
|
|
726
|
-
# endif
|
|
801
|
+
#if V8_HAS_ATTRIBUTE_VISIBILITY && (defined(BUILDING_V8_SHARED) || USING_V8_SHARED)
|
|
802
|
+
# define V8_EXPORT __attribute__((visibility("default")))
|
|
727
803
|
#else
|
|
728
804
|
# define V8_EXPORT
|
|
729
|
-
#endif
|
|
805
|
+
# endif // V8_HAS_ATTRIBUTE_VISIBILITY && ...
|
|
730
806
|
|
|
731
807
|
#endif // V8_OS_WIN
|
|
732
808
|
|
|
@@ -764,16 +840,9 @@ V8 shared library set USING_V8_SHARED.
|
|
|
764
840
|
#elif defined(__PPC64__) || defined(_ARCH_PPC64)
|
|
765
841
|
#define V8_HOST_ARCH_PPC64 1
|
|
766
842
|
#define V8_HOST_ARCH_64_BIT 1
|
|
767
|
-
#elif defined(
|
|
768
|
-
#define
|
|
769
|
-
#define V8_HOST_ARCH_32_BIT 1
|
|
770
|
-
#elif defined(__s390__) || defined(__s390x__)
|
|
771
|
-
#define V8_HOST_ARCH_S390 1
|
|
772
|
-
#if defined(__s390x__)
|
|
843
|
+
#elif defined(__s390x__)
|
|
844
|
+
#define V8_HOST_ARCH_S390X 1
|
|
773
845
|
#define V8_HOST_ARCH_64_BIT 1
|
|
774
|
-
#else
|
|
775
|
-
#define V8_HOST_ARCH_32_BIT 1
|
|
776
|
-
#endif
|
|
777
846
|
#elif defined(__riscv) || defined(__riscv__)
|
|
778
847
|
#if __riscv_xlen == 64
|
|
779
848
|
#define V8_HOST_ARCH_RISCV64 1
|
|
@@ -793,10 +862,10 @@ V8 shared library set USING_V8_SHARED.
|
|
|
793
862
|
// The macros may be set externally. If not, detect in the same way as the host
|
|
794
863
|
// architecture, that is, target the native environment as presented by the
|
|
795
864
|
// compiler.
|
|
796
|
-
#if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_IA32 && !V8_TARGET_ARCH_ARM &&
|
|
797
|
-
!V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS64 &&
|
|
798
|
-
!V8_TARGET_ARCH_PPC64 && !
|
|
799
|
-
!V8_TARGET_ARCH_RISCV64 && !V8_TARGET_ARCH_LOONG64 &&
|
|
865
|
+
#if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_IA32 && !V8_TARGET_ARCH_ARM && \
|
|
866
|
+
!V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS64 && \
|
|
867
|
+
!V8_TARGET_ARCH_PPC64 && !V8_TARGET_ARCH_S390X && \
|
|
868
|
+
!V8_TARGET_ARCH_RISCV64 && !V8_TARGET_ARCH_LOONG64 && \
|
|
800
869
|
!V8_TARGET_ARCH_RISCV32
|
|
801
870
|
#if defined(_M_X64) || defined(__x86_64__)
|
|
802
871
|
#define V8_TARGET_ARCH_X64 1
|
|
@@ -812,13 +881,8 @@ V8 shared library set USING_V8_SHARED.
|
|
|
812
881
|
#define V8_TARGET_ARCH_LOONG64 1
|
|
813
882
|
#elif defined(_ARCH_PPC64)
|
|
814
883
|
#define V8_TARGET_ARCH_PPC64 1
|
|
815
|
-
#elif defined(
|
|
816
|
-
#define V8_TARGET_ARCH_PPC 1
|
|
817
|
-
#elif defined(__s390__)
|
|
818
|
-
#define V8_TARGET_ARCH_S390 1
|
|
819
|
-
#if defined(__s390x__)
|
|
884
|
+
#elif defined(__s390x__)
|
|
820
885
|
#define V8_TARGET_ARCH_S390X 1
|
|
821
|
-
#endif
|
|
822
886
|
#elif defined(__riscv) || defined(__riscv__)
|
|
823
887
|
#if __riscv_xlen == 64
|
|
824
888
|
#define V8_TARGET_ARCH_RISCV64 1
|
|
@@ -851,16 +915,10 @@ V8 shared library set USING_V8_SHARED.
|
|
|
851
915
|
#define V8_TARGET_ARCH_64_BIT 1
|
|
852
916
|
#elif V8_TARGET_ARCH_LOONG64
|
|
853
917
|
#define V8_TARGET_ARCH_64_BIT 1
|
|
854
|
-
#elif V8_TARGET_ARCH_PPC
|
|
855
|
-
#define V8_TARGET_ARCH_32_BIT 1
|
|
856
918
|
#elif V8_TARGET_ARCH_PPC64
|
|
857
919
|
#define V8_TARGET_ARCH_64_BIT 1
|
|
858
|
-
#elif
|
|
859
|
-
#if V8_TARGET_ARCH_S390X
|
|
920
|
+
#elif V8_TARGET_ARCH_S390X
|
|
860
921
|
#define V8_TARGET_ARCH_64_BIT 1
|
|
861
|
-
#else
|
|
862
|
-
#define V8_TARGET_ARCH_32_BIT 1
|
|
863
|
-
#endif
|
|
864
922
|
#elif V8_TARGET_ARCH_RISCV64
|
|
865
923
|
#define V8_TARGET_ARCH_64_BIT 1
|
|
866
924
|
#elif V8_TARGET_ARCH_RISCV32
|
|
@@ -917,14 +975,14 @@ V8 shared library set USING_V8_SHARED.
|
|
|
917
975
|
#else
|
|
918
976
|
#define V8_TARGET_LITTLE_ENDIAN 1
|
|
919
977
|
#endif
|
|
920
|
-
#elif
|
|
978
|
+
#elif V8_TARGET_ARCH_PPC64
|
|
979
|
+
#if V8_OS_AIX
|
|
921
980
|
#define V8_TARGET_BIG_ENDIAN 1
|
|
922
|
-
#
|
|
981
|
+
#else
|
|
923
982
|
#define V8_TARGET_LITTLE_ENDIAN 1
|
|
924
|
-
#
|
|
925
|
-
#
|
|
926
|
-
#
|
|
927
|
-
#if V8_TARGET_ARCH_S390_LE_SIM
|
|
983
|
+
#endif
|
|
984
|
+
#elif V8_TARGET_ARCH_S390X
|
|
985
|
+
#if V8_TARGET_ARCH_S390X_LE_SIM
|
|
928
986
|
#define V8_TARGET_LITTLE_ENDIAN 1
|
|
929
987
|
#else
|
|
930
988
|
#define V8_TARGET_BIG_ENDIAN 1
|
|
@@ -948,5 +1006,10 @@ V8 shared library set USING_V8_SHARED.
|
|
|
948
1006
|
#else
|
|
949
1007
|
#define V8_STATIC_ROOTS_BOOL true
|
|
950
1008
|
#endif
|
|
1009
|
+
#ifdef V8_TARGET_BIG_ENDIAN
|
|
1010
|
+
#define V8_TARGET_BIG_ENDIAN_BOOL true
|
|
1011
|
+
#else
|
|
1012
|
+
#define V8_TARGET_BIG_ENDIAN_BOOL false
|
|
1013
|
+
#endif
|
|
951
1014
|
|
|
952
1015
|
#endif // V8CONFIG_H_
|
metadata
CHANGED
|
@@ -1,15 +1,56 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libv8-node
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 24.12.0.0
|
|
5
5
|
platform: aarch64-linux-musl
|
|
6
6
|
authors:
|
|
7
7
|
- ''
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: base64
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: logger
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: mutex_m
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
13
54
|
- !ruby/object:Gem::Dependency
|
|
14
55
|
name: rake
|
|
15
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -28,16 +69,16 @@ dependencies:
|
|
|
28
69
|
name: rubocop
|
|
29
70
|
requirement: !ruby/object:Gem::Requirement
|
|
30
71
|
requirements:
|
|
31
|
-
- - "
|
|
72
|
+
- - ">="
|
|
32
73
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
74
|
+
version: 1.8.0
|
|
34
75
|
type: :development
|
|
35
76
|
prerelease: false
|
|
36
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
78
|
requirements:
|
|
38
|
-
- - "
|
|
79
|
+
- - ">="
|
|
39
80
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
81
|
+
version: 1.8.0
|
|
41
82
|
description: Node.JS's V8 JavaScript engine for multiplatform goodness
|
|
42
83
|
email:
|
|
43
84
|
- ''
|
|
@@ -57,7 +98,6 @@ files:
|
|
|
57
98
|
- vendor/v8/include/cppgc/cross-thread-persistent.h
|
|
58
99
|
- vendor/v8/include/cppgc/custom-space.h
|
|
59
100
|
- vendor/v8/include/cppgc/default-platform.h
|
|
60
|
-
- vendor/v8/include/cppgc/ephemeron-pair.h
|
|
61
101
|
- vendor/v8/include/cppgc/explicit-management.h
|
|
62
102
|
- vendor/v8/include/cppgc/garbage-collected.h
|
|
63
103
|
- vendor/v8/include/cppgc/heap-consistency.h
|
|
@@ -71,6 +111,7 @@ files:
|
|
|
71
111
|
- vendor/v8/include/cppgc/internal/caged-heap-local-data.h
|
|
72
112
|
- vendor/v8/include/cppgc/internal/caged-heap.h
|
|
73
113
|
- vendor/v8/include/cppgc/internal/compiler-specific.h
|
|
114
|
+
- vendor/v8/include/cppgc/internal/conditional-stack-allocated.h
|
|
74
115
|
- vendor/v8/include/cppgc/internal/finalizer-trait.h
|
|
75
116
|
- vendor/v8/include/cppgc/internal/gc-info.h
|
|
76
117
|
- vendor/v8/include/cppgc/internal/logging.h
|
|
@@ -109,6 +150,7 @@ files:
|
|
|
109
150
|
- vendor/v8/include/v8-embedder-state-scope.h
|
|
110
151
|
- vendor/v8/include/v8-exception.h
|
|
111
152
|
- vendor/v8/include/v8-extension.h
|
|
153
|
+
- vendor/v8/include/v8-external-memory-accounter.h
|
|
112
154
|
- vendor/v8/include/v8-external.h
|
|
113
155
|
- vendor/v8/include/v8-fast-api-calls.h
|
|
114
156
|
- vendor/v8/include/v8-forward.h
|
|
@@ -138,11 +180,13 @@ files:
|
|
|
138
180
|
- vendor/v8/include/v8-promise.h
|
|
139
181
|
- vendor/v8/include/v8-proxy.h
|
|
140
182
|
- vendor/v8/include/v8-regexp.h
|
|
183
|
+
- vendor/v8/include/v8-sandbox.h
|
|
141
184
|
- vendor/v8/include/v8-script.h
|
|
142
185
|
- vendor/v8/include/v8-snapshot.h
|
|
143
186
|
- vendor/v8/include/v8-source-location.h
|
|
144
187
|
- vendor/v8/include/v8-statistics.h
|
|
145
188
|
- vendor/v8/include/v8-template.h
|
|
189
|
+
- vendor/v8/include/v8-trace-categories.h
|
|
146
190
|
- vendor/v8/include/v8-traced-handle.h
|
|
147
191
|
- vendor/v8/include/v8-typed-array.h
|
|
148
192
|
- vendor/v8/include/v8-unwinder-state.h
|
|
@@ -162,8 +206,8 @@ files:
|
|
|
162
206
|
homepage: https://github.com/rubyjs/libv8-node
|
|
163
207
|
licenses:
|
|
164
208
|
- MIT
|
|
165
|
-
metadata:
|
|
166
|
-
|
|
209
|
+
metadata:
|
|
210
|
+
rubygems_mfa_required: 'true'
|
|
167
211
|
rdoc_options: []
|
|
168
212
|
require_paths:
|
|
169
213
|
- lib
|
|
@@ -179,8 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
179
223
|
- !ruby/object:Gem::Version
|
|
180
224
|
version: '0'
|
|
181
225
|
requirements: []
|
|
182
|
-
rubygems_version:
|
|
183
|
-
signing_key:
|
|
226
|
+
rubygems_version: 4.0.3
|
|
184
227
|
specification_version: 4
|
|
185
228
|
summary: Node.JS's V8 JavaScript engine
|
|
186
229
|
test_files: []
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// Copyright 2020 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_CPPGC_EPHEMERON_PAIR_H_
|
|
6
|
-
#define INCLUDE_CPPGC_EPHEMERON_PAIR_H_
|
|
7
|
-
|
|
8
|
-
#include "cppgc/liveness-broker.h"
|
|
9
|
-
#include "cppgc/member.h"
|
|
10
|
-
|
|
11
|
-
namespace cppgc {
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* An ephemeron pair is used to conditionally retain an object.
|
|
15
|
-
* The `value` will be kept alive only if the `key` is alive.
|
|
16
|
-
*/
|
|
17
|
-
template <typename K, typename V>
|
|
18
|
-
struct EphemeronPair {
|
|
19
|
-
EphemeronPair(K* k, V* v) : key(k), value(v) {}
|
|
20
|
-
WeakMember<K> key;
|
|
21
|
-
Member<V> value;
|
|
22
|
-
|
|
23
|
-
void ClearValueIfKeyIsDead(const LivenessBroker& broker) {
|
|
24
|
-
if (!broker.IsHeapObjectAlive(key)) value = nullptr;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
} // namespace cppgc
|
|
29
|
-
|
|
30
|
-
#endif // INCLUDE_CPPGC_EPHEMERON_PAIR_H_
|