libv8-node 17.9.1.0-x86_64-linux → 18.8.0.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/ext/libv8-node/paths.rb +1 -1
- data/lib/libv8/node/version.rb +3 -3
- data/vendor/v8/include/cppgc/allocation.h +88 -17
- data/vendor/v8/include/cppgc/default-platform.h +2 -10
- data/vendor/v8/include/cppgc/explicit-management.h +22 -4
- data/vendor/v8/include/cppgc/garbage-collected.h +15 -26
- data/vendor/v8/include/cppgc/heap-consistency.h +13 -0
- data/vendor/v8/include/cppgc/heap-state.h +12 -0
- data/vendor/v8/include/cppgc/heap.h +7 -2
- data/vendor/v8/include/cppgc/internal/api-constants.h +8 -0
- data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +23 -12
- data/vendor/v8/include/cppgc/internal/finalizer-trait.h +2 -1
- data/vendor/v8/include/cppgc/internal/logging.h +3 -3
- data/vendor/v8/include/cppgc/internal/persistent-node.h +39 -27
- data/vendor/v8/include/cppgc/internal/pointer-policies.h +4 -4
- data/vendor/v8/include/cppgc/internal/write-barrier.h +26 -32
- data/vendor/v8/include/cppgc/member.h +5 -2
- data/vendor/v8/include/cppgc/persistent.h +30 -31
- data/vendor/v8/include/cppgc/platform.h +3 -1
- data/vendor/v8/include/cppgc/prefinalizer.h +34 -11
- data/vendor/v8/include/cppgc/testing.h +9 -2
- data/vendor/v8/include/cppgc/type-traits.h +6 -13
- data/vendor/v8/include/libplatform/libplatform.h +0 -11
- data/vendor/v8/include/libplatform/v8-tracing.h +0 -1
- data/vendor/v8/include/v8-array-buffer.h +14 -2
- data/vendor/v8/include/v8-callbacks.h +26 -6
- data/vendor/v8/include/v8-context.h +3 -14
- data/vendor/v8/include/v8-cppgc.h +16 -126
- data/vendor/v8/include/v8-data.h +15 -0
- data/vendor/v8/include/v8-debug.h +21 -4
- data/vendor/v8/include/v8-embedder-heap.h +10 -30
- data/vendor/v8/include/v8-embedder-state-scope.h +51 -0
- data/vendor/v8/include/v8-exception.h +0 -7
- data/vendor/v8/include/v8-fast-api-calls.h +82 -31
- data/vendor/v8/include/v8-function.h +3 -0
- data/vendor/v8/include/v8-initialization.h +64 -31
- data/vendor/v8/include/v8-inspector.h +45 -4
- data/vendor/v8/include/v8-internal.h +189 -102
- data/vendor/v8/include/v8-isolate.h +49 -2
- data/vendor/v8/include/v8-local-handle.h +0 -4
- data/vendor/v8/include/v8-locker.h +2 -1
- data/vendor/v8/include/v8-message.h +19 -44
- data/vendor/v8/include/v8-metrics.h +32 -15
- data/vendor/v8/include/v8-object.h +11 -6
- data/vendor/v8/include/v8-platform.h +365 -6
- data/vendor/v8/include/v8-primitive.h +14 -6
- data/vendor/v8/include/v8-profiler.h +78 -2
- data/vendor/v8/include/v8-script.h +27 -51
- data/vendor/v8/include/v8-snapshot.h +0 -2
- data/vendor/v8/include/v8-statistics.h +2 -0
- data/vendor/v8/include/v8-template.h +31 -4
- data/vendor/v8/include/v8-traced-handle.h +39 -224
- data/vendor/v8/include/v8-unwinder.h +10 -7
- data/vendor/v8/include/v8-value-serializer-version.h +1 -1
- data/vendor/v8/include/v8-value-serializer.h +32 -2
- data/vendor/v8/include/v8-version.h +4 -4
- data/vendor/v8/include/v8-wasm.h +13 -1
- data/vendor/v8/include/v8-weak-callback-info.h +20 -6
- data/vendor/v8/include/v8.h +0 -1
- data/vendor/v8/include/v8config.h +56 -11
- data/vendor/v8/x86_64-linux/libv8/obj/libv8_monolith.a +0 -0
- metadata +3 -3
- data/vendor/v8/include/cppgc/internal/prefinalizer-handler.h +0 -30
@@ -10,7 +10,6 @@
|
|
10
10
|
|
11
11
|
#include <memory>
|
12
12
|
#include <utility>
|
13
|
-
#include <vector>
|
14
13
|
|
15
14
|
#include "cppgc/common.h"
|
16
15
|
#include "v8-array-buffer.h" // NOLINT(build/include_directory)
|
@@ -225,6 +224,7 @@ class V8_EXPORT Isolate {
|
|
225
224
|
|
226
225
|
/**
|
227
226
|
* Explicitly specify a startup snapshot blob. The embedder owns the blob.
|
227
|
+
* The embedder *must* ensure that the snapshot is from a trusted source.
|
228
228
|
*/
|
229
229
|
StartupData* snapshot_blob = nullptr;
|
230
230
|
|
@@ -281,6 +281,18 @@ class V8_EXPORT Isolate {
|
|
281
281
|
*/
|
282
282
|
int embedder_wrapper_type_index = -1;
|
283
283
|
int embedder_wrapper_object_index = -1;
|
284
|
+
|
285
|
+
/**
|
286
|
+
* Callbacks to invoke in case of fatal or OOM errors.
|
287
|
+
*/
|
288
|
+
FatalErrorCallback fatal_error_callback = nullptr;
|
289
|
+
OOMErrorCallback oom_error_callback = nullptr;
|
290
|
+
|
291
|
+
/**
|
292
|
+
* The following parameter is experimental and may change significantly.
|
293
|
+
* This is currently for internal testing.
|
294
|
+
*/
|
295
|
+
Isolate* experimental_attach_to_shared_isolate = nullptr;
|
284
296
|
};
|
285
297
|
|
286
298
|
/**
|
@@ -517,6 +529,8 @@ class V8_EXPORT Isolate {
|
|
517
529
|
kWasmMultiValue = 110,
|
518
530
|
kWasmExceptionHandling = 111,
|
519
531
|
kInvalidatedMegaDOMProtector = 112,
|
532
|
+
kFunctionPrototypeArguments = 113,
|
533
|
+
kFunctionPrototypeCaller = 114,
|
520
534
|
|
521
535
|
// If you add new values here, you'll also need to update Chromium's:
|
522
536
|
// web_feature.mojom, use_counter_callback.cc, and enums.xml. V8 changes to
|
@@ -585,6 +599,11 @@ class V8_EXPORT Isolate {
|
|
585
599
|
*/
|
586
600
|
static Isolate* TryGetCurrent();
|
587
601
|
|
602
|
+
/**
|
603
|
+
* Return true if this isolate is currently active.
|
604
|
+
**/
|
605
|
+
bool IsCurrent() const;
|
606
|
+
|
588
607
|
/**
|
589
608
|
* Clears the set of objects held strongly by the heap. This set of
|
590
609
|
* objects are originally built when a WeakRef is created or
|
@@ -617,8 +636,11 @@ class V8_EXPORT Isolate {
|
|
617
636
|
* This specifies the callback called by the upcoming dynamic
|
618
637
|
* import() language feature to load modules.
|
619
638
|
*/
|
639
|
+
V8_DEPRECATED("Use HostImportModuleDynamicallyCallback")
|
620
640
|
void SetHostImportModuleDynamicallyCallback(
|
621
641
|
HostImportModuleDynamicallyWithImportAssertionsCallback callback);
|
642
|
+
void SetHostImportModuleDynamicallyCallback(
|
643
|
+
HostImportModuleDynamicallyCallback callback);
|
622
644
|
|
623
645
|
/**
|
624
646
|
* This specifies the callback called by the upcoming import.meta
|
@@ -627,6 +649,13 @@ class V8_EXPORT Isolate {
|
|
627
649
|
void SetHostInitializeImportMetaObjectCallback(
|
628
650
|
HostInitializeImportMetaObjectCallback callback);
|
629
651
|
|
652
|
+
/**
|
653
|
+
* This specifies the callback called by the upcoming ShadowRealm
|
654
|
+
* construction language feature to retrieve host created globals.
|
655
|
+
*/
|
656
|
+
void SetHostCreateShadowRealmContextCallback(
|
657
|
+
HostCreateShadowRealmContextCallback callback);
|
658
|
+
|
630
659
|
/**
|
631
660
|
* This specifies the callback called when the stack property of Error
|
632
661
|
* is accessed.
|
@@ -900,11 +929,13 @@ class V8_EXPORT Isolate {
|
|
900
929
|
|
901
930
|
/**
|
902
931
|
* Sets the embedder heap tracer for the isolate.
|
932
|
+
* SetEmbedderHeapTracer cannot be used simultaneously with AttachCppHeap.
|
903
933
|
*/
|
904
934
|
void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
|
905
935
|
|
906
936
|
/*
|
907
|
-
* Gets the currently active heap tracer for the isolate
|
937
|
+
* Gets the currently active heap tracer for the isolate that was set with
|
938
|
+
* SetEmbedderHeapTracer.
|
908
939
|
*/
|
909
940
|
EmbedderHeapTracer* GetEmbedderHeapTracer();
|
910
941
|
|
@@ -924,6 +955,7 @@ class V8_EXPORT Isolate {
|
|
924
955
|
* Attaches a managed C++ heap as an extension to the JavaScript heap. The
|
925
956
|
* embedder maintains ownership of the CppHeap. At most one C++ heap can be
|
926
957
|
* attached to V8.
|
958
|
+
* AttachCppHeap cannot be used simultaneously with SetEmbedderHeapTracer.
|
927
959
|
*
|
928
960
|
* This is an experimental feature and may still change significantly.
|
929
961
|
*/
|
@@ -1120,6 +1152,21 @@ class V8_EXPORT Isolate {
|
|
1120
1152
|
*/
|
1121
1153
|
void RequestGarbageCollectionForTesting(GarbageCollectionType type);
|
1122
1154
|
|
1155
|
+
/**
|
1156
|
+
* Request garbage collection with a specific embedderstack state in this
|
1157
|
+
* Isolate. It is only valid to call this function if --expose_gc was
|
1158
|
+
* specified.
|
1159
|
+
*
|
1160
|
+
* This should only be used for testing purposes and not to enforce a garbage
|
1161
|
+
* collection schedule. It has strong negative impact on the garbage
|
1162
|
+
* collection performance. Use IdleNotificationDeadline() or
|
1163
|
+
* LowMemoryNotification() instead to influence the garbage collection
|
1164
|
+
* schedule.
|
1165
|
+
*/
|
1166
|
+
void RequestGarbageCollectionForTesting(
|
1167
|
+
GarbageCollectionType type,
|
1168
|
+
EmbedderHeapTracer::EmbedderStackState stack_state);
|
1169
|
+
|
1123
1170
|
/**
|
1124
1171
|
* Set the callback to invoke for logging event.
|
1125
1172
|
*/
|
@@ -46,8 +46,6 @@ class String;
|
|
46
46
|
template <class F>
|
47
47
|
class Traced;
|
48
48
|
template <class F>
|
49
|
-
class TracedGlobal;
|
50
|
-
template <class F>
|
51
49
|
class TracedReference;
|
52
50
|
class TracedReferenceBase;
|
53
51
|
class Utils;
|
@@ -312,8 +310,6 @@ class Local {
|
|
312
310
|
template <class F>
|
313
311
|
friend class Traced;
|
314
312
|
template <class F>
|
315
|
-
friend class TracedGlobal;
|
316
|
-
template <class F>
|
317
313
|
friend class BasicTracedReference;
|
318
314
|
template <class F>
|
319
315
|
friend class TracedReference;
|
@@ -127,8 +127,9 @@ class V8_EXPORT Locker {
|
|
127
127
|
* The current implementation is quite confusing and leads to unexpected
|
128
128
|
* results if anybody uses v8::Locker in the current process.
|
129
129
|
*/
|
130
|
+
V8_DEPRECATE_SOON("This method will be removed.")
|
130
131
|
static bool WasEverUsed();
|
131
|
-
|
132
|
+
V8_DEPRECATED("Use WasEverUsed instead")
|
132
133
|
static bool IsActive();
|
133
134
|
|
134
135
|
// Disallow copying and assigning.
|
@@ -11,6 +11,7 @@
|
|
11
11
|
|
12
12
|
#include "v8-local-handle.h" // NOLINT(build/include_directory)
|
13
13
|
#include "v8-maybe.h" // NOLINT(build/include_directory)
|
14
|
+
#include "v8-primitive.h" // NOLINT(build/include_directory)
|
14
15
|
#include "v8config.h" // NOLINT(build/include_directory)
|
15
16
|
|
16
17
|
namespace v8 {
|
@@ -60,38 +61,15 @@ class ScriptOriginOptions {
|
|
60
61
|
*/
|
61
62
|
class V8_EXPORT ScriptOrigin {
|
62
63
|
public:
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
Local<Boolean> resource_is_opaque = Local<Boolean>(),
|
73
|
-
Local<Boolean> is_wasm = Local<Boolean>(),
|
74
|
-
Local<Boolean> is_module = Local<Boolean>(),
|
75
|
-
Local<PrimitiveArray> host_defined_options = Local<PrimitiveArray>());
|
76
|
-
#if defined(_MSC_VER) && _MSC_VER >= 1910 /* Disable on VS2015 */
|
77
|
-
V8_DEPRECATE_SOON("Use constructor that takes an isolate")
|
78
|
-
#endif
|
79
|
-
explicit ScriptOrigin(
|
80
|
-
Local<Value> resource_name, int resource_line_offset = 0,
|
81
|
-
int resource_column_offset = 0,
|
82
|
-
bool resource_is_shared_cross_origin = false, int script_id = -1,
|
83
|
-
Local<Value> source_map_url = Local<Value>(),
|
84
|
-
bool resource_is_opaque = false, bool is_wasm = false,
|
85
|
-
bool is_module = false,
|
86
|
-
Local<PrimitiveArray> host_defined_options = Local<PrimitiveArray>());
|
87
|
-
V8_INLINE ScriptOrigin(
|
88
|
-
Isolate* isolate, Local<Value> resource_name,
|
89
|
-
int resource_line_offset = 0, int resource_column_offset = 0,
|
90
|
-
bool resource_is_shared_cross_origin = false, int script_id = -1,
|
91
|
-
Local<Value> source_map_url = Local<Value>(),
|
92
|
-
bool resource_is_opaque = false, bool is_wasm = false,
|
93
|
-
bool is_module = false,
|
94
|
-
Local<PrimitiveArray> host_defined_options = Local<PrimitiveArray>())
|
64
|
+
V8_INLINE ScriptOrigin(Isolate* isolate, Local<Value> resource_name,
|
65
|
+
int resource_line_offset = 0,
|
66
|
+
int resource_column_offset = 0,
|
67
|
+
bool resource_is_shared_cross_origin = false,
|
68
|
+
int script_id = -1,
|
69
|
+
Local<Value> source_map_url = Local<Value>(),
|
70
|
+
bool resource_is_opaque = false, bool is_wasm = false,
|
71
|
+
bool is_module = false,
|
72
|
+
Local<Data> host_defined_options = Local<Data>())
|
95
73
|
: isolate_(isolate),
|
96
74
|
resource_name_(resource_name),
|
97
75
|
resource_line_offset_(resource_line_offset),
|
@@ -100,23 +78,22 @@ class V8_EXPORT ScriptOrigin {
|
|
100
78
|
is_module),
|
101
79
|
script_id_(script_id),
|
102
80
|
source_map_url_(source_map_url),
|
103
|
-
host_defined_options_(host_defined_options) {
|
81
|
+
host_defined_options_(host_defined_options) {
|
82
|
+
VerifyHostDefinedOptions();
|
83
|
+
}
|
104
84
|
|
105
85
|
V8_INLINE Local<Value> ResourceName() const;
|
106
|
-
V8_DEPRECATE_SOON("Use getter with primitive C++ types.")
|
107
|
-
V8_INLINE Local<Integer> ResourceLineOffset() const;
|
108
|
-
V8_DEPRECATE_SOON("Use getter with primitive C++ types.")
|
109
|
-
V8_INLINE Local<Integer> ResourceColumnOffset() const;
|
110
|
-
V8_DEPRECATE_SOON("Use getter with primitive C++ types.")
|
111
|
-
V8_INLINE Local<Integer> ScriptID() const;
|
112
86
|
V8_INLINE int LineOffset() const;
|
113
87
|
V8_INLINE int ColumnOffset() const;
|
114
88
|
V8_INLINE int ScriptId() const;
|
115
89
|
V8_INLINE Local<Value> SourceMapUrl() const;
|
116
|
-
|
90
|
+
V8_DEPRECATE_SOON("Use GetHostDefinedOptions")
|
91
|
+
Local<PrimitiveArray> HostDefinedOptions() const;
|
92
|
+
V8_INLINE Local<Data> GetHostDefinedOptions() const;
|
117
93
|
V8_INLINE ScriptOriginOptions Options() const { return options_; }
|
118
94
|
|
119
95
|
private:
|
96
|
+
void VerifyHostDefinedOptions() const;
|
120
97
|
Isolate* isolate_;
|
121
98
|
Local<Value> resource_name_;
|
122
99
|
int resource_line_offset_;
|
@@ -124,7 +101,7 @@ class V8_EXPORT ScriptOrigin {
|
|
124
101
|
ScriptOriginOptions options_;
|
125
102
|
int script_id_;
|
126
103
|
Local<Value> source_map_url_;
|
127
|
-
Local<
|
104
|
+
Local<Data> host_defined_options_;
|
128
105
|
};
|
129
106
|
|
130
107
|
/**
|
@@ -212,8 +189,6 @@ class V8_EXPORT Message {
|
|
212
189
|
bool IsSharedCrossOrigin() const;
|
213
190
|
bool IsOpaque() const;
|
214
191
|
|
215
|
-
V8_DEPRECATE_SOON("Use the version that takes a std::ostream&.")
|
216
|
-
static void PrintCurrentStackTrace(Isolate* isolate, FILE* out);
|
217
192
|
static void PrintCurrentStackTrace(Isolate* isolate, std::ostream& out);
|
218
193
|
|
219
194
|
static const int kNoLineNumberInfo = 0;
|
@@ -224,7 +199,7 @@ class V8_EXPORT Message {
|
|
224
199
|
|
225
200
|
Local<Value> ScriptOrigin::ResourceName() const { return resource_name_; }
|
226
201
|
|
227
|
-
Local<
|
202
|
+
Local<Data> ScriptOrigin::GetHostDefinedOptions() const {
|
228
203
|
return host_defined_options_;
|
229
204
|
}
|
230
205
|
|
@@ -21,6 +21,7 @@ class Isolate;
|
|
21
21
|
namespace metrics {
|
22
22
|
|
23
23
|
struct GarbageCollectionPhases {
|
24
|
+
int64_t total_wall_clock_duration_in_us = -1;
|
24
25
|
int64_t compact_wall_clock_duration_in_us = -1;
|
25
26
|
int64_t mark_wall_clock_duration_in_us = -1;
|
26
27
|
int64_t sweep_wall_clock_duration_in_us = -1;
|
@@ -34,6 +35,7 @@ struct GarbageCollectionSizes {
|
|
34
35
|
};
|
35
36
|
|
36
37
|
struct GarbageCollectionFullCycle {
|
38
|
+
int reason = -1;
|
37
39
|
GarbageCollectionPhases total;
|
38
40
|
GarbageCollectionPhases total_cpp;
|
39
41
|
GarbageCollectionPhases main_thread;
|
@@ -46,12 +48,12 @@ struct GarbageCollectionFullCycle {
|
|
46
48
|
GarbageCollectionSizes objects_cpp;
|
47
49
|
GarbageCollectionSizes memory;
|
48
50
|
GarbageCollectionSizes memory_cpp;
|
49
|
-
double collection_rate_in_percent;
|
50
|
-
double collection_rate_cpp_in_percent;
|
51
|
-
double efficiency_in_bytes_per_us;
|
52
|
-
double efficiency_cpp_in_bytes_per_us;
|
53
|
-
double main_thread_efficiency_in_bytes_per_us;
|
54
|
-
double main_thread_efficiency_cpp_in_bytes_per_us;
|
51
|
+
double collection_rate_in_percent = -1.0;
|
52
|
+
double collection_rate_cpp_in_percent = -1.0;
|
53
|
+
double efficiency_in_bytes_per_us = -1.0;
|
54
|
+
double efficiency_cpp_in_bytes_per_us = -1.0;
|
55
|
+
double main_thread_efficiency_in_bytes_per_us = -1.0;
|
56
|
+
double main_thread_efficiency_cpp_in_bytes_per_us = -1.0;
|
55
57
|
};
|
56
58
|
|
57
59
|
struct GarbageCollectionFullMainThreadIncrementalMark {
|
@@ -59,25 +61,38 @@ struct GarbageCollectionFullMainThreadIncrementalMark {
|
|
59
61
|
int64_t cpp_wall_clock_duration_in_us = -1;
|
60
62
|
};
|
61
63
|
|
62
|
-
struct GarbageCollectionFullMainThreadBatchedIncrementalMark {
|
63
|
-
std::vector<GarbageCollectionFullMainThreadIncrementalMark> events;
|
64
|
-
};
|
65
|
-
|
66
64
|
struct GarbageCollectionFullMainThreadIncrementalSweep {
|
67
65
|
int64_t wall_clock_duration_in_us = -1;
|
68
66
|
int64_t cpp_wall_clock_duration_in_us = -1;
|
69
67
|
};
|
70
68
|
|
71
|
-
|
72
|
-
|
69
|
+
template <typename EventType>
|
70
|
+
struct GarbageCollectionBatchedEvents {
|
71
|
+
std::vector<EventType> events;
|
73
72
|
};
|
74
73
|
|
74
|
+
using GarbageCollectionFullMainThreadBatchedIncrementalMark =
|
75
|
+
GarbageCollectionBatchedEvents<
|
76
|
+
GarbageCollectionFullMainThreadIncrementalMark>;
|
77
|
+
using GarbageCollectionFullMainThreadBatchedIncrementalSweep =
|
78
|
+
GarbageCollectionBatchedEvents<
|
79
|
+
GarbageCollectionFullMainThreadIncrementalSweep>;
|
80
|
+
|
75
81
|
struct GarbageCollectionYoungCycle {
|
82
|
+
int reason = -1;
|
76
83
|
int64_t total_wall_clock_duration_in_us = -1;
|
77
84
|
int64_t main_thread_wall_clock_duration_in_us = -1;
|
78
|
-
double collection_rate_in_percent;
|
79
|
-
double efficiency_in_bytes_per_us;
|
80
|
-
double main_thread_efficiency_in_bytes_per_us;
|
85
|
+
double collection_rate_in_percent = -1.0;
|
86
|
+
double efficiency_in_bytes_per_us = -1.0;
|
87
|
+
double main_thread_efficiency_in_bytes_per_us = -1.0;
|
88
|
+
#if defined(CPPGC_YOUNG_GENERATION)
|
89
|
+
GarbageCollectionPhases total_cpp;
|
90
|
+
GarbageCollectionSizes objects_cpp;
|
91
|
+
GarbageCollectionSizes memory_cpp;
|
92
|
+
double collection_rate_cpp_in_percent = -1.0;
|
93
|
+
double efficiency_cpp_in_bytes_per_us = -1.0;
|
94
|
+
double main_thread_efficiency_cpp_in_bytes_per_us = -1.0;
|
95
|
+
#endif // defined(CPPGC_YOUNG_GENERATION)
|
81
96
|
};
|
82
97
|
|
83
98
|
struct WasmModuleDecoded {
|
@@ -230,6 +245,8 @@ struct V8_EXPORT LongTaskStats {
|
|
230
245
|
int64_t gc_full_atomic_wall_clock_duration_us = 0;
|
231
246
|
int64_t gc_full_incremental_wall_clock_duration_us = 0;
|
232
247
|
int64_t gc_young_wall_clock_duration_us = 0;
|
248
|
+
// Only collected with --slow-histograms
|
249
|
+
int64_t v8_execute_us = 0;
|
233
250
|
};
|
234
251
|
|
235
252
|
} // namespace metrics
|
@@ -493,7 +493,7 @@ class V8_EXPORT Object : public Value {
|
|
493
493
|
return object.val_->GetAlignedPointerFromInternalField(index);
|
494
494
|
}
|
495
495
|
|
496
|
-
/** Same as above, but works for
|
496
|
+
/** Same as above, but works for TracedReference. */
|
497
497
|
V8_INLINE static void* GetAlignedPointerFromInternalField(
|
498
498
|
const BasicTracedReference<Object>& object, int index) {
|
499
499
|
return object->GetAlignedPointerFromInternalField(index);
|
@@ -594,12 +594,17 @@ class V8_EXPORT Object : public Value {
|
|
594
594
|
/**
|
595
595
|
* Returns the context in which the object was created.
|
596
596
|
*/
|
597
|
-
|
597
|
+
V8_DEPRECATED("Use MaybeLocal<Context> GetCreationContext()")
|
598
598
|
Local<Context> CreationContext();
|
599
599
|
MaybeLocal<Context> GetCreationContext();
|
600
600
|
|
601
|
+
/**
|
602
|
+
* Shortcut for GetCreationContext().ToLocalChecked().
|
603
|
+
**/
|
604
|
+
Local<Context> GetCreationContextChecked();
|
605
|
+
|
601
606
|
/** Same as above, but works for Persistents */
|
602
|
-
|
607
|
+
V8_DEPRECATED(
|
603
608
|
"Use MaybeLocal<Context> GetCreationContext(const "
|
604
609
|
"PersistentBase<Object>& object)")
|
605
610
|
static Local<Context> CreationContext(const PersistentBase<Object>& object);
|
@@ -730,7 +735,7 @@ Local<Value> Object::GetInternalField(int index) {
|
|
730
735
|
}
|
731
736
|
|
732
737
|
void* Object::GetAlignedPointerFromInternalField(int index) {
|
733
|
-
#
|
738
|
+
#if !defined(V8_ENABLE_CHECKS)
|
734
739
|
using A = internal::Address;
|
735
740
|
using I = internal::Internals;
|
736
741
|
A obj = *reinterpret_cast<A*>(this);
|
@@ -739,10 +744,10 @@ void* Object::GetAlignedPointerFromInternalField(int index) {
|
|
739
744
|
auto instance_type = I::GetInstanceType(obj);
|
740
745
|
if (v8::internal::CanHaveInternalField(instance_type)) {
|
741
746
|
int offset = I::kJSObjectHeaderSize + (I::kEmbedderDataSlotSize * index);
|
742
|
-
#ifdef
|
747
|
+
#ifdef V8_SANDBOXED_EXTERNAL_POINTERS
|
743
748
|
offset += I::kEmbedderDataSlotRawPayloadOffset;
|
744
749
|
#endif
|
745
|
-
internal::Isolate* isolate = I::
|
750
|
+
internal::Isolate* isolate = I::GetIsolateForSandbox(obj);
|
746
751
|
A value = I::ReadExternalPointerField(
|
747
752
|
isolate, obj, offset, internal::kEmbedderDataSlotPayloadTag);
|
748
753
|
return reinterpret_cast<void*>(value);
|