libv8-node 18.13.0.0-x86_64-linux-musl → 19.9.0.0-x86_64-linux-musl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libv8-node/location.rb +1 -1
  3. data/lib/libv8/node/version.rb +3 -3
  4. data/vendor/v8/include/cppgc/common.h +0 -1
  5. data/vendor/v8/include/cppgc/cross-thread-persistent.h +7 -8
  6. data/vendor/v8/include/cppgc/heap-consistency.h +46 -3
  7. data/vendor/v8/include/cppgc/heap-handle.h +43 -0
  8. data/vendor/v8/include/cppgc/heap-statistics.h +2 -2
  9. data/vendor/v8/include/cppgc/heap.h +3 -7
  10. data/vendor/v8/include/cppgc/internal/api-constants.h +11 -1
  11. data/vendor/v8/include/cppgc/internal/base-page-handle.h +45 -0
  12. data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +40 -8
  13. data/vendor/v8/include/cppgc/internal/caged-heap.h +61 -0
  14. data/vendor/v8/include/cppgc/internal/gc-info.h +0 -1
  15. data/vendor/v8/include/cppgc/internal/member-storage.h +236 -0
  16. data/vendor/v8/include/cppgc/internal/name-trait.h +21 -6
  17. data/vendor/v8/include/cppgc/internal/persistent-node.h +11 -13
  18. data/vendor/v8/include/cppgc/internal/pointer-policies.h +28 -7
  19. data/vendor/v8/include/cppgc/internal/write-barrier.h +143 -101
  20. data/vendor/v8/include/cppgc/liveness-broker.h +8 -7
  21. data/vendor/v8/include/cppgc/member.h +364 -89
  22. data/vendor/v8/include/cppgc/name-provider.h +4 -4
  23. data/vendor/v8/include/cppgc/persistent.h +5 -9
  24. data/vendor/v8/include/cppgc/platform.h +2 -2
  25. data/vendor/v8/include/cppgc/sentinel-pointer.h +1 -1
  26. data/vendor/v8/include/cppgc/trace-trait.h +4 -0
  27. data/vendor/v8/include/cppgc/type-traits.h +9 -0
  28. data/vendor/v8/include/cppgc/visitor.h +89 -57
  29. data/vendor/v8/include/v8-callbacks.h +19 -5
  30. data/vendor/v8/include/v8-context.h +13 -8
  31. data/vendor/v8/include/v8-cppgc.h +12 -0
  32. data/vendor/v8/include/v8-date.h +5 -0
  33. data/vendor/v8/include/v8-embedder-heap.h +8 -3
  34. data/vendor/v8/include/v8-exception.h +1 -1
  35. data/vendor/v8/include/v8-fast-api-calls.h +46 -32
  36. data/vendor/v8/include/v8-function.h +8 -0
  37. data/vendor/v8/include/v8-initialization.h +23 -49
  38. data/vendor/v8/include/v8-inspector.h +13 -7
  39. data/vendor/v8/include/v8-internal.h +328 -123
  40. data/vendor/v8/include/v8-isolate.h +27 -42
  41. data/vendor/v8/include/v8-local-handle.h +5 -5
  42. data/vendor/v8/include/v8-locker.h +0 -11
  43. data/vendor/v8/include/v8-maybe.h +24 -1
  44. data/vendor/v8/include/v8-message.h +2 -4
  45. data/vendor/v8/include/v8-metrics.h +20 -38
  46. data/vendor/v8/include/v8-microtask-queue.h +1 -1
  47. data/vendor/v8/include/v8-object.h +8 -15
  48. data/vendor/v8/include/v8-persistent-handle.h +0 -2
  49. data/vendor/v8/include/v8-platform.h +54 -25
  50. data/vendor/v8/include/v8-primitive.h +8 -8
  51. data/vendor/v8/include/v8-profiler.h +84 -22
  52. data/vendor/v8/include/v8-regexp.h +2 -1
  53. data/vendor/v8/include/v8-script.h +62 -6
  54. data/vendor/v8/include/v8-template.h +13 -76
  55. data/vendor/v8/include/v8-unwinder-state.h +4 -4
  56. data/vendor/v8/include/v8-util.h +2 -4
  57. data/vendor/v8/include/v8-value-serializer.h +46 -23
  58. data/vendor/v8/include/v8-version.h +3 -3
  59. data/vendor/v8/include/v8-wasm.h +5 -62
  60. data/vendor/v8/include/v8-weak-callback-info.h +0 -7
  61. data/vendor/v8/include/v8config.h +280 -13
  62. data/vendor/v8/x86_64-linux-musl/libv8/obj/libv8_monolith.a +0 -0
  63. metadata +9 -5
@@ -100,9 +100,6 @@ class V8_EXPORT V8 {
100
100
  const int kBuildConfiguration =
101
101
  (internal::PointerCompressionIsEnabled() ? kPointerCompression : 0) |
102
102
  (internal::SmiValuesAre31Bits() ? k31BitSmis : 0) |
103
- (internal::SandboxedExternalPointersAreEnabled()
104
- ? kSandboxedExternalPointers
105
- : 0) |
106
103
  (internal::SandboxIsEnabled() ? kSandbox : 0);
107
104
  return Initialize(kBuildConfiguration);
108
105
  }
@@ -184,30 +181,19 @@ class V8_EXPORT V8 {
184
181
  * V8 was disposed.
185
182
  */
186
183
  static void DisposePlatform();
187
- V8_DEPRECATED("Use DisposePlatform()")
188
- static void ShutdownPlatform() { DisposePlatform(); }
189
-
190
- #ifdef V8_SANDBOX
191
- //
192
- // Sandbox related API.
193
- //
194
- // This API is not yet stable and subject to changes in the future.
195
- //
196
184
 
185
+ #if defined(V8_ENABLE_SANDBOX)
197
186
  /**
198
- * Initializes the V8 sandbox.
199
- *
200
- * This must be invoked after the platform was initialized but before V8 is
201
- * initialized. The sandbox is torn down during platform shutdown.
202
- * Returns true on success, false otherwise.
187
+ * Returns true if the sandbox is configured securely.
203
188
  *
204
- * TODO(saelo) Once it is no longer optional to initialize the sandbox when
205
- * compiling with V8_SANDBOX, the sandbox initialization will likely happen
206
- * as part of V8::Initialize, at which point this function should be removed.
189
+ * If V8 cannot create a regular sandbox during initialization, for example
190
+ * because not enough virtual address space can be reserved, it will instead
191
+ * create a fallback sandbox that still allows it to function normally but
192
+ * does not have the same security properties as a regular sandbox. This API
193
+ * can be used to determine if such a fallback sandbox is being used, in
194
+ * which case it will return false.
207
195
  */
208
- static bool InitializeSandbox();
209
- V8_DEPRECATE_SOON("Use InitializeSandbox()")
210
- static bool InitializeVirtualMemoryCage() { return InitializeSandbox(); }
196
+ static bool IsSandboxConfiguredSecurely();
211
197
 
212
198
  /**
213
199
  * Provides access to the virtual address subspace backing the sandbox.
@@ -220,39 +206,29 @@ class V8_EXPORT V8 {
220
206
  * and so in particular the contents of pages allocagted in this virtual
221
207
  * address space, arbitrarily and concurrently. Due to this, it is
222
208
  * recommended to to only place pure data buffers in them.
223
- *
224
- * This function must only be called after initializing the sandbox.
225
209
  */
226
210
  static VirtualAddressSpace* GetSandboxAddressSpace();
227
- V8_DEPRECATE_SOON("Use GetSandboxAddressSpace()")
228
- static PageAllocator* GetVirtualMemoryCagePageAllocator();
229
211
 
230
212
  /**
231
213
  * Returns the size of the sandbox in bytes.
232
214
  *
233
- * If the sandbox has not been initialized, or if the initialization failed,
234
- * this returns zero.
215
+ * This represents the size of the address space that V8 can directly address
216
+ * and in which it allocates its objects.
235
217
  */
236
218
  static size_t GetSandboxSizeInBytes();
237
- V8_DEPRECATE_SOON("Use GetSandboxSizeInBytes()")
238
- static size_t GetVirtualMemoryCageSizeInBytes() {
239
- return GetSandboxSizeInBytes();
240
- }
241
219
 
242
220
  /**
243
- * Returns whether the sandbox is configured securely.
221
+ * Returns the size of the address space reservation backing the sandbox.
244
222
  *
245
- * If V8 cannot create a proper sandbox, it will fall back to creating a
246
- * sandbox that doesn't have the desired security properties but at least
247
- * still allows V8 to function. This API can be used to determine if such an
248
- * insecure sandbox is being used, in which case it will return false.
223
+ * This may be larger than the sandbox (i.e. |GetSandboxSizeInBytes()|) due
224
+ * to surrounding guard regions, or may be smaller than the sandbox in case a
225
+ * fallback sandbox is being used, which will use a smaller virtual address
226
+ * space reservation. In the latter case this will also be different from
227
+ * |GetSandboxAddressSpace()->size()| as that will cover a larger part of the
228
+ * address space than what has actually been reserved.
249
229
  */
250
- static bool IsSandboxConfiguredSecurely();
251
- V8_DEPRECATE_SOON("Use IsSandboxConfiguredSecurely()")
252
- static bool IsUsingSecureVirtualMemoryCage() {
253
- return IsSandboxConfiguredSecurely();
254
- }
255
- #endif
230
+ static size_t GetSandboxReservationSizeInBytes();
231
+ #endif // V8_ENABLE_SANDBOX
256
232
 
257
233
  /**
258
234
  * Activate trap-based bounds checking for WebAssembly.
@@ -273,7 +249,7 @@ class V8_EXPORT V8 {
273
249
  * exceptions in V8-generated code.
274
250
  */
275
251
  static void SetUnhandledExceptionCallback(
276
- UnhandledExceptionCallback unhandled_exception_callback);
252
+ UnhandledExceptionCallback callback);
277
253
  #endif
278
254
 
279
255
  /**
@@ -281,8 +257,7 @@ class V8_EXPORT V8 {
281
257
  * v8 has encountered a fatal failure to allocate memory and is about to
282
258
  * terminate.
283
259
  */
284
-
285
- static void SetFatalMemoryErrorCallback(OOMErrorCallback oom_error_callback);
260
+ static void SetFatalMemoryErrorCallback(OOMErrorCallback callback);
286
261
 
287
262
  /**
288
263
  * Get statistics about the shared memory usage.
@@ -295,8 +270,7 @@ class V8_EXPORT V8 {
295
270
  enum BuildConfigurationFeatures {
296
271
  kPointerCompression = 1 << 0,
297
272
  k31BitSmis = 1 << 1,
298
- kSandboxedExternalPointers = 1 << 2,
299
- kSandbox = 1 << 3,
273
+ kSandbox = 1 << 2,
300
274
  };
301
275
 
302
276
  /**
@@ -207,10 +207,10 @@ class V8_EXPORT V8InspectorSession {
207
207
 
208
208
  class V8_EXPORT WebDriverValue {
209
209
  public:
210
- explicit WebDriverValue(StringView type, v8::MaybeLocal<v8::Value> value = {})
211
- : type(type), value(value) {}
212
-
213
- StringView type;
210
+ explicit WebDriverValue(std::unique_ptr<StringBuffer> type,
211
+ v8::MaybeLocal<v8::Value> value = {})
212
+ : type(std::move(type)), value(value) {}
213
+ std::unique_ptr<StringBuffer> type;
214
214
  v8::MaybeLocal<v8::Value> value;
215
215
  };
216
216
 
@@ -219,6 +219,9 @@ class V8_EXPORT V8InspectorClient {
219
219
  virtual ~V8InspectorClient() = default;
220
220
 
221
221
  virtual void runMessageLoopOnPause(int contextGroupId) {}
222
+ virtual void runMessageLoopOnInstrumentationPause(int contextGroupId) {
223
+ runMessageLoopOnPause(contextGroupId);
224
+ }
222
225
  virtual void quitMessageLoopOnPause() {}
223
226
  virtual void runIfWaitingForDebugger(int contextGroupId) {}
224
227
 
@@ -361,9 +364,12 @@ class V8_EXPORT V8Inspector {
361
364
  virtual void sendNotification(std::unique_ptr<StringBuffer> message) = 0;
362
365
  virtual void flushProtocolNotifications() = 0;
363
366
  };
364
- virtual std::unique_ptr<V8InspectorSession> connect(int contextGroupId,
365
- Channel*,
366
- StringView state) = 0;
367
+ enum ClientTrustLevel { kUntrusted, kFullyTrusted };
368
+ virtual std::unique_ptr<V8InspectorSession> connect(
369
+ int contextGroupId, Channel*, StringView state,
370
+ ClientTrustLevel client_trust_level) {
371
+ return nullptr;
372
+ }
367
373
 
368
374
  // API methods.
369
375
  virtual std::unique_ptr<V8StackTrace> createStackTrace(