libv8-node 16.17.0.0-aarch64-linux-musl → 17.9.1.0-aarch64-linux-musl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libv8-node/paths.rb +1 -1
  3. data/lib/libv8/node/version.rb +3 -3
  4. data/vendor/v8/aarch64-linux-musl/libv8/obj/libv8_monolith.a +0 -0
  5. data/vendor/v8/include/cppgc/allocation.h +11 -5
  6. data/vendor/v8/include/cppgc/cross-thread-persistent.h +78 -26
  7. data/vendor/v8/include/cppgc/internal/caged-heap-local-data.h +2 -2
  8. data/vendor/v8/include/cppgc/internal/finalizer-trait.h +2 -0
  9. data/vendor/v8/include/cppgc/internal/gc-info.h +90 -10
  10. data/vendor/v8/include/cppgc/internal/name-trait.h +11 -0
  11. data/vendor/v8/include/cppgc/internal/persistent-node.h +44 -12
  12. data/vendor/v8/include/cppgc/internal/pointer-policies.h +22 -11
  13. data/vendor/v8/include/cppgc/internal/write-barrier.h +9 -1
  14. data/vendor/v8/include/cppgc/persistent.h +1 -1
  15. data/vendor/v8/include/cppgc/prefinalizer.h +1 -1
  16. data/vendor/v8/include/v8-array-buffer.h +433 -0
  17. data/vendor/v8/include/v8-callbacks.h +377 -0
  18. data/vendor/v8/include/v8-container.h +129 -0
  19. data/vendor/v8/include/v8-context.h +418 -0
  20. data/vendor/v8/include/v8-cppgc.h +5 -2
  21. data/vendor/v8/include/v8-data.h +65 -0
  22. data/vendor/v8/include/v8-date.h +43 -0
  23. data/vendor/v8/include/v8-debug.h +151 -0
  24. data/vendor/v8/include/v8-embedder-heap.h +238 -0
  25. data/vendor/v8/include/v8-exception.h +224 -0
  26. data/vendor/v8/include/v8-extension.h +62 -0
  27. data/vendor/v8/include/v8-external.h +37 -0
  28. data/vendor/v8/include/v8-fast-api-calls.h +63 -11
  29. data/vendor/v8/include/v8-forward.h +81 -0
  30. data/vendor/v8/include/v8-function-callback.h +475 -0
  31. data/vendor/v8/include/v8-function.h +122 -0
  32. data/vendor/v8/include/v8-initialization.h +282 -0
  33. data/vendor/v8/include/v8-inspector.h +11 -21
  34. data/vendor/v8/include/v8-internal.h +85 -22
  35. data/vendor/v8/include/v8-isolate.h +1662 -0
  36. data/vendor/v8/include/v8-json.h +47 -0
  37. data/vendor/v8/include/v8-local-handle.h +459 -0
  38. data/vendor/v8/include/v8-locker.h +148 -0
  39. data/vendor/v8/include/v8-maybe.h +137 -0
  40. data/vendor/v8/include/v8-memory-span.h +43 -0
  41. data/vendor/v8/include/v8-message.h +241 -0
  42. data/vendor/v8/include/v8-metrics.h +37 -1
  43. data/vendor/v8/include/v8-microtask-queue.h +152 -0
  44. data/vendor/v8/include/v8-microtask.h +28 -0
  45. data/vendor/v8/include/v8-object.h +770 -0
  46. data/vendor/v8/include/v8-persistent-handle.h +590 -0
  47. data/vendor/v8/include/v8-platform.h +41 -17
  48. data/vendor/v8/include/v8-primitive-object.h +118 -0
  49. data/vendor/v8/include/v8-primitive.h +858 -0
  50. data/vendor/v8/include/v8-profiler.h +10 -11
  51. data/vendor/v8/include/v8-promise.h +174 -0
  52. data/vendor/v8/include/v8-proxy.h +50 -0
  53. data/vendor/v8/include/v8-regexp.h +105 -0
  54. data/vendor/v8/include/v8-script.h +771 -0
  55. data/vendor/v8/include/v8-snapshot.h +198 -0
  56. data/vendor/v8/include/v8-statistics.h +215 -0
  57. data/vendor/v8/include/v8-template.h +1052 -0
  58. data/vendor/v8/include/v8-traced-handle.h +605 -0
  59. data/vendor/v8/include/v8-typed-array.h +282 -0
  60. data/vendor/v8/include/v8-unwinder-state.h +4 -3
  61. data/vendor/v8/include/v8-unwinder.h +129 -0
  62. data/vendor/v8/include/v8-util.h +7 -1
  63. data/vendor/v8/include/v8-value-serializer.h +249 -0
  64. data/vendor/v8/include/v8-value.h +526 -0
  65. data/vendor/v8/include/v8-version.h +3 -3
  66. data/vendor/v8/include/v8-wasm.h +245 -0
  67. data/vendor/v8/include/v8-weak-callback-info.h +73 -0
  68. data/vendor/v8/include/v8.h +41 -12604
  69. metadata +48 -6
@@ -11,7 +11,9 @@
11
11
  #include <unordered_set>
12
12
  #include <vector>
13
13
 
14
- #include "v8.h" // NOLINT(build/include_directory)
14
+ #include "v8-local-handle.h" // NOLINT(build/include_directory)
15
+ #include "v8-message.h" // NOLINT(build/include_directory)
16
+ #include "v8-persistent-handle.h" // NOLINT(build/include_directory)
15
17
 
16
18
  /**
17
19
  * Profiler support for the V8 JavaScript engine.
@@ -20,6 +22,7 @@ namespace v8 {
20
22
 
21
23
  class HeapGraphNode;
22
24
  struct HeapStatsUpdate;
25
+ class Object;
23
26
 
24
27
  using NativeObject = void*;
25
28
  using SnapshotObjectId = uint32_t;
@@ -289,8 +292,8 @@ class V8_EXPORT CpuProfilingOptions {
289
292
  * interval, set via SetSamplingInterval(). If
290
293
  * zero, the sampling interval will be equal to
291
294
  * the profiler's sampling interval.
292
- * \param filter_context Deprecated option to filter by context, currently a
293
- * no-op.
295
+ * \param filter_context If specified, profiles will only contain frames
296
+ * using this context. Other frames will be elided.
294
297
  */
295
298
  CpuProfilingOptions(
296
299
  CpuProfilingMode mode = kLeafNodeLineNumbers,
@@ -304,9 +307,13 @@ class V8_EXPORT CpuProfilingOptions {
304
307
  private:
305
308
  friend class internal::CpuProfile;
306
309
 
310
+ bool has_filter_context() const { return !filter_context_.IsEmpty(); }
311
+ void* raw_filter_context() const;
312
+
307
313
  CpuProfilingMode mode_;
308
314
  unsigned max_samples_;
309
315
  int sampling_interval_us_;
316
+ CopyablePersistentTraits<Context>::CopyablePersistent filter_context_;
310
317
  };
311
318
 
312
319
  /**
@@ -896,14 +903,6 @@ class V8_EXPORT HeapProfiler {
896
903
  * Takes a heap snapshot and returns it.
897
904
  */
898
905
  const HeapSnapshot* TakeHeapSnapshot(
899
- ActivityControl* control = nullptr,
900
- ObjectNameResolver* global_object_name_resolver = nullptr,
901
- bool treat_global_objects_as_roots = true);
902
-
903
- /**
904
- * Takes a heap snapshot and returns it.
905
- */
906
- const HeapSnapshot* TakeHeapSnapshotV8_92(
907
906
  ActivityControl* control = nullptr,
908
907
  ObjectNameResolver* global_object_name_resolver = nullptr,
909
908
  bool treat_global_objects_as_roots = true,
@@ -0,0 +1,174 @@
1
+ // Copyright 2021 the V8 project authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ #ifndef INCLUDE_V8_PROMISE_H_
6
+ #define INCLUDE_V8_PROMISE_H_
7
+
8
+ #include "v8-local-handle.h" // NOLINT(build/include_directory)
9
+ #include "v8-object.h" // NOLINT(build/include_directory)
10
+ #include "v8config.h" // NOLINT(build/include_directory)
11
+
12
+ namespace v8 {
13
+
14
+ class Context;
15
+
16
+ #ifndef V8_PROMISE_INTERNAL_FIELD_COUNT
17
+ // The number of required internal fields can be defined by embedder.
18
+ #define V8_PROMISE_INTERNAL_FIELD_COUNT 0
19
+ #endif
20
+
21
+ /**
22
+ * An instance of the built-in Promise constructor (ES6 draft).
23
+ */
24
+ class V8_EXPORT Promise : public Object {
25
+ public:
26
+ /**
27
+ * State of the promise. Each value corresponds to one of the possible values
28
+ * of the [[PromiseState]] field.
29
+ */
30
+ enum PromiseState { kPending, kFulfilled, kRejected };
31
+
32
+ class V8_EXPORT Resolver : public Object {
33
+ public:
34
+ /**
35
+ * Create a new resolver, along with an associated promise in pending state.
36
+ */
37
+ static V8_WARN_UNUSED_RESULT MaybeLocal<Resolver> New(
38
+ Local<Context> context);
39
+
40
+ /**
41
+ * Extract the associated promise.
42
+ */
43
+ Local<Promise> GetPromise();
44
+
45
+ /**
46
+ * Resolve/reject the associated promise with a given value.
47
+ * Ignored if the promise is no longer pending.
48
+ */
49
+ V8_WARN_UNUSED_RESULT Maybe<bool> Resolve(Local<Context> context,
50
+ Local<Value> value);
51
+
52
+ V8_WARN_UNUSED_RESULT Maybe<bool> Reject(Local<Context> context,
53
+ Local<Value> value);
54
+
55
+ V8_INLINE static Resolver* Cast(Value* value) {
56
+ #ifdef V8_ENABLE_CHECKS
57
+ CheckCast(value);
58
+ #endif
59
+ return static_cast<Promise::Resolver*>(value);
60
+ }
61
+
62
+ private:
63
+ Resolver();
64
+ static void CheckCast(Value* obj);
65
+ };
66
+
67
+ /**
68
+ * Register a resolution/rejection handler with a promise.
69
+ * The handler is given the respective resolution/rejection value as
70
+ * an argument. If the promise is already resolved/rejected, the handler is
71
+ * invoked at the end of turn.
72
+ */
73
+ V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Catch(Local<Context> context,
74
+ Local<Function> handler);
75
+
76
+ V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Then(Local<Context> context,
77
+ Local<Function> handler);
78
+
79
+ V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Then(Local<Context> context,
80
+ Local<Function> on_fulfilled,
81
+ Local<Function> on_rejected);
82
+
83
+ /**
84
+ * Returns true if the promise has at least one derived promise, and
85
+ * therefore resolve/reject handlers (including default handler).
86
+ */
87
+ bool HasHandler() const;
88
+
89
+ /**
90
+ * Returns the content of the [[PromiseResult]] field. The Promise must not
91
+ * be pending.
92
+ */
93
+ Local<Value> Result();
94
+
95
+ /**
96
+ * Returns the value of the [[PromiseState]] field.
97
+ */
98
+ PromiseState State();
99
+
100
+ /**
101
+ * Marks this promise as handled to avoid reporting unhandled rejections.
102
+ */
103
+ void MarkAsHandled();
104
+
105
+ /**
106
+ * Marks this promise as silent to prevent pausing the debugger when the
107
+ * promise is rejected.
108
+ */
109
+ void MarkAsSilent();
110
+
111
+ V8_INLINE static Promise* Cast(Value* value) {
112
+ #ifdef V8_ENABLE_CHECKS
113
+ CheckCast(value);
114
+ #endif
115
+ return static_cast<Promise*>(value);
116
+ }
117
+
118
+ static const int kEmbedderFieldCount = V8_PROMISE_INTERNAL_FIELD_COUNT;
119
+
120
+ private:
121
+ Promise();
122
+ static void CheckCast(Value* obj);
123
+ };
124
+
125
+ /**
126
+ * PromiseHook with type kInit is called when a new promise is
127
+ * created. When a new promise is created as part of the chain in the
128
+ * case of Promise.then or in the intermediate promises created by
129
+ * Promise.{race, all}/AsyncFunctionAwait, we pass the parent promise
130
+ * otherwise we pass undefined.
131
+ *
132
+ * PromiseHook with type kResolve is called at the beginning of
133
+ * resolve or reject function defined by CreateResolvingFunctions.
134
+ *
135
+ * PromiseHook with type kBefore is called at the beginning of the
136
+ * PromiseReactionJob.
137
+ *
138
+ * PromiseHook with type kAfter is called right at the end of the
139
+ * PromiseReactionJob.
140
+ */
141
+ enum class PromiseHookType { kInit, kResolve, kBefore, kAfter };
142
+
143
+ using PromiseHook = void (*)(PromiseHookType type, Local<Promise> promise,
144
+ Local<Value> parent);
145
+
146
+ // --- Promise Reject Callback ---
147
+ enum PromiseRejectEvent {
148
+ kPromiseRejectWithNoHandler = 0,
149
+ kPromiseHandlerAddedAfterReject = 1,
150
+ kPromiseRejectAfterResolved = 2,
151
+ kPromiseResolveAfterResolved = 3,
152
+ };
153
+
154
+ class PromiseRejectMessage {
155
+ public:
156
+ PromiseRejectMessage(Local<Promise> promise, PromiseRejectEvent event,
157
+ Local<Value> value)
158
+ : promise_(promise), event_(event), value_(value) {}
159
+
160
+ V8_INLINE Local<Promise> GetPromise() const { return promise_; }
161
+ V8_INLINE PromiseRejectEvent GetEvent() const { return event_; }
162
+ V8_INLINE Local<Value> GetValue() const { return value_; }
163
+
164
+ private:
165
+ Local<Promise> promise_;
166
+ PromiseRejectEvent event_;
167
+ Local<Value> value_;
168
+ };
169
+
170
+ using PromiseRejectCallback = void (*)(PromiseRejectMessage message);
171
+
172
+ } // namespace v8
173
+
174
+ #endif // INCLUDE_V8_PROMISE_H_
@@ -0,0 +1,50 @@
1
+
2
+ // Copyright 2021 the V8 project authors. All rights reserved.
3
+ // Use of this source code is governed by a BSD-style license that can be
4
+ // found in the LICENSE file.
5
+
6
+ #ifndef INCLUDE_V8_PROXY_H_
7
+ #define INCLUDE_V8_PROXY_H_
8
+
9
+ #include "v8-context.h" // NOLINT(build/include_directory)
10
+ #include "v8-local-handle.h" // NOLINT(build/include_directory)
11
+ #include "v8-object.h" // NOLINT(build/include_directory)
12
+ #include "v8config.h" // NOLINT(build/include_directory)
13
+
14
+ namespace v8 {
15
+
16
+ class Context;
17
+
18
+ /**
19
+ * An instance of the built-in Proxy constructor (ECMA-262, 6th Edition,
20
+ * 26.2.1).
21
+ */
22
+ class V8_EXPORT Proxy : public Object {
23
+ public:
24
+ Local<Value> GetTarget();
25
+ Local<Value> GetHandler();
26
+ bool IsRevoked() const;
27
+ void Revoke();
28
+
29
+ /**
30
+ * Creates a new Proxy for the target object.
31
+ */
32
+ static MaybeLocal<Proxy> New(Local<Context> context,
33
+ Local<Object> local_target,
34
+ Local<Object> local_handler);
35
+
36
+ V8_INLINE static Proxy* Cast(Value* value) {
37
+ #ifdef V8_ENABLE_CHECKS
38
+ CheckCast(value);
39
+ #endif
40
+ return static_cast<Proxy*>(value);
41
+ }
42
+
43
+ private:
44
+ Proxy();
45
+ static void CheckCast(Value* obj);
46
+ };
47
+
48
+ } // namespace v8
49
+
50
+ #endif // INCLUDE_V8_PROXY_H_
@@ -0,0 +1,105 @@
1
+
2
+ // Copyright 2021 the V8 project authors. All rights reserved.
3
+ // Use of this source code is governed by a BSD-style license that can be
4
+ // found in the LICENSE file.
5
+
6
+ #ifndef INCLUDE_V8_REGEXP_H_
7
+ #define INCLUDE_V8_REGEXP_H_
8
+
9
+ #include "v8-local-handle.h" // NOLINT(build/include_directory)
10
+ #include "v8-object.h" // NOLINT(build/include_directory)
11
+ #include "v8config.h" // NOLINT(build/include_directory)
12
+
13
+ namespace v8 {
14
+
15
+ class Context;
16
+
17
+ /**
18
+ * An instance of the built-in RegExp constructor (ECMA-262, 15.10).
19
+ */
20
+ class V8_EXPORT RegExp : public Object {
21
+ public:
22
+ /**
23
+ * Regular expression flag bits. They can be or'ed to enable a set
24
+ * of flags.
25
+ * The kLinear value ('l') is experimental and can only be used with
26
+ * --enable-experimental-regexp-engine. RegExps with kLinear flag are
27
+ * guaranteed to be executed in asymptotic linear time wrt. the length of
28
+ * the subject string.
29
+ */
30
+ enum Flags {
31
+ kNone = 0,
32
+ kGlobal = 1 << 0,
33
+ kIgnoreCase = 1 << 1,
34
+ kMultiline = 1 << 2,
35
+ kSticky = 1 << 3,
36
+ kUnicode = 1 << 4,
37
+ kDotAll = 1 << 5,
38
+ kLinear = 1 << 6,
39
+ kHasIndices = 1 << 7,
40
+ };
41
+
42
+ static constexpr int kFlagCount = 8;
43
+
44
+ /**
45
+ * Creates a regular expression from the given pattern string and
46
+ * the flags bit field. May throw a JavaScript exception as
47
+ * described in ECMA-262, 15.10.4.1.
48
+ *
49
+ * For example,
50
+ * RegExp::New(v8::String::New("foo"),
51
+ * static_cast<RegExp::Flags>(kGlobal | kMultiline))
52
+ * is equivalent to evaluating "/foo/gm".
53
+ */
54
+ static V8_WARN_UNUSED_RESULT MaybeLocal<RegExp> New(Local<Context> context,
55
+ Local<String> pattern,
56
+ Flags flags);
57
+
58
+ /**
59
+ * Like New, but additionally specifies a backtrack limit. If the number of
60
+ * backtracks done in one Exec call hits the limit, a match failure is
61
+ * immediately returned.
62
+ */
63
+ static V8_WARN_UNUSED_RESULT MaybeLocal<RegExp> NewWithBacktrackLimit(
64
+ Local<Context> context, Local<String> pattern, Flags flags,
65
+ uint32_t backtrack_limit);
66
+
67
+ /**
68
+ * Executes the current RegExp instance on the given subject string.
69
+ * Equivalent to RegExp.prototype.exec as described in
70
+ *
71
+ * https://tc39.es/ecma262/#sec-regexp.prototype.exec
72
+ *
73
+ * On success, an Array containing the matched strings is returned. On
74
+ * failure, returns Null.
75
+ *
76
+ * Note: modifies global context state, accessible e.g. through RegExp.input.
77
+ */
78
+ V8_WARN_UNUSED_RESULT MaybeLocal<Object> Exec(Local<Context> context,
79
+ Local<String> subject);
80
+
81
+ /**
82
+ * Returns the value of the source property: a string representing
83
+ * the regular expression.
84
+ */
85
+ Local<String> GetSource() const;
86
+
87
+ /**
88
+ * Returns the flags bit field.
89
+ */
90
+ Flags GetFlags() const;
91
+
92
+ V8_INLINE static RegExp* Cast(Value* value) {
93
+ #ifdef V8_ENABLE_CHECKS
94
+ CheckCast(value);
95
+ #endif
96
+ return static_cast<RegExp*>(value);
97
+ }
98
+
99
+ private:
100
+ static void CheckCast(Value* obj);
101
+ };
102
+
103
+ } // namespace v8
104
+
105
+ #endif // INCLUDE_V8_REGEXP_H_