libv8-node 19.9.0.0-x86_64-darwin → 20.12.1.0-x86_64-darwin
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/cross-thread-persistent.h +4 -2
- data/vendor/v8/include/cppgc/heap-consistency.h +2 -2
- data/vendor/v8/include/cppgc/heap-handle.h +5 -0
- data/vendor/v8/include/cppgc/internal/api-constants.h +4 -1
- data/vendor/v8/include/cppgc/internal/gc-info.h +35 -33
- data/vendor/v8/include/cppgc/internal/member-storage.h +19 -7
- data/vendor/v8/include/cppgc/internal/pointer-policies.h +38 -2
- data/vendor/v8/include/cppgc/internal/write-barrier.h +15 -5
- data/vendor/v8/include/cppgc/macros.h +10 -1
- data/vendor/v8/include/cppgc/member.h +167 -129
- data/vendor/v8/include/cppgc/persistent.h +22 -15
- data/vendor/v8/include/cppgc/platform.h +6 -4
- data/vendor/v8/include/cppgc/type-traits.h +4 -3
- data/vendor/v8/include/cppgc/visitor.h +16 -1
- data/vendor/v8/include/libplatform/v8-tracing.h +2 -2
- data/vendor/v8/include/v8-array-buffer.h +59 -0
- data/vendor/v8/include/v8-callbacks.h +14 -1
- data/vendor/v8/include/v8-context.h +50 -3
- data/vendor/v8/include/v8-cppgc.h +15 -0
- data/vendor/v8/include/v8-data.h +1 -1
- data/vendor/v8/include/v8-embedder-heap.h +0 -169
- data/vendor/v8/include/v8-fast-api-calls.h +7 -3
- data/vendor/v8/include/v8-function-callback.h +69 -42
- data/vendor/v8/include/v8-function.h +1 -0
- data/vendor/v8/include/v8-inspector.h +20 -5
- data/vendor/v8/include/v8-internal.h +242 -150
- data/vendor/v8/include/v8-isolate.h +30 -40
- data/vendor/v8/include/v8-local-handle.h +81 -48
- data/vendor/v8/include/v8-metrics.h +28 -2
- data/vendor/v8/include/v8-microtask-queue.h +5 -0
- data/vendor/v8/include/v8-object.h +38 -3
- data/vendor/v8/include/v8-persistent-handle.h +25 -16
- data/vendor/v8/include/v8-platform.h +79 -10
- data/vendor/v8/include/v8-primitive.h +19 -12
- data/vendor/v8/include/v8-profiler.h +59 -31
- data/vendor/v8/include/v8-script.h +32 -5
- data/vendor/v8/include/v8-snapshot.h +4 -8
- data/vendor/v8/include/v8-template.h +3 -1
- data/vendor/v8/include/v8-traced-handle.h +22 -28
- data/vendor/v8/include/v8-util.h +9 -3
- data/vendor/v8/include/v8-value.h +31 -4
- data/vendor/v8/include/v8-version.h +4 -4
- data/vendor/v8/include/v8-wasm.h +2 -1
- data/vendor/v8/include/v8config.h +73 -2
- data/vendor/v8/x86_64-darwin/libv8/obj/libv8_monolith.a +0 -0
- metadata +3 -3
@@ -21,6 +21,7 @@ class Value;
|
|
21
21
|
namespace internal {
|
22
22
|
class FunctionCallbackArguments;
|
23
23
|
class PropertyCallbackArguments;
|
24
|
+
class Builtins;
|
24
25
|
} // namespace internal
|
25
26
|
|
26
27
|
namespace debug {
|
@@ -74,6 +75,11 @@ class ReturnValue {
|
|
74
75
|
V8_INLINE void SetInternal(internal::Address value) { *value_ = value; }
|
75
76
|
V8_INLINE internal::Address GetDefaultValue();
|
76
77
|
V8_INLINE explicit ReturnValue(internal::Address* slot);
|
78
|
+
|
79
|
+
// See FunctionCallbackInfo.
|
80
|
+
static constexpr int kIsolateValueIndex = -2;
|
81
|
+
static constexpr int kDefaultValueValueIndex = -1;
|
82
|
+
|
77
83
|
internal::Address* value_;
|
78
84
|
};
|
79
85
|
|
@@ -116,19 +122,35 @@ class FunctionCallbackInfo {
|
|
116
122
|
V8_INLINE Isolate* GetIsolate() const;
|
117
123
|
/** The ReturnValue for the call. */
|
118
124
|
V8_INLINE ReturnValue<T> GetReturnValue() const;
|
119
|
-
// This shouldn't be public, but the arm compiler needs it.
|
120
|
-
static const int kArgsLength = 6;
|
121
125
|
|
122
|
-
|
126
|
+
private:
|
123
127
|
friend class internal::FunctionCallbackArguments;
|
124
128
|
friend class internal::CustomArguments<FunctionCallbackInfo>;
|
125
129
|
friend class debug::ConsoleCallArguments;
|
126
|
-
|
127
|
-
static
|
128
|
-
static
|
129
|
-
static
|
130
|
-
static
|
131
|
-
static
|
130
|
+
friend class internal::Builtins;
|
131
|
+
static constexpr int kHolderIndex = 0;
|
132
|
+
static constexpr int kIsolateIndex = 1;
|
133
|
+
static constexpr int kReturnValueDefaultValueIndex = 2;
|
134
|
+
static constexpr int kReturnValueIndex = 3;
|
135
|
+
static constexpr int kDataIndex = 4;
|
136
|
+
static constexpr int kNewTargetIndex = 5;
|
137
|
+
|
138
|
+
static constexpr int kArgsLength = 6;
|
139
|
+
static constexpr int kArgsLengthWithReceiver = 7;
|
140
|
+
|
141
|
+
// Codegen constants:
|
142
|
+
static constexpr int kSize = 3 * internal::kApiSystemPointerSize;
|
143
|
+
static constexpr int kImplicitArgsOffset = 0;
|
144
|
+
static constexpr int kValuesOffset =
|
145
|
+
kImplicitArgsOffset + internal::kApiSystemPointerSize;
|
146
|
+
static constexpr int kLengthOffset =
|
147
|
+
kValuesOffset + internal::kApiSystemPointerSize;
|
148
|
+
|
149
|
+
static constexpr int kThisValuesIndex = -1;
|
150
|
+
static_assert(ReturnValue<Value>::kDefaultValueValueIndex ==
|
151
|
+
kReturnValueDefaultValueIndex - kReturnValueIndex);
|
152
|
+
static_assert(ReturnValue<Value>::kIsolateValueIndex ==
|
153
|
+
kIsolateIndex - kReturnValueIndex);
|
132
154
|
|
133
155
|
V8_INLINE FunctionCallbackInfo(internal::Address* implicit_args,
|
134
156
|
internal::Address* values, int length);
|
@@ -229,22 +251,24 @@ class PropertyCallbackInfo {
|
|
229
251
|
*/
|
230
252
|
V8_INLINE bool ShouldThrowOnError() const;
|
231
253
|
|
232
|
-
|
233
|
-
static const int kArgsLength = 7;
|
234
|
-
|
235
|
-
protected:
|
254
|
+
private:
|
236
255
|
friend class MacroAssembler;
|
237
256
|
friend class internal::PropertyCallbackArguments;
|
238
257
|
friend class internal::CustomArguments<PropertyCallbackInfo>;
|
239
|
-
static
|
240
|
-
static
|
241
|
-
static
|
242
|
-
static
|
243
|
-
static
|
244
|
-
static
|
245
|
-
static
|
246
|
-
|
247
|
-
|
258
|
+
static constexpr int kShouldThrowOnErrorIndex = 0;
|
259
|
+
static constexpr int kHolderIndex = 1;
|
260
|
+
static constexpr int kIsolateIndex = 2;
|
261
|
+
static constexpr int kReturnValueDefaultValueIndex = 3;
|
262
|
+
static constexpr int kReturnValueIndex = 4;
|
263
|
+
static constexpr int kDataIndex = 5;
|
264
|
+
static constexpr int kThisIndex = 6;
|
265
|
+
|
266
|
+
static constexpr int kArgsLength = 7;
|
267
|
+
|
268
|
+
static constexpr int kSize = 1 * internal::kApiSystemPointerSize;
|
269
|
+
|
270
|
+
V8_INLINE explicit PropertyCallbackInfo(internal::Address* args)
|
271
|
+
: args_(args) {}
|
248
272
|
internal::Address* args_;
|
249
273
|
};
|
250
274
|
|
@@ -285,7 +309,7 @@ void ReturnValue<T>::Set(const Local<S> handle) {
|
|
285
309
|
if (V8_UNLIKELY(handle.IsEmpty())) {
|
286
310
|
*value_ = GetDefaultValue();
|
287
311
|
} else {
|
288
|
-
*value_ =
|
312
|
+
*value_ = internal::ValueHelper::ValueAsAddress(*handle);
|
289
313
|
}
|
290
314
|
}
|
291
315
|
|
@@ -328,41 +352,46 @@ void ReturnValue<T>::Set(bool value) {
|
|
328
352
|
} else {
|
329
353
|
root_index = I::kFalseValueRootIndex;
|
330
354
|
}
|
331
|
-
*value_ =
|
355
|
+
*value_ = I::GetRoot(GetIsolate(), root_index);
|
332
356
|
}
|
333
357
|
|
334
358
|
template <typename T>
|
335
359
|
void ReturnValue<T>::SetNull() {
|
336
360
|
static_assert(std::is_base_of<T, Primitive>::value, "type check");
|
337
361
|
using I = internal::Internals;
|
338
|
-
*value_ =
|
362
|
+
*value_ = I::GetRoot(GetIsolate(), I::kNullValueRootIndex);
|
339
363
|
}
|
340
364
|
|
341
365
|
template <typename T>
|
342
366
|
void ReturnValue<T>::SetUndefined() {
|
343
367
|
static_assert(std::is_base_of<T, Primitive>::value, "type check");
|
344
368
|
using I = internal::Internals;
|
345
|
-
*value_ =
|
369
|
+
*value_ = I::GetRoot(GetIsolate(), I::kUndefinedValueRootIndex);
|
346
370
|
}
|
347
371
|
|
348
372
|
template <typename T>
|
349
373
|
void ReturnValue<T>::SetEmptyString() {
|
350
374
|
static_assert(std::is_base_of<T, String>::value, "type check");
|
351
375
|
using I = internal::Internals;
|
352
|
-
*value_ =
|
376
|
+
*value_ = I::GetRoot(GetIsolate(), I::kEmptyStringRootIndex);
|
353
377
|
}
|
354
378
|
|
355
379
|
template <typename T>
|
356
380
|
Isolate* ReturnValue<T>::GetIsolate() const {
|
357
381
|
// Isolate is always the pointer below the default value on the stack.
|
358
|
-
return *reinterpret_cast<Isolate**>(&value_[
|
382
|
+
return *reinterpret_cast<Isolate**>(&value_[kIsolateValueIndex]);
|
359
383
|
}
|
360
384
|
|
361
385
|
template <typename T>
|
362
386
|
Local<Value> ReturnValue<T>::Get() const {
|
363
387
|
using I = internal::Internals;
|
364
|
-
|
365
|
-
|
388
|
+
#if V8_STATIC_ROOTS_BOOL
|
389
|
+
if (I::is_identical(*value_, I::StaticReadOnlyRoot::kTheHoleValue)) {
|
390
|
+
#else
|
391
|
+
if (*value_ == I::GetRoot(GetIsolate(), I::kTheHoleValueRootIndex)) {
|
392
|
+
#endif
|
393
|
+
return Undefined(GetIsolate());
|
394
|
+
}
|
366
395
|
return Local<Value>::New(GetIsolate(), reinterpret_cast<Value*>(value_));
|
367
396
|
}
|
368
397
|
|
@@ -375,7 +404,7 @@ void ReturnValue<T>::Set(S* whatever) {
|
|
375
404
|
template <typename T>
|
376
405
|
internal::Address ReturnValue<T>::GetDefaultValue() {
|
377
406
|
// Default value is always the pointer below value_ on the stack.
|
378
|
-
return value_[
|
407
|
+
return value_[kDefaultValueValueIndex];
|
379
408
|
}
|
380
409
|
|
381
410
|
template <typename T>
|
@@ -387,31 +416,29 @@ FunctionCallbackInfo<T>::FunctionCallbackInfo(internal::Address* implicit_args,
|
|
387
416
|
template <typename T>
|
388
417
|
Local<Value> FunctionCallbackInfo<T>::operator[](int i) const {
|
389
418
|
// values_ points to the first argument (not the receiver).
|
390
|
-
if (i < 0 || length_ <= i) return
|
391
|
-
return Local<Value
|
419
|
+
if (i < 0 || length_ <= i) return Undefined(GetIsolate());
|
420
|
+
return Local<Value>::FromSlot(values_ + i);
|
392
421
|
}
|
393
422
|
|
394
423
|
template <typename T>
|
395
424
|
Local<Object> FunctionCallbackInfo<T>::This() const {
|
396
425
|
// values_ points to the first argument (not the receiver).
|
397
|
-
return Local<Object
|
426
|
+
return Local<Object>::FromSlot(values_ + kThisValuesIndex);
|
398
427
|
}
|
399
428
|
|
400
429
|
template <typename T>
|
401
430
|
Local<Object> FunctionCallbackInfo<T>::Holder() const {
|
402
|
-
return Local<Object
|
403
|
-
reinterpret_cast<Object*>(&implicit_args_[kHolderIndex]));
|
431
|
+
return Local<Object>::FromSlot(&implicit_args_[kHolderIndex]);
|
404
432
|
}
|
405
433
|
|
406
434
|
template <typename T>
|
407
435
|
Local<Value> FunctionCallbackInfo<T>::NewTarget() const {
|
408
|
-
return Local<Value
|
409
|
-
reinterpret_cast<Value*>(&implicit_args_[kNewTargetIndex]));
|
436
|
+
return Local<Value>::FromSlot(&implicit_args_[kNewTargetIndex]);
|
410
437
|
}
|
411
438
|
|
412
439
|
template <typename T>
|
413
440
|
Local<Value> FunctionCallbackInfo<T>::Data() const {
|
414
|
-
return Local<Value
|
441
|
+
return Local<Value>::FromSlot(&implicit_args_[kDataIndex]);
|
415
442
|
}
|
416
443
|
|
417
444
|
template <typename T>
|
@@ -441,17 +468,17 @@ Isolate* PropertyCallbackInfo<T>::GetIsolate() const {
|
|
441
468
|
|
442
469
|
template <typename T>
|
443
470
|
Local<Value> PropertyCallbackInfo<T>::Data() const {
|
444
|
-
return Local<Value
|
471
|
+
return Local<Value>::FromSlot(&args_[kDataIndex]);
|
445
472
|
}
|
446
473
|
|
447
474
|
template <typename T>
|
448
475
|
Local<Object> PropertyCallbackInfo<T>::This() const {
|
449
|
-
return Local<Object
|
476
|
+
return Local<Object>::FromSlot(&args_[kThisIndex]);
|
450
477
|
}
|
451
478
|
|
452
479
|
template <typename T>
|
453
480
|
Local<Object> PropertyCallbackInfo<T>::Holder() const {
|
454
|
-
return Local<Object
|
481
|
+
return Local<Object>::FromSlot(&args_[kHolderIndex]);
|
455
482
|
}
|
456
483
|
|
457
484
|
template <typename T>
|
@@ -32,19 +32,19 @@ namespace Debugger {
|
|
32
32
|
namespace API {
|
33
33
|
class SearchMatch;
|
34
34
|
}
|
35
|
-
}
|
35
|
+
} // namespace Debugger
|
36
36
|
namespace Runtime {
|
37
37
|
namespace API {
|
38
38
|
class RemoteObject;
|
39
39
|
class StackTrace;
|
40
40
|
class StackTraceId;
|
41
|
-
}
|
42
|
-
}
|
41
|
+
} // namespace API
|
42
|
+
} // namespace Runtime
|
43
43
|
namespace Schema {
|
44
44
|
namespace API {
|
45
45
|
class Domain;
|
46
46
|
}
|
47
|
-
}
|
47
|
+
} // namespace Schema
|
48
48
|
} // namespace protocol
|
49
49
|
|
50
50
|
class V8_EXPORT StringView {
|
@@ -134,6 +134,13 @@ class V8_EXPORT V8DebuggerId {
|
|
134
134
|
int64_t m_second = 0;
|
135
135
|
};
|
136
136
|
|
137
|
+
struct V8_EXPORT V8StackFrame {
|
138
|
+
StringView sourceURL;
|
139
|
+
StringView functionName;
|
140
|
+
int lineNumber;
|
141
|
+
int columnNumber;
|
142
|
+
};
|
143
|
+
|
137
144
|
class V8_EXPORT V8StackTrace {
|
138
145
|
public:
|
139
146
|
virtual StringView firstNonEmptySourceURL() const = 0;
|
@@ -151,6 +158,8 @@ class V8_EXPORT V8StackTrace {
|
|
151
158
|
|
152
159
|
// Safe to pass between threads, drops async chain.
|
153
160
|
virtual std::unique_ptr<V8StackTrace> clone() = 0;
|
161
|
+
|
162
|
+
virtual std::vector<V8StackFrame> frames() const = 0;
|
154
163
|
};
|
155
164
|
|
156
165
|
class V8_EXPORT V8InspectorSession {
|
@@ -203,6 +212,9 @@ class V8_EXPORT V8InspectorSession {
|
|
203
212
|
std::unique_ptr<StringBuffer>* objectGroup) = 0;
|
204
213
|
virtual void releaseObjectGroup(StringView) = 0;
|
205
214
|
virtual void triggerPreciseCoverageDeltaUpdate(StringView occasion) = 0;
|
215
|
+
|
216
|
+
// Prepare for shutdown (disables debugger pausing, etc.).
|
217
|
+
virtual void stop() = 0;
|
206
218
|
};
|
207
219
|
|
208
220
|
class V8_EXPORT WebDriverValue {
|
@@ -365,9 +377,12 @@ class V8_EXPORT V8Inspector {
|
|
365
377
|
virtual void flushProtocolNotifications() = 0;
|
366
378
|
};
|
367
379
|
enum ClientTrustLevel { kUntrusted, kFullyTrusted };
|
380
|
+
enum SessionPauseState { kWaitingForDebugger, kNotWaitingForDebugger };
|
381
|
+
// TODO(chromium:1352175): remove default value once downstream change lands.
|
368
382
|
virtual std::unique_ptr<V8InspectorSession> connect(
|
369
383
|
int contextGroupId, Channel*, StringView state,
|
370
|
-
ClientTrustLevel client_trust_level
|
384
|
+
ClientTrustLevel client_trust_level,
|
385
|
+
SessionPauseState = kNotWaitingForDebugger) {
|
371
386
|
return nullptr;
|
372
387
|
}
|
373
388
|
|