libv8-node 22.7.0.3-x86_64-linux → 23.6.1.0-x86_64-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/libv8/node/version.rb +3 -3
- data/vendor/v8/include/cppgc/allocation.h +10 -11
- data/vendor/v8/include/cppgc/garbage-collected.h +8 -0
- data/vendor/v8/include/cppgc/heap-statistics.h +2 -0
- data/vendor/v8/include/cppgc/internal/api-constants.h +6 -1
- data/vendor/v8/include/cppgc/internal/compiler-specific.h +9 -1
- data/vendor/v8/include/cppgc/internal/gc-info.h +12 -10
- data/vendor/v8/include/cppgc/internal/member-storage.h +6 -0
- data/vendor/v8/include/cppgc/internal/name-trait.h +5 -1
- data/vendor/v8/include/cppgc/name-provider.h +7 -0
- data/vendor/v8/include/v8-array-buffer.h +44 -24
- data/vendor/v8/include/v8-callbacks.h +10 -5
- data/vendor/v8/include/v8-context.h +41 -9
- data/vendor/v8/include/v8-cppgc.h +3 -55
- data/vendor/v8/include/v8-date.h +9 -0
- data/vendor/v8/include/v8-embedder-heap.h +4 -1
- data/vendor/v8/include/v8-exception.h +70 -0
- data/vendor/v8/include/v8-fast-api-calls.h +31 -38
- data/vendor/v8/include/v8-function-callback.h +203 -62
- data/vendor/v8/include/v8-function.h +4 -3
- data/vendor/v8/include/v8-handle-base.h +2 -2
- data/vendor/v8/include/v8-initialization.h +18 -1
- data/vendor/v8/include/v8-inspector.h +6 -3
- data/vendor/v8/include/v8-internal.h +303 -58
- data/vendor/v8/include/v8-isolate.h +58 -39
- data/vendor/v8/include/v8-local-handle.h +18 -19
- data/vendor/v8/include/v8-message.h +0 -21
- data/vendor/v8/include/v8-metrics.h +4 -0
- data/vendor/v8/include/v8-microtask-queue.h +0 -5
- data/vendor/v8/include/v8-object.h +284 -35
- data/vendor/v8/include/v8-persistent-handle.h +0 -19
- data/vendor/v8/include/v8-platform.h +21 -35
- data/vendor/v8/include/v8-primitive.h +92 -1
- data/vendor/v8/include/v8-profiler.h +38 -1
- data/vendor/v8/include/v8-promise.h +2 -2
- data/vendor/v8/include/v8-sandbox.h +173 -0
- data/vendor/v8/include/v8-script.h +44 -14
- data/vendor/v8/include/v8-snapshot.h +38 -2
- data/vendor/v8/include/v8-template.h +105 -263
- data/vendor/v8/include/v8-traced-handle.h +4 -15
- data/vendor/v8/include/v8-unwinder.h +2 -1
- data/vendor/v8/include/v8-util.h +1 -117
- data/vendor/v8/include/v8-value.h +3 -2
- data/vendor/v8/include/v8-version.h +3 -3
- data/vendor/v8/include/v8-wasm.h +3 -0
- data/vendor/v8/include/v8config.h +51 -7
- data/vendor/v8/x86_64-linux/libv8/obj/libv8_monolith.a +0 -0
- metadata +6 -5
data/vendor/v8/include/v8-util.h
CHANGED
@@ -182,7 +182,7 @@ class PersistentValueMapBase {
|
|
182
182
|
*/
|
183
183
|
Local<V> Get(const K& key) {
|
184
184
|
V* p = FromVal(Traits::Get(&impl_, key));
|
185
|
-
#ifdef
|
185
|
+
#ifdef V8_ENABLE_DIRECT_HANDLE
|
186
186
|
if (p == nullptr) return Local<V>();
|
187
187
|
#endif
|
188
188
|
return Local<V>::New(isolate_, p);
|
@@ -544,122 +544,6 @@ class StdGlobalValueMap : public GlobalValueMap<K, V, Traits> {
|
|
544
544
|
: GlobalValueMap<K, V, Traits>(isolate) {}
|
545
545
|
};
|
546
546
|
|
547
|
-
class DefaultPersistentValueVectorTraits {
|
548
|
-
public:
|
549
|
-
typedef std::vector<PersistentContainerValue> Impl;
|
550
|
-
|
551
|
-
static void Append(Impl* impl, PersistentContainerValue value) {
|
552
|
-
impl->push_back(value);
|
553
|
-
}
|
554
|
-
static bool IsEmpty(const Impl* impl) {
|
555
|
-
return impl->empty();
|
556
|
-
}
|
557
|
-
static size_t Size(const Impl* impl) {
|
558
|
-
return impl->size();
|
559
|
-
}
|
560
|
-
static PersistentContainerValue Get(const Impl* impl, size_t i) {
|
561
|
-
return (i < impl->size()) ? impl->at(i) : kPersistentContainerNotFound;
|
562
|
-
}
|
563
|
-
static void ReserveCapacity(Impl* impl, size_t capacity) {
|
564
|
-
impl->reserve(capacity);
|
565
|
-
}
|
566
|
-
static void Clear(Impl* impl) {
|
567
|
-
impl->clear();
|
568
|
-
}
|
569
|
-
};
|
570
|
-
|
571
|
-
/**
|
572
|
-
* A vector wrapper that safely stores Global values.
|
573
|
-
* C++11 embedders don't need this class, as they can use Global
|
574
|
-
* directly in std containers.
|
575
|
-
*
|
576
|
-
* This class relies on a backing vector implementation, whose type and methods
|
577
|
-
* are described by the Traits class. The backing map will handle values of type
|
578
|
-
* PersistentContainerValue, with all conversion into and out of V8
|
579
|
-
* handles being transparently handled by this class.
|
580
|
-
*/
|
581
|
-
template <typename V, typename Traits = DefaultPersistentValueVectorTraits>
|
582
|
-
class V8_DEPRECATE_SOON("Use std::vector<Global<V>>.") PersistentValueVector {
|
583
|
-
public:
|
584
|
-
explicit PersistentValueVector(Isolate* isolate) : isolate_(isolate) { }
|
585
|
-
|
586
|
-
~PersistentValueVector() {
|
587
|
-
Clear();
|
588
|
-
}
|
589
|
-
|
590
|
-
/**
|
591
|
-
* Append a value to the vector.
|
592
|
-
*/
|
593
|
-
void Append(Local<V> value) {
|
594
|
-
Global<V> persistent(isolate_, value);
|
595
|
-
Traits::Append(&impl_, ClearAndLeak(&persistent));
|
596
|
-
}
|
597
|
-
|
598
|
-
/**
|
599
|
-
* Append a persistent's value to the vector.
|
600
|
-
*/
|
601
|
-
void Append(Global<V> persistent) {
|
602
|
-
Traits::Append(&impl_, ClearAndLeak(&persistent));
|
603
|
-
}
|
604
|
-
|
605
|
-
/**
|
606
|
-
* Are there any values in the vector?
|
607
|
-
*/
|
608
|
-
bool IsEmpty() const {
|
609
|
-
return Traits::IsEmpty(&impl_);
|
610
|
-
}
|
611
|
-
|
612
|
-
/**
|
613
|
-
* How many elements are in the vector?
|
614
|
-
*/
|
615
|
-
size_t Size() const {
|
616
|
-
return Traits::Size(&impl_);
|
617
|
-
}
|
618
|
-
|
619
|
-
/**
|
620
|
-
* Retrieve the i-th value in the vector.
|
621
|
-
*/
|
622
|
-
Local<V> Get(size_t index) const {
|
623
|
-
return Local<V>::New(isolate_, internal::ValueHelper::SlotAsValue<V>(
|
624
|
-
Traits::Get(&impl_, index)));
|
625
|
-
}
|
626
|
-
|
627
|
-
/**
|
628
|
-
* Remove all elements from the vector.
|
629
|
-
*/
|
630
|
-
void Clear() {
|
631
|
-
size_t length = Traits::Size(&impl_);
|
632
|
-
for (size_t i = 0; i < length; i++) {
|
633
|
-
Global<V> p;
|
634
|
-
p.slot() = reinterpret_cast<internal::Address>(Traits::Get(&impl_, i));
|
635
|
-
}
|
636
|
-
Traits::Clear(&impl_);
|
637
|
-
}
|
638
|
-
|
639
|
-
/**
|
640
|
-
* Reserve capacity in the vector.
|
641
|
-
* (Efficiency gains depend on the backing implementation.)
|
642
|
-
*/
|
643
|
-
void ReserveCapacity(size_t capacity) {
|
644
|
-
Traits::ReserveCapacity(&impl_, capacity);
|
645
|
-
}
|
646
|
-
|
647
|
-
private:
|
648
|
-
static PersistentContainerValue ClearAndLeak(Global<V>* persistent) {
|
649
|
-
auto slot = persistent->slot();
|
650
|
-
persistent->Clear();
|
651
|
-
return reinterpret_cast<PersistentContainerValue>(slot);
|
652
|
-
}
|
653
|
-
|
654
|
-
static V* FromVal(PersistentContainerValue v) {
|
655
|
-
return internal::ValueHelper::SlotAsValue<V>(
|
656
|
-
reinterpret_cast<internal::Address*>(v));
|
657
|
-
}
|
658
|
-
|
659
|
-
Isolate* isolate_;
|
660
|
-
typename Traits::Impl impl_;
|
661
|
-
};
|
662
|
-
|
663
547
|
} // namespace v8
|
664
548
|
|
665
549
|
#endif // V8_UTIL_H
|
@@ -635,8 +635,9 @@ bool Value::QuickIsString() const {
|
|
635
635
|
A obj = internal::ValueHelper::ValueAsAddress(this);
|
636
636
|
if (!I::HasHeapObjectTag(obj)) return false;
|
637
637
|
#if V8_STATIC_ROOTS_BOOL && !V8_MAP_PACKING
|
638
|
-
return I::CheckInstanceMapRange(obj,
|
639
|
-
I::StaticReadOnlyRoot::
|
638
|
+
return I::CheckInstanceMapRange(obj,
|
639
|
+
I::StaticReadOnlyRoot::kStringMapLowerBound,
|
640
|
+
I::StaticReadOnlyRoot::kStringMapUpperBound);
|
640
641
|
#else
|
641
642
|
return (I::GetInstanceType(obj) < I::kFirstNonstringType);
|
642
643
|
#endif // V8_STATIC_ROOTS_BOOL
|
@@ -9,9 +9,9 @@
|
|
9
9
|
// NOTE these macros are used by some of the tool scripts and the build
|
10
10
|
// system so their names cannot be changed without changing the scripts.
|
11
11
|
#define V8_MAJOR_VERSION 12
|
12
|
-
#define V8_MINOR_VERSION
|
13
|
-
#define V8_BUILD_NUMBER
|
14
|
-
#define V8_PATCH_LEVEL
|
12
|
+
#define V8_MINOR_VERSION 9
|
13
|
+
#define V8_BUILD_NUMBER 202
|
14
|
+
#define V8_PATCH_LEVEL 28
|
15
15
|
|
16
16
|
// Use 1 for candidates and 0 otherwise.
|
17
17
|
// (Boolean macro values are not supported by all preprocessors.)
|
data/vendor/v8/include/v8-wasm.h
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
#include <memory>
|
10
10
|
#include <string>
|
11
11
|
|
12
|
+
#include "v8-internal.h" // NOLINT(build/include_directory)
|
12
13
|
#include "v8-local-handle.h" // NOLINT(build/include_directory)
|
13
14
|
#include "v8-memory-span.h" // NOLINT(build/include_directory)
|
14
15
|
#include "v8-object.h" // NOLINT(build/include_directory)
|
@@ -129,6 +130,8 @@ class V8_EXPORT WasmModuleObject : public Object {
|
|
129
130
|
*/
|
130
131
|
class V8_EXPORT WasmStreaming final {
|
131
132
|
public:
|
133
|
+
static constexpr internal::ExternalPointerTag kManagedTag =
|
134
|
+
internal::kWasmWasmStreamingTag;
|
132
135
|
class WasmStreamingImpl;
|
133
136
|
|
134
137
|
explicit WasmStreaming(std::unique_ptr<WasmStreamingImpl> impl);
|
@@ -5,8 +5,16 @@
|
|
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
|
@@ -23,6 +31,8 @@ path. Add it with -I<path> to the command line
|
|
23
31
|
# include <TargetConditionals.h>
|
24
32
|
#elif defined(__linux__)
|
25
33
|
# include <features.h>
|
34
|
+
#elif defined(__MVS__)
|
35
|
+
# include "zos-base.h"
|
26
36
|
#endif
|
27
37
|
|
28
38
|
|
@@ -83,6 +93,7 @@ path. Add it with -I<path> to the command line
|
|
83
93
|
// V8_OS_STARBOARD - Starboard (platform abstraction for Cobalt)
|
84
94
|
// V8_OS_AIX - AIX
|
85
95
|
// V8_OS_WIN - Microsoft Windows
|
96
|
+
// V8_OS_ZOS - z/OS
|
86
97
|
|
87
98
|
#if defined(__ANDROID__)
|
88
99
|
# define V8_OS_ANDROID 1
|
@@ -163,6 +174,11 @@ path. Add it with -I<path> to the command line
|
|
163
174
|
#elif defined(_WIN32)
|
164
175
|
# define V8_OS_WIN 1
|
165
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"
|
166
182
|
#endif
|
167
183
|
|
168
184
|
// -----------------------------------------------------------------------------
|
@@ -376,8 +392,14 @@ path. Add it with -I<path> to the command line
|
|
376
392
|
# define V8_HAS_ATTRIBUTE_WEAK (__has_attribute(weak))
|
377
393
|
|
378
394
|
# define V8_HAS_CPP_ATTRIBUTE_NODISCARD (V8_HAS_CPP_ATTRIBUTE(nodiscard))
|
395
|
+
#if defined(V8_CC_MSVC)
|
396
|
+
# define V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS \
|
397
|
+
(V8_HAS_CPP_ATTRIBUTE(msvc::no_unique_address) || \
|
398
|
+
V8_HAS_CPP_ATTRIBUTE(no_unique_address))
|
399
|
+
#else
|
379
400
|
# define V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS \
|
380
401
|
(V8_HAS_CPP_ATTRIBUTE(no_unique_address))
|
402
|
+
#endif
|
381
403
|
|
382
404
|
# define V8_HAS_BUILTIN_ADD_OVERFLOW (__has_builtin(__builtin_add_overflow))
|
383
405
|
# define V8_HAS_BUILTIN_ASSUME (__has_builtin(__builtin_assume))
|
@@ -477,22 +499,32 @@ path. Add it with -I<path> to the command line
|
|
477
499
|
# define V8_INLINE inline
|
478
500
|
#endif
|
479
501
|
|
502
|
+
#if V8_HAS_BUILTIN_ASSUME
|
480
503
|
#ifdef DEBUG
|
481
|
-
// In debug mode, check assumptions
|
482
|
-
|
483
|
-
|
504
|
+
// In debug mode, check assumptions in addition to adding annotations.
|
505
|
+
// This helps GCC (and maybe other compilers) figure out that certain
|
506
|
+
// situations are unreachable.
|
507
|
+
# define V8_ASSUME(condition) \
|
508
|
+
do { \
|
509
|
+
DCHECK(condition); \
|
510
|
+
__builtin_assume(condition); \
|
511
|
+
} while (false)
|
512
|
+
#else // DEBUG
|
484
513
|
# define V8_ASSUME __builtin_assume
|
514
|
+
#endif // DEBUG
|
485
515
|
#elif V8_HAS_BUILTIN_UNREACHABLE
|
486
516
|
# define V8_ASSUME(condition) \
|
487
517
|
do { \
|
518
|
+
DCHECK(condition); \
|
488
519
|
if (!(condition)) __builtin_unreachable(); \
|
489
520
|
} while (false)
|
490
521
|
#else
|
491
522
|
# define V8_ASSUME USE
|
492
523
|
#endif
|
493
524
|
|
494
|
-
// Prefer c++20 std::assume_aligned
|
495
|
-
|
525
|
+
// Prefer c++20 std::assume_aligned. Don't use it on MSVC though, because it's
|
526
|
+
// not happy with our large 4GB alignment values.
|
527
|
+
#if __cplusplus >= 202002L && defined(__cpp_lib_assume_aligned) && !V8_CC_MSVC
|
496
528
|
# define V8_ASSUME_ALIGNED(ptr, alignment) \
|
497
529
|
std::assume_aligned<(alignment)>(ptr)
|
498
530
|
#elif V8_HAS_BUILTIN_ASSUME_ALIGNED
|
@@ -549,11 +581,15 @@ path. Add it with -I<path> to the command line
|
|
549
581
|
// functions.
|
550
582
|
// Use like:
|
551
583
|
// V8_NOINLINE V8_PRESERVE_MOST void UnlikelyMethod();
|
584
|
+
#if V8_OS_WIN
|
585
|
+
# define V8_PRESERVE_MOST
|
586
|
+
#else
|
552
587
|
#if V8_HAS_ATTRIBUTE_PRESERVE_MOST
|
553
588
|
# define V8_PRESERVE_MOST __attribute__((preserve_most))
|
554
589
|
#else
|
555
590
|
# define V8_PRESERVE_MOST /* NOT SUPPORTED */
|
556
591
|
#endif
|
592
|
+
#endif
|
557
593
|
|
558
594
|
|
559
595
|
// A macro (V8_DEPRECATED) to mark classes or functions as deprecated.
|
@@ -645,7 +681,7 @@ path. Add it with -I<path> to the command line
|
|
645
681
|
// V8_NODISCARD Foo() { ... };
|
646
682
|
// [[nodiscard]] comes in C++17 but supported in clang with -std >= c++11.
|
647
683
|
#if V8_HAS_CPP_ATTRIBUTE_NODISCARD
|
648
|
-
#define V8_NODISCARD
|
684
|
+
#define V8_NODISCARD
|
649
685
|
#else
|
650
686
|
#define V8_NODISCARD /* NOT SUPPORTED */
|
651
687
|
#endif
|
@@ -666,7 +702,15 @@ path. Add it with -I<path> to the command line
|
|
666
702
|
// [[no_unique_address]] comes in C++20 but supported in clang with
|
667
703
|
// -std >= c++11.
|
668
704
|
#if V8_HAS_CPP_ATTRIBUTE_NO_UNIQUE_ADDRESS
|
705
|
+
#if defined(V8_CC_MSVC) && V8_HAS_CPP_ATTRIBUTE(msvc::no_unique_address)
|
706
|
+
// Unfortunately MSVC ignores [[no_unique_address]] (see
|
707
|
+
// https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#msvc-extensions-and-abi),
|
708
|
+
// and clang-cl matches it for ABI compatibility reasons. We need to prefer
|
709
|
+
// [[msvc::no_unique_address]] when available if we actually want any effect.
|
710
|
+
#define V8_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
|
711
|
+
#else
|
669
712
|
#define V8_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
713
|
+
#endif
|
670
714
|
#else
|
671
715
|
#define V8_NO_UNIQUE_ADDRESS /* NOT SUPPORTED */
|
672
716
|
#endif
|
Binary file
|
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:
|
4
|
+
version: 23.6.1.0
|
5
5
|
platform: x86_64-linux
|
6
6
|
authors:
|
7
7
|
- ''
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- vendor/v8/include/v8-promise.h
|
138
138
|
- vendor/v8/include/v8-proxy.h
|
139
139
|
- vendor/v8/include/v8-regexp.h
|
140
|
+
- vendor/v8/include/v8-sandbox.h
|
140
141
|
- vendor/v8/include/v8-script.h
|
141
142
|
- vendor/v8/include/v8-snapshot.h
|
142
143
|
- vendor/v8/include/v8-source-location.h
|
@@ -163,7 +164,7 @@ homepage: https://github.com/rubyjs/libv8-node
|
|
163
164
|
licenses:
|
164
165
|
- MIT
|
165
166
|
metadata: {}
|
166
|
-
post_install_message:
|
167
|
+
post_install_message:
|
167
168
|
rdoc_options: []
|
168
169
|
require_paths:
|
169
170
|
- lib
|
@@ -180,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
181
|
version: '0'
|
181
182
|
requirements: []
|
182
183
|
rubygems_version: 3.3.26
|
183
|
-
signing_key:
|
184
|
+
signing_key:
|
184
185
|
specification_version: 4
|
185
186
|
summary: Node.JS's V8 JavaScript engine
|
186
187
|
test_files: []
|