libv8-node 19.9.0.0-arm64-darwin → 20.2.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 (48) 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/cross-thread-persistent.h +4 -2
  5. data/vendor/v8/include/cppgc/heap-consistency.h +2 -2
  6. data/vendor/v8/include/cppgc/heap-handle.h +5 -0
  7. data/vendor/v8/include/cppgc/internal/api-constants.h +4 -1
  8. data/vendor/v8/include/cppgc/internal/gc-info.h +35 -33
  9. data/vendor/v8/include/cppgc/internal/member-storage.h +19 -7
  10. data/vendor/v8/include/cppgc/internal/pointer-policies.h +38 -2
  11. data/vendor/v8/include/cppgc/internal/write-barrier.h +15 -5
  12. data/vendor/v8/include/cppgc/macros.h +10 -1
  13. data/vendor/v8/include/cppgc/member.h +167 -129
  14. data/vendor/v8/include/cppgc/persistent.h +22 -15
  15. data/vendor/v8/include/cppgc/platform.h +6 -4
  16. data/vendor/v8/include/cppgc/type-traits.h +4 -3
  17. data/vendor/v8/include/cppgc/visitor.h +16 -1
  18. data/vendor/v8/include/libplatform/v8-tracing.h +2 -2
  19. data/vendor/v8/include/v8-array-buffer.h +59 -0
  20. data/vendor/v8/include/v8-callbacks.h +14 -1
  21. data/vendor/v8/include/v8-context.h +50 -3
  22. data/vendor/v8/include/v8-cppgc.h +10 -0
  23. data/vendor/v8/include/v8-data.h +1 -1
  24. data/vendor/v8/include/v8-embedder-heap.h +0 -169
  25. data/vendor/v8/include/v8-fast-api-calls.h +7 -3
  26. data/vendor/v8/include/v8-function-callback.h +69 -42
  27. data/vendor/v8/include/v8-function.h +1 -0
  28. data/vendor/v8/include/v8-inspector.h +20 -5
  29. data/vendor/v8/include/v8-internal.h +242 -150
  30. data/vendor/v8/include/v8-isolate.h +30 -40
  31. data/vendor/v8/include/v8-local-handle.h +81 -48
  32. data/vendor/v8/include/v8-metrics.h +28 -2
  33. data/vendor/v8/include/v8-microtask-queue.h +5 -0
  34. data/vendor/v8/include/v8-object.h +21 -3
  35. data/vendor/v8/include/v8-persistent-handle.h +25 -16
  36. data/vendor/v8/include/v8-platform.h +79 -10
  37. data/vendor/v8/include/v8-primitive.h +19 -12
  38. data/vendor/v8/include/v8-profiler.h +49 -31
  39. data/vendor/v8/include/v8-script.h +29 -1
  40. data/vendor/v8/include/v8-snapshot.h +4 -8
  41. data/vendor/v8/include/v8-template.h +3 -1
  42. data/vendor/v8/include/v8-traced-handle.h +22 -28
  43. data/vendor/v8/include/v8-util.h +9 -3
  44. data/vendor/v8/include/v8-value.h +31 -4
  45. data/vendor/v8/include/v8-version.h +4 -4
  46. data/vendor/v8/include/v8-wasm.h +2 -1
  47. data/vendor/v8/include/v8config.h +73 -2
  48. metadata +1 -1
@@ -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
- protected:
126
+ private:
123
127
  friend class internal::FunctionCallbackArguments;
124
128
  friend class internal::CustomArguments<FunctionCallbackInfo>;
125
129
  friend class debug::ConsoleCallArguments;
126
- static const int kHolderIndex = 0;
127
- static const int kIsolateIndex = 1;
128
- static const int kReturnValueDefaultValueIndex = 2;
129
- static const int kReturnValueIndex = 3;
130
- static const int kDataIndex = 4;
131
- static const int kNewTargetIndex = 5;
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
- // This shouldn't be public, but the arm compiler needs it.
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 const int kShouldThrowOnErrorIndex = 0;
240
- static const int kHolderIndex = 1;
241
- static const int kIsolateIndex = 2;
242
- static const int kReturnValueDefaultValueIndex = 3;
243
- static const int kReturnValueIndex = 4;
244
- static const int kDataIndex = 5;
245
- static const int kThisIndex = 6;
246
-
247
- V8_INLINE PropertyCallbackInfo(internal::Address* args) : args_(args) {}
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_ = *reinterpret_cast<internal::Address*>(*handle);
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_ = *I::GetRoot(GetIsolate(), root_index);
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_ = *I::GetRoot(GetIsolate(), I::kNullValueRootIndex);
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_ = *I::GetRoot(GetIsolate(), I::kUndefinedValueRootIndex);
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_ = *I::GetRoot(GetIsolate(), I::kEmptyStringRootIndex);
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_[-2]);
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
- if (*value_ == *I::GetRoot(GetIsolate(), I::kTheHoleValueRootIndex))
365
- return Local<Value>(*Undefined(GetIsolate()));
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_[-1];
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 Local<Value>(*Undefined(GetIsolate()));
391
- return Local<Value>(reinterpret_cast<Value*>(values_ + i));
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>(reinterpret_cast<Object*>(values_ - 1));
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>(reinterpret_cast<Value*>(&implicit_args_[kDataIndex]));
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>(reinterpret_cast<Value*>(&args_[kDataIndex]));
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>(reinterpret_cast<Object*>(&args_[kThisIndex]));
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>(reinterpret_cast<Object*>(&args_[kHolderIndex]));
481
+ return Local<Object>::FromSlot(&args_[kHolderIndex]);
455
482
  }
456
483
 
457
484
  template <typename T>
@@ -59,6 +59,7 @@ class V8_EXPORT Function : public Object {
59
59
  void SetName(Local<String> name);
60
60
  Local<Value> GetName() const;
61
61
 
62
+ V8_DEPRECATED("No direct replacement")
62
63
  MaybeLocal<UnboundScript> GetUnboundScript() const;
63
64
 
64
65
  /**
@@ -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