node-bin-darwin-arm64 16.4.2 → 16.6.0

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.
package/include/node/v8.h CHANGED
@@ -596,7 +596,7 @@ template <class T> class PersistentBase {
596
596
  */
597
597
  V8_INLINE uint16_t WrapperClassId() const;
598
598
 
599
- PersistentBase(const PersistentBase& other) = delete; // NOLINT
599
+ PersistentBase(const PersistentBase& other) = delete;
600
600
  void operator=(const PersistentBase&) = delete;
601
601
 
602
602
  private:
@@ -708,7 +708,7 @@ template <class T, class M> class Persistent : public PersistentBase<T> {
708
708
  return *this;
709
709
  }
710
710
  template <class S, class M2>
711
- V8_INLINE Persistent& operator=(const Persistent<S, M2>& that) { // NOLINT
711
+ V8_INLINE Persistent& operator=(const Persistent<S, M2>& that) {
712
712
  Copy(that);
713
713
  return *this;
714
714
  }
@@ -723,7 +723,7 @@ template <class T, class M> class Persistent : public PersistentBase<T> {
723
723
 
724
724
  // TODO(dcarney): this is pretty useless, fix or remove
725
725
  template <class S>
726
- V8_INLINE static Persistent<T>& Cast(const Persistent<S>& that) { // NOLINT
726
+ V8_INLINE static Persistent<T>& Cast(const Persistent<S>& that) {
727
727
  #ifdef V8_ENABLE_CHECKS
728
728
  // If we're going to perform the type check then we have to check
729
729
  // that the handle isn't empty before doing the checked cast.
@@ -734,7 +734,7 @@ template <class T, class M> class Persistent : public PersistentBase<T> {
734
734
 
735
735
  // TODO(dcarney): this is pretty useless, fix or remove
736
736
  template <class S>
737
- V8_INLINE Persistent<S>& As() const { // NOLINT
737
+ V8_INLINE Persistent<S>& As() const {
738
738
  return Persistent<S>::Cast(*this);
739
739
  }
740
740
 
@@ -803,7 +803,7 @@ class Global : public PersistentBase<T> {
803
803
  /**
804
804
  * Pass allows returning uniques from functions, etc.
805
805
  */
806
- Global Pass() { return static_cast<Global&&>(*this); } // NOLINT
806
+ Global Pass() { return static_cast<Global&&>(*this); }
807
807
 
808
808
  /*
809
809
  * For compatibility with Chromium's base::Bind (base::Passed).
@@ -905,8 +905,8 @@ class TracedReferenceBase {
905
905
  * The exact semantics are:
906
906
  * - Tracing garbage collections use |v8::EmbedderHeapTracer| or cppgc.
907
907
  * - Non-tracing garbage collections refer to
908
- * |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should
909
- * be treated as root or not.
908
+ * |v8::EmbedderRootsHandler::IsRoot()| whether the handle should
909
+ * be treated as root or not.
910
910
  *
911
911
  * Note that the base class cannot be instantiated itself. Choose from
912
912
  * - TracedGlobal
@@ -1678,10 +1678,12 @@ class V8_EXPORT Module : public Data {
1678
1678
  /**
1679
1679
  * Evaluates the module and its dependencies.
1680
1680
  *
1681
- * If status is kInstantiated, run the module's code. On success, set status
1682
- * to kEvaluated and return the completion value; on failure, set status to
1683
- * kErrored and propagate the thrown exception (which is then also available
1684
- * via |GetException|).
1681
+ * If status is kInstantiated, run the module's code and return a Promise
1682
+ * object. On success, set status to kEvaluated and resolve the Promise with
1683
+ * the completion value; on failure, set status to kErrored and reject the
1684
+ * Promise with the error.
1685
+ *
1686
+ * If IsGraphAsync() is false, the returned Promise is settled.
1685
1687
  */
1686
1688
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Evaluate(Local<Context> context);
1687
1689
 
@@ -3282,7 +3284,7 @@ class V8_EXPORT String : public Name {
3282
3284
  */
3283
3285
  bool IsExternalOneByte() const;
3284
3286
 
3285
- class V8_EXPORT ExternalStringResourceBase { // NOLINT
3287
+ class V8_EXPORT ExternalStringResourceBase {
3286
3288
  public:
3287
3289
  virtual ~ExternalStringResourceBase() = default;
3288
3290
 
@@ -3633,6 +3635,7 @@ class V8_EXPORT Symbol : public Name {
3633
3635
  * Returns the description string of the symbol, or undefined if none.
3634
3636
  */
3635
3637
  Local<Value> Description() const;
3638
+ Local<Value> Description(Isolate* isolate) const;
3636
3639
 
3637
3640
  V8_DEPRECATED("Use Symbol::Description()")
3638
3641
  Local<Value> Name() const { return Description(); }
@@ -3986,8 +3989,7 @@ class V8_EXPORT Object : public Value {
3986
3989
  //
3987
3990
  // Returns true on success.
3988
3991
  V8_WARN_UNUSED_RESULT Maybe<bool> DefineProperty(
3989
- Local<Context> context, Local<Name> key,
3990
- PropertyDescriptor& descriptor); // NOLINT(runtime/references)
3992
+ Local<Context> context, Local<Name> key, PropertyDescriptor& descriptor);
3991
3993
 
3992
3994
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
3993
3995
  Local<Value> key);
@@ -5364,7 +5366,7 @@ class V8_EXPORT ArrayBuffer : public Object {
5364
5366
  * Note that it is unsafe to call back into V8 from any of the allocator
5365
5367
  * functions.
5366
5368
  */
5367
- class V8_EXPORT Allocator { // NOLINT
5369
+ class V8_EXPORT Allocator {
5368
5370
  public:
5369
5371
  virtual ~Allocator() = default;
5370
5372
 
@@ -6756,6 +6758,15 @@ class V8_EXPORT FunctionTemplate : public Template {
6756
6758
  SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
6757
6759
  const CFunction* c_function = nullptr);
6758
6760
 
6761
+ /** Creates a function template for multiple overloaded fast API calls.*/
6762
+ static Local<FunctionTemplate> NewWithCFunctionOverloads(
6763
+ Isolate* isolate, FunctionCallback callback = nullptr,
6764
+ Local<Value> data = Local<Value>(),
6765
+ Local<Signature> signature = Local<Signature>(), int length = 0,
6766
+ ConstructorBehavior behavior = ConstructorBehavior::kAllow,
6767
+ SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
6768
+ const MemorySpan<const CFunction>& c_function_overloads = {});
6769
+
6759
6770
  /**
6760
6771
  * Creates a function template backed/cached by a private property.
6761
6772
  */
@@ -6787,7 +6798,7 @@ class V8_EXPORT FunctionTemplate : public Template {
6787
6798
  void SetCallHandler(
6788
6799
  FunctionCallback callback, Local<Value> data = Local<Value>(),
6789
6800
  SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
6790
- const CFunction* c_function = nullptr);
6801
+ const MemorySpan<const CFunction>& c_function_overloads = {});
6791
6802
 
6792
6803
  /** Set the predefined length property for the FunctionTemplate. */
6793
6804
  void SetLength(int length);
@@ -6848,6 +6859,15 @@ class V8_EXPORT FunctionTemplate : public Template {
6848
6859
  */
6849
6860
  bool HasInstance(Local<Value> object);
6850
6861
 
6862
+ /**
6863
+ * Returns true if the given value is an API object that was constructed by an
6864
+ * instance of this function template (without checking for inheriting
6865
+ * function templates).
6866
+ *
6867
+ * This is an experimental feature and may still change significantly.
6868
+ */
6869
+ bool IsLeafTemplateForApiObject(v8::Local<v8::Value> value) const;
6870
+
6851
6871
  V8_INLINE static FunctionTemplate* Cast(Data* data);
6852
6872
 
6853
6873
  private:
@@ -7281,7 +7301,7 @@ class V8_EXPORT AccessorSignature : public Data {
7281
7301
  /**
7282
7302
  * Ignore
7283
7303
  */
7284
- class V8_EXPORT Extension { // NOLINT
7304
+ class V8_EXPORT Extension {
7285
7305
  public:
7286
7306
  // Note that the strings passed into this constructor must live as long
7287
7307
  // as the Extension itself.
@@ -7383,6 +7403,11 @@ class V8_EXPORT ResourceConstraints {
7383
7403
  /**
7384
7404
  * The amount of virtual memory reserved for generated code. This is relevant
7385
7405
  * for 64-bit architectures that rely on code range for calls in code.
7406
+ *
7407
+ * When V8_COMPRESS_POINTERS_IN_SHARED_CAGE is defined, there is a shared
7408
+ * process-wide code range that is lazily initialized. This value is used to
7409
+ * configure that shared code range when the first Isolate is
7410
+ * created. Subsequent Isolates ignore this value.
7386
7411
  */
7387
7412
  size_t code_range_size_in_bytes() const { return code_range_size_; }
7388
7413
  void set_code_range_size_in_bytes(size_t limit) { code_range_size_ = limit; }
@@ -7832,6 +7857,10 @@ using WasmSimdEnabledCallback = bool (*)(Local<Context> context);
7832
7857
  // --- Callback for checking if WebAssembly exceptions are enabled ---
7833
7858
  using WasmExceptionsEnabledCallback = bool (*)(Local<Context> context);
7834
7859
 
7860
+ // --- Callback for checking if the SharedArrayBuffer constructor is enabled ---
7861
+ using SharedArrayBufferConstructorEnabledCallback =
7862
+ bool (*)(Local<Context> context);
7863
+
7835
7864
  // --- Garbage Collection Callbacks ---
7836
7865
 
7837
7866
  /**
@@ -8153,17 +8182,16 @@ using UnhandledExceptionCallback =
8153
8182
  /**
8154
8183
  * Interface for iterating through all external resources in the heap.
8155
8184
  */
8156
- class V8_EXPORT ExternalResourceVisitor { // NOLINT
8185
+ class V8_EXPORT ExternalResourceVisitor {
8157
8186
  public:
8158
8187
  virtual ~ExternalResourceVisitor() = default;
8159
8188
  virtual void VisitExternalString(Local<String> string) {}
8160
8189
  };
8161
8190
 
8162
-
8163
8191
  /**
8164
8192
  * Interface for iterating through all the persistent handles in the heap.
8165
8193
  */
8166
- class V8_EXPORT PersistentHandleVisitor { // NOLINT
8194
+ class V8_EXPORT PersistentHandleVisitor {
8167
8195
  public:
8168
8196
  virtual ~PersistentHandleVisitor() = default;
8169
8197
  virtual void VisitPersistentHandle(Persistent<Value>* value,
@@ -8180,6 +8208,45 @@ class V8_EXPORT PersistentHandleVisitor { // NOLINT
8180
8208
  */
8181
8209
  enum class MemoryPressureLevel { kNone, kModerate, kCritical };
8182
8210
 
8211
+ /**
8212
+ * Handler for embedder roots on non-unified heap garbage collections.
8213
+ */
8214
+ class V8_EXPORT EmbedderRootsHandler {
8215
+ public:
8216
+ virtual ~EmbedderRootsHandler() = default;
8217
+
8218
+ /**
8219
+ * Returns true if the TracedGlobal handle should be considered as root for
8220
+ * the currently running non-tracing garbage collection and false otherwise.
8221
+ * The default implementation will keep all TracedGlobal references as roots.
8222
+ *
8223
+ * If this returns false, then V8 may decide that the object referred to by
8224
+ * such a handle is reclaimed. In that case:
8225
+ * - No action is required if handles are used with destructors, i.e., by just
8226
+ * using |TracedGlobal|.
8227
+ * - When run without destructors, i.e., by using |TracedReference|, V8 calls
8228
+ * |ResetRoot|.
8229
+ *
8230
+ * Note that the |handle| is different from the handle that the embedder holds
8231
+ * for retaining the object. The embedder may use |WrapperClassId()| to
8232
+ * distinguish cases where it wants handles to be treated as roots from not
8233
+ * being treated as roots.
8234
+ */
8235
+ virtual bool IsRoot(const v8::TracedReference<v8::Value>& handle) = 0;
8236
+ virtual bool IsRoot(const v8::TracedGlobal<v8::Value>& handle) = 0;
8237
+
8238
+ /**
8239
+ * Used in combination with |IsRoot|. Called by V8 when an
8240
+ * object that is backed by a handle is reclaimed by a non-tracing garbage
8241
+ * collection. It is up to the embedder to reset the original handle.
8242
+ *
8243
+ * Note that the |handle| is different from the handle that the embedder holds
8244
+ * for retaining the object. It is up to the embedder to find the original
8245
+ * handle via the object or class id.
8246
+ */
8247
+ virtual void ResetRoot(const v8::TracedReference<v8::Value>& handle) = 0;
8248
+ };
8249
+
8183
8250
  /**
8184
8251
  * Interface for tracing through the embedder heap. During a V8 garbage
8185
8252
  * collection, V8 collects hidden fields of all potential wrappers, and at the
@@ -8242,6 +8309,9 @@ class V8_EXPORT EmbedderHeapTracer {
8242
8309
  /**
8243
8310
  * Called by the embedder to notify V8 of an empty execution stack.
8244
8311
  */
8312
+ V8_DEPRECATE_SOON(
8313
+ "This call only optimized internal caches which V8 is able to figure out "
8314
+ "on its own now.")
8245
8315
  void NotifyEmptyEmbedderStack();
8246
8316
 
8247
8317
  /**
@@ -8305,34 +8375,14 @@ class V8_EXPORT EmbedderHeapTracer {
8305
8375
  void FinalizeTracing();
8306
8376
 
8307
8377
  /**
8308
- * Returns true if the TracedGlobal handle should be considered as root for
8309
- * the currently running non-tracing garbage collection and false otherwise.
8310
- * The default implementation will keep all TracedGlobal references as roots.
8311
- *
8312
- * If this returns false, then V8 may decide that the object referred to by
8313
- * such a handle is reclaimed. In that case:
8314
- * - No action is required if handles are used with destructors, i.e., by just
8315
- * using |TracedGlobal|.
8316
- * - When run without destructors, i.e., by using
8317
- * |TracedReference|, V8 calls |ResetHandleInNonTracingGC|.
8318
- *
8319
- * Note that the |handle| is different from the handle that the embedder holds
8320
- * for retaining the object. The embedder may use |WrapperClassId()| to
8321
- * distinguish cases where it wants handles to be treated as roots from not
8322
- * being treated as roots.
8378
+ * See documentation on EmbedderRootsHandler.
8323
8379
  */
8324
8380
  virtual bool IsRootForNonTracingGC(
8325
8381
  const v8::TracedReference<v8::Value>& handle);
8326
8382
  virtual bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle);
8327
8383
 
8328
8384
  /**
8329
- * Used in combination with |IsRootForNonTracingGC|. Called by V8 when an
8330
- * object that is backed by a handle is reclaimed by a non-tracing garbage
8331
- * collection. It is up to the embedder to reset the original handle.
8332
- *
8333
- * Note that the |handle| is different from the handle that the embedder holds
8334
- * for retaining the object. It is up to the embedder to find the original
8335
- * handle via the object or class id.
8385
+ * See documentation on EmbedderRootsHandler.
8336
8386
  */
8337
8387
  virtual void ResetHandleInNonTracingGC(
8338
8388
  const v8::TracedReference<v8::Value>& handle);
@@ -8791,6 +8841,7 @@ class V8_EXPORT Isolate {
8791
8841
  kWasmBulkMemory = 109, // Unused.
8792
8842
  kWasmMultiValue = 110,
8793
8843
  kWasmExceptionHandling = 111,
8844
+ kInvalidatedMegaDOMProtector = 112,
8794
8845
 
8795
8846
  // If you add new values here, you'll also need to update Chromium's:
8796
8847
  // web_feature.mojom, use_counter_callback.cc, and enums.xml. V8 changes to
@@ -9126,6 +9177,17 @@ class V8_EXPORT Isolate {
9126
9177
  */
9127
9178
  Local<Context> GetIncumbentContext();
9128
9179
 
9180
+ /**
9181
+ * Schedules a v8::Exception::Error with the given message.
9182
+ * See ThrowException for more details. Templatized to provide compile-time
9183
+ * errors in case of too long strings (see v8::String::NewFromUtf8Literal).
9184
+ */
9185
+ template <int N>
9186
+ Local<Value> ThrowError(const char (&message)[N]) {
9187
+ return ThrowError(String::NewFromUtf8Literal(this, message));
9188
+ }
9189
+ Local<Value> ThrowError(Local<String> message);
9190
+
9129
9191
  /**
9130
9192
  * Schedules an exception to be thrown when returning to JavaScript. When an
9131
9193
  * exception has been scheduled it is illegal to invoke any JavaScript
@@ -9170,6 +9232,18 @@ class V8_EXPORT Isolate {
9170
9232
  */
9171
9233
  EmbedderHeapTracer* GetEmbedderHeapTracer();
9172
9234
 
9235
+ /**
9236
+ * Sets an embedder roots handle that V8 should consider when performing
9237
+ * non-unified heap garbage collections.
9238
+ *
9239
+ * Using only EmbedderHeapTracer automatically sets up a default handler.
9240
+ * The intended use case is for setting a custom handler after invoking
9241
+ * `AttachCppHeap()`.
9242
+ *
9243
+ * V8 does not take ownership of the handler.
9244
+ */
9245
+ void SetEmbedderRootsHandler(EmbedderRootsHandler* handler);
9246
+
9173
9247
  /**
9174
9248
  * Attaches a managed C++ heap as an extension to the JavaScript heap. The
9175
9249
  * embedder maintains ownership of the CppHeap. At most one C++ heap can be
@@ -9739,6 +9813,9 @@ class V8_EXPORT Isolate {
9739
9813
 
9740
9814
  void SetWasmExceptionsEnabledCallback(WasmExceptionsEnabledCallback callback);
9741
9815
 
9816
+ void SetSharedArrayBufferConstructorEnabledCallback(
9817
+ SharedArrayBufferConstructorEnabledCallback callback);
9818
+
9742
9819
  /**
9743
9820
  * This function can be called by the embedder to signal V8 that the dynamic
9744
9821
  * enabling of features has finished. V8 can now set up dynamically added
@@ -10113,6 +10190,9 @@ class V8_EXPORT V8 {
10113
10190
  * Notifies V8 that the process is cross-origin-isolated, which enables
10114
10191
  * defining the SharedArrayBuffer function on the global object of Contexts.
10115
10192
  */
10193
+ V8_DEPRECATED(
10194
+ "Use the command line argument --enable-sharedarraybuffer-per-context "
10195
+ "together with SetSharedArrayBufferConstructorEnabledCallback")
10116
10196
  static void SetIsCrossOriginIsolated();
10117
10197
 
10118
10198
  private:
@@ -310,10 +310,6 @@ path. Add it with -I<path> to the command line
310
310
  // GCC doc: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
311
311
  # define V8_HAS_COMPUTED_GOTO 1
312
312
 
313
- // Whether constexpr has full C++14 semantics, in particular that non-constexpr
314
- // code is allowed as long as it's not executed for any constexpr instantiation.
315
- # define V8_HAS_CXX14_CONSTEXPR 1
316
-
317
313
  #elif defined(__GNUC__)
318
314
 
319
315
  # define V8_CC_GNU 1
@@ -336,7 +332,10 @@ path. Add it with -I<path> to the command line
336
332
  # define V8_HAS_ATTRIBUTE_UNUSED 1
337
333
  # define V8_HAS_ATTRIBUTE_VISIBILITY 1
338
334
  # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT (!V8_CC_INTEL)
339
- # define V8_HAS_CPP_ATTRIBUTE_NODISCARD (V8_HAS_CPP_ATTRIBUTE(nodiscard))
335
+
336
+ // [[nodiscard]] does not work together with with
337
+ // __attribute__((visibility(""))) on GCC 7.4 which is why there is no define
338
+ // for V8_HAS_CPP_ATTRIBUTE_NODISCARD. See https://crbug.com/v8/11707.
340
339
 
341
340
  # define V8_HAS_BUILTIN_ASSUME_ALIGNED 1
342
341
  # define V8_HAS_BUILTIN_CLZ 1
@@ -348,11 +347,6 @@ path. Add it with -I<path> to the command line
348
347
  // GCC doc: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
349
348
  #define V8_HAS_COMPUTED_GOTO 1
350
349
 
351
- // Whether constexpr has full C++14 semantics, in particular that non-constexpr
352
- // code is allowed as long as it's not executed for any constexpr instantiation.
353
- // GCC only supports this since version 6.
354
- # define V8_HAS_CXX14_CONSTEXPR (V8_GNUC_PREREQ(6, 0, 0))
355
-
356
350
  #endif
357
351
 
358
352
  #if defined(_MSC_VER)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-bin-darwin-arm64",
3
- "version": "v16.4.2",
3
+ "version": "v16.6.0",
4
4
  "description": "node",
5
5
  "bin": {
6
6
  "node": "bin/node"
@@ -153,10 +153,8 @@ to use as a custom module loader.
153
153
  .It Fl -experimental-policy
154
154
  Use the specified file as a security policy.
155
155
  .
156
- .It Fl -experimental-repl-await
157
- Enable experimental top-level
158
- .Sy await
159
- keyword support in REPL.
156
+ .It Fl -no-experimental-repl-await
157
+ Disable top-level await keyword support in REPL.
160
158
  .
161
159
  .It Fl -experimental-specifier-resolution
162
160
  Select extension resolution algorithm for ES Modules; either 'explicit' (default) or 'node'.
@@ -266,7 +264,7 @@ This flag is inherited from V8 and is subject to change upstream. It may
266
264
  disappear in a non-semver-major release.
267
265
  .
268
266
  .It Fl -max-http-header-size Ns = Ns Ar size
269
- Specify the maximum size of HTTP headers in bytes. Defaults to 16KB.
267
+ Specify the maximum size of HTTP headers in bytes. Defaults to 16 KB.
270
268
  .
271
269
  .It Fl -napi-modules
272
270
  This option is a no-op.
@@ -698,7 +696,7 @@ Documentation:
698
696
  .Sy https://nodejs.org/api/
699
697
  .
700
698
  .Pp
701
- GitHub repository & Issue Tracker:
699
+ GitHub repository and issue tracker:
702
700
  .Sy https://github.com/nodejs/node
703
701
  .
704
702
  .Pp