node-linux-arm64 19.0.1 → 19.2.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/README.md CHANGED
@@ -266,12 +266,14 @@ For information about the governance of the Node.js project, see
266
266
  **Anna Henningsen** <<anna@addaleax.net>> (she/her)
267
267
  * [aduh95](https://github.com/aduh95) -
268
268
  **Antoine du Hamel** <<duhamelantoine1995@gmail.com>> (he/him)
269
+ * [anonrig](https://github.com/anonrig) -
270
+ **Yagiz Nizipli** <<yagiz@nizipli.com>> (he/him)
269
271
  * [antsmartian](https://github.com/antsmartian) -
270
272
  **Anto Aravinth** <<anto.aravinth.cse@gmail.com>> (he/him)
271
273
  * [apapirovski](https://github.com/apapirovski) -
272
274
  **Anatoli Papirovski** <<apapirovski@mac.com>> (he/him)
273
275
  * [AshCripps](https://github.com/AshCripps) -
274
- **Ash Cripps** <<acripps@redhat.com>>
276
+ **Ash Cripps** <<email@ashleycripps.co.uk>>
275
277
  * [Ayase-252](https://github.com/Ayase-252) -
276
278
  **Qingyu Deng** <<i@ayase-lab.com>>
277
279
  * [bcoe](https://github.com/bcoe) -
@@ -310,8 +312,6 @@ For information about the governance of the Node.js project, see
310
312
  **David Carlier** <<devnexen@gmail.com>>
311
313
  * [devsnek](https://github.com/devsnek) -
312
314
  **Gus Caplan** <<me@gus.host>> (they/them)
313
- * [dmabupt](https://github.com/dmabupt) -
314
- **Xu Meng** <<dmabupt@gmail.com>> (he/him)
315
315
  * [edsadr](https://github.com/edsadr) -
316
316
  **Adrian Estrada** <<edsadr@gmail.com>> (he/him)
317
317
  * [erickwendel](https://github.com/erickwendel) -
@@ -370,6 +370,8 @@ For information about the governance of the Node.js project, see
370
370
  **LiviaMedeiros** <<livia@cirno.name>>
371
371
  * [lpinca](https://github.com/lpinca) -
372
372
  **Luigi Pinca** <<luigipinca@gmail.com>> (he/him)
373
+ * [lukekarrys](https://github.com/lukekarrys) -
374
+ **Luke Karrys** <<luke@lukekarrys.com>> (he/him)
373
375
  * [Lxxyx](https://github.com/Lxxyx) -
374
376
  **Zijian Liu** <<lxxyxzj@gmail.com>> (he/him)
375
377
  * [marsonya](https://github.com/marsonya) -
@@ -396,8 +398,6 @@ For information about the governance of the Node.js project, see
396
398
  **Ouyang Yadong** <<oyydoibh@gmail.com>> (he/him)
397
399
  * [panva](https://github.com/panva) -
398
400
  **Filip Skokan** <<panva.ip@gmail.com>>
399
- * [PoojaDurgad](https://github.com/PoojaDurgad) -
400
- **Pooja D P** <<Pooja.D.P@ibm.com>> (she/her)
401
401
  * [puzpuzpuz](https://github.com/puzpuzpuz) -
402
402
  **Andrey Pechkurov** <<apechkurov@gmail.com>> (he/him)
403
403
  * [Qard](https://github.com/Qard) -
@@ -425,7 +425,7 @@ For information about the governance of the Node.js project, see
425
425
  * [ShogunPanda](https://github.com/ShogunPanda) -
426
426
  **Paolo Insogna** <<paolo@cowtech.it>> (he/him)
427
427
  * [srl295](https://github.com/srl295) -
428
- **Steven R Loomis** <<srloomis@us.ibm.com>>
428
+ **Steven R Loomis** <<srl295@gmail.com>>
429
429
  * [starkwang](https://github.com/starkwang) -
430
430
  **Weijia Wang** <<starkwang@126.com>>
431
431
  * [sxa](https://github.com/sxa) -
@@ -444,7 +444,7 @@ For information about the governance of the Node.js project, see
444
444
  **Rich Trott** <<rtrott@gmail.com>> (he/him)
445
445
  * [vdeturckheim](https://github.com/vdeturckheim) -
446
446
  **Vladimir de Turckheim** <<vlad2t@hotmail.com>> (he/him)
447
- * [VoltrexMaster](https://github.com/VoltrexMaster) -
447
+ * [VoltrexKeyva](https://github.com/VoltrexKeyva) -
448
448
  **Mohammed Keyvanzadeh** <<mohammadkeyvanzade94@gmail.com>> (he/him)
449
449
  * [watilde](https://github.com/watilde) -
450
450
  **Daijiro Wachi** <<daijiro.wachi@gmail.com>> (he/him)
@@ -494,6 +494,8 @@ For information about the governance of the Node.js project, see
494
494
  **Jamie Davis** <<davisjam@vt.edu>> (he/him)
495
495
  * [digitalinfinity](https://github.com/digitalinfinity) -
496
496
  **Hitesh Kanwathirtha** <<digitalinfinity@gmail.com>> (he/him)
497
+ * [dmabupt](https://github.com/dmabupt) -
498
+ **Xu Meng** <<dmabupt@gmail.com>> (he/him)
497
499
  * [dnlup](https://github.com/dnlup)
498
500
  **dnlup** <<dnlup.dev@gmail.com>>
499
501
  * [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) -
@@ -590,6 +592,8 @@ For information about the governance of the Node.js project, see
590
592
  **Bert Belder** <<bertbelder@gmail.com>>
591
593
  * [pmq20](https://github.com/pmq20) -
592
594
  **Minqi Pan** <<pmq2001@gmail.com>>
595
+ * [PoojaDurgad](https://github.com/PoojaDurgad) -
596
+ **Pooja D P** <<Pooja.D.P@ibm.com>> (she/her)
593
597
  * [princejwesley](https://github.com/princejwesley) -
594
598
  **Prince John Wesley** <<princejohnwesley@gmail.com>>
595
599
  * [psmarshall](https://github.com/psmarshall) -
@@ -662,6 +666,8 @@ maintaining the Node.js project.
662
666
 
663
667
  * [Ayase-252](https://github.com/Ayase-252) -
664
668
  **Qingyu Deng** <<i@ayase-lab.com>>
669
+ * [bmuenzenmeyer](https://github.com/bmuenzenmeyer) -
670
+ **Brian Muenzenmeyer** <<brian.muenzenmeyer@gmail.com>> (he/him)
665
671
  * [daeyeon](https://github.com/daeyeon) -
666
672
  **Daeyeon Jeong** <<daeyeon.dev@gmail.com>> (he/him)
667
673
  * [F3n67u](https://github.com/F3n67u) -
@@ -684,9 +690,12 @@ maintaining the Node.js project.
684
690
  **Pooja Durgad** <<Pooja.D.P@ibm.com>>
685
691
  * [RaisinTen](https://github.com/RaisinTen) -
686
692
  **Darshan Sen** <<raisinten@gmail.com>>
687
- * [VoltrexMaster](https://github.com/VoltrexMaster) -
693
+ * [VoltrexKeyva](https://github.com/VoltrexKeyva) -
688
694
  **Mohammed Keyvanzadeh** <<mohammadkeyvanzade94@gmail.com>> (he/him)
689
695
 
696
+ Triagers follow the [Triage Guide](./doc/contributing/issues.md#triaging-a-bug-report) when
697
+ responding to new issues.
698
+
690
699
  ### Release keys
691
700
 
692
701
  Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
@@ -779,6 +788,12 @@ releases on a rotation basis as outlined in the
779
788
  * [vdeturckheim](https://github.com/vdeturckheim) -
780
789
  **Vladimir de Turckheim** <<vlad2t@hotmail.com>> (he/him)
781
790
  * NearForm
791
+ * [RafaelGSS](https://github.com/RafaelGSS) -
792
+ **Rafael Gonzaga** <<rafael.nunu@hotmail.com>> (he/him)
793
+ * NodeSource
794
+ * [juanarbol](https://github.com/juanarbol) -
795
+ **Juan José Arboleda** <<soyjuanarbol@gmail.com>> (he/him)
796
+ * Platformatic
782
797
  * [mcollina](https://github.com/mcollina) -
783
798
  **Matteo Collina** <<matteo.collina@gmail.com>> (he/him)
784
799
  * Red Hat and IBM
package/bin/node CHANGED
Binary file
@@ -36,7 +36,7 @@
36
36
 
37
37
  # Reset this number to 0 on major V8 upgrades.
38
38
  # Increment by one for each non-official patch applied to deps/v8.
39
- 'v8_embedder_string': '-node.16',
39
+ 'v8_embedder_string': '-node.8',
40
40
 
41
41
  ##### V8 defaults for Node.js #####
42
42
 
@@ -283,11 +283,7 @@
283
283
  '-std:c++17'
284
284
  ],
285
285
  'BufferSecurityCheck': 'true',
286
- 'target_conditions': [
287
- ['_toolset=="target"', {
288
- 'DebugInformationFormat': 1 # /Z7 embed info in .obj files
289
- }],
290
- ],
286
+ 'DebugInformationFormat': 1, # /Z7 embed info in .obj files
291
287
  'ExceptionHandling': 0, # /EHsc
292
288
  'MultiProcessorCompilation': 'true',
293
289
  'StringPooling': 'true', # pool string literals
@@ -1,6 +1,7 @@
1
1
  # Do not edit. Generated by the configure script.
2
2
  { 'target_defaults': {'cflags': ['-msign-return-address=all'], 'default_configuration': 'Release', 'defines': ['NODE_OPENSSL_CONF_NAME=nodejs_conf', 'NODE_OPENSSL_HAS_QUIC'], 'include_dirs': [], 'libraries': []},
3
- 'variables': { 'asan': 0,
3
+ 'variables': { 'arm_fpu': 'neon',
4
+ 'asan': 0,
4
5
  'coverage': 'false',
5
6
  'dcheck_always_on': 0,
6
7
  'debug_nghttp2': 'false',
@@ -12,12 +13,12 @@
12
13
  'force_dynamic_crt': 0,
13
14
  'gas_version': '2.30',
14
15
  'host_arch': 'arm64',
15
- 'icu_data_in': '../../deps/icu-tmp/icudt71l.dat',
16
+ 'icu_data_in': '../../deps/icu-tmp/icudt72l.dat',
16
17
  'icu_endianness': 'l',
17
18
  'icu_gyp_path': 'tools/icu/icu-generic.gyp',
18
19
  'icu_path': 'deps/icu-small',
19
20
  'icu_small': 'false',
20
- 'icu_ver_major': '71',
21
+ 'icu_ver_major': '72',
21
22
  'is_debug': 0,
22
23
  'libdir': 'lib',
23
24
  'llvm_version': '0.0',
@@ -26,6 +27,7 @@
26
27
  'node_byteorder': 'little',
27
28
  'node_debug_lib': 'false',
28
29
  'node_enable_d8': 'false',
30
+ 'node_enable_v8_vtunejit': 'false',
29
31
  'node_fipsinstall': 'false',
30
32
  'node_install_corepack': 'true',
31
33
  'node_install_npm': 'true',
@@ -124,6 +126,7 @@
124
126
  'lib/internal/error_serdes.js',
125
127
  'lib/internal/errors.js',
126
128
  'lib/internal/event_target.js',
129
+ 'lib/internal/file.js',
127
130
  'lib/internal/fixed_queue.js',
128
131
  'lib/internal/freelist.js',
129
132
  'lib/internal/freeze_intrinsics.js',
@@ -132,6 +135,7 @@
132
135
  'lib/internal/fs/dir.js',
133
136
  'lib/internal/fs/promises.js',
134
137
  'lib/internal/fs/read_file_context.js',
138
+ 'lib/internal/fs/recursive_watch.js',
135
139
  'lib/internal/fs/rimraf.js',
136
140
  'lib/internal/fs/streams.js',
137
141
  'lib/internal/fs/sync_write_stream.js',
@@ -161,6 +165,7 @@
161
165
  'lib/internal/main/test_runner.js',
162
166
  'lib/internal/main/watch_mode.js',
163
167
  'lib/internal/main/worker_thread.js',
168
+ 'lib/internal/mime.js',
164
169
  'lib/internal/modules/cjs/helpers.js',
165
170
  'lib/internal/modules/cjs/loader.js',
166
171
  'lib/internal/modules/esm/assert.js',
@@ -247,7 +252,11 @@
247
252
  'lib/internal/test/binding.js',
248
253
  'lib/internal/test/transfer.js',
249
254
  'lib/internal/test_runner/harness.js',
255
+ 'lib/internal/test_runner/mock.js',
250
256
  'lib/internal/test_runner/runner.js',
257
+ 'lib/internal/test_runner/tap_checker.js',
258
+ 'lib/internal/test_runner/tap_lexer.js',
259
+ 'lib/internal/test_runner/tap_parser.js',
251
260
  'lib/internal/test_runner/tap_stream.js',
252
261
  'lib/internal/test_runner/test.js',
253
262
  'lib/internal/test_runner/utils.js',
@@ -271,6 +280,7 @@
271
280
  'lib/internal/v8_prof_polyfill.js',
272
281
  'lib/internal/v8_prof_processor.js',
273
282
  'lib/internal/validators.js',
283
+ 'lib/internal/vm.js',
274
284
  'lib/internal/vm/module.js',
275
285
  'lib/internal/wasm_web_api.js',
276
286
  'lib/internal/watch_mode/files_watcher.js',
@@ -401,6 +401,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_arraybuffer(napi_env env,
401
401
  size_t byte_length,
402
402
  void** data,
403
403
  napi_value* result);
404
+ #ifndef NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
404
405
  NAPI_EXTERN napi_status NAPI_CDECL
405
406
  napi_create_external_arraybuffer(napi_env env,
406
407
  void* external_data,
@@ -408,6 +409,7 @@ napi_create_external_arraybuffer(napi_env env,
408
409
  napi_finalize finalize_cb,
409
410
  void* finalize_hint,
410
411
  napi_value* result);
412
+ #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
411
413
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_arraybuffer_info(
412
414
  napi_env env, napi_value arraybuffer, void** data, size_t* byte_length);
413
415
  NAPI_EXTERN napi_status NAPI_CDECL napi_is_typedarray(napi_env env,
@@ -98,7 +98,8 @@ typedef enum {
98
98
  napi_date_expected,
99
99
  napi_arraybuffer_expected,
100
100
  napi_detachable_arraybuffer_expected,
101
- napi_would_deadlock // unused
101
+ napi_would_deadlock, // unused
102
+ napi_no_external_buffers_allowed
102
103
  } napi_status;
103
104
  // Note: when adding a new enum value to `napi_status`, please also update
104
105
  // * `const int last_status` in the definition of `napi_get_last_error_info()'
@@ -228,6 +228,8 @@ class MultiIsolatePlatform;
228
228
  class InitializationResultImpl;
229
229
 
230
230
  namespace ProcessFlags {
231
+ // TODO(addaleax): Switch to uint32_t to match std::atomic<uint32_t>
232
+ // init_process_flags in node.cc
231
233
  enum Flags : uint64_t {
232
234
  kNoFlags = 0,
233
235
  // Enable stdio inheritance, which is disabled by default.
@@ -349,10 +351,25 @@ inline std::unique_ptr<InitializationResult> InitializeOncePerProcess(
349
351
  }
350
352
 
351
353
  enum OptionEnvvarSettings {
352
- kAllowedInEnvironment,
353
- kDisallowedInEnvironment
354
+ // Allow the options to be set via the environment variable, like
355
+ // `NODE_OPTIONS`.
356
+ kAllowedInEnvvar = 0,
357
+ // Disallow the options to be set via the environment variable, like
358
+ // `NODE_OPTIONS`.
359
+ kDisallowedInEnvvar = 1,
360
+ // Deprecated, use kAllowedInEnvvar instead.
361
+ kAllowedInEnvironment = kAllowedInEnvvar,
362
+ // Deprecated, use kDisallowedInEnvvar instead.
363
+ kDisallowedInEnvironment = kDisallowedInEnvvar,
354
364
  };
355
365
 
366
+ // Process the arguments and set up the per-process options.
367
+ // If the `settings` is set as OptionEnvvarSettings::kAllowedInEnvvar, the
368
+ // options that are allowed in the environment variable are processed. Options
369
+ // that are disallowed to be set via environment variable are processed as
370
+ // errors.
371
+ // Otherwise all the options that are disallowed (and those are allowed) to be
372
+ // set via environment variable are processed.
356
373
  NODE_EXTERN int ProcessGlobalArgs(std::vector<std::string>* args,
357
374
  std::vector<std::string>* exec_args,
358
375
  std::vector<std::string>* errors,
@@ -153,6 +153,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_buffer(napi_env env,
153
153
  size_t length,
154
154
  void** data,
155
155
  napi_value* result);
156
+ #ifndef NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
156
157
  NAPI_EXTERN napi_status NAPI_CDECL
157
158
  napi_create_external_buffer(napi_env env,
158
159
  size_t length,
@@ -160,6 +161,7 @@ napi_create_external_buffer(napi_env env,
160
161
  napi_finalize finalize_cb,
161
162
  void* finalize_hint,
162
163
  napi_value* result);
164
+ #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
163
165
  NAPI_EXTERN napi_status NAPI_CDECL napi_create_buffer_copy(napi_env env,
164
166
  size_t length,
165
167
  const void* data,
@@ -206,11 +208,11 @@ napi_get_uv_event_loop(napi_env env, struct uv_loop_s** loop);
206
208
  NAPI_EXTERN napi_status NAPI_CDECL napi_fatal_exception(napi_env env,
207
209
  napi_value err);
208
210
 
209
- NAPI_EXTERN napi_status NAPI_CDECL napi_add_env_cleanup_hook(
210
- napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg);
211
+ NAPI_EXTERN napi_status NAPI_CDECL
212
+ napi_add_env_cleanup_hook(napi_env env, napi_cleanup_hook fun, void* arg);
211
213
 
212
- NAPI_EXTERN napi_status NAPI_CDECL napi_remove_env_cleanup_hook(
213
- napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg);
214
+ NAPI_EXTERN napi_status NAPI_CDECL
215
+ napi_remove_env_cleanup_hook(napi_env env, napi_cleanup_hook fun, void* arg);
214
216
 
215
217
  NAPI_EXTERN napi_status NAPI_CDECL
216
218
  napi_open_callback_scope(napi_env env,
@@ -6,6 +6,11 @@
6
6
  typedef struct napi_callback_scope__* napi_callback_scope;
7
7
  typedef struct napi_async_context__* napi_async_context;
8
8
  typedef struct napi_async_work__* napi_async_work;
9
+
10
+ #if NAPI_VERSION >= 3
11
+ typedef void(NAPI_CDECL* napi_cleanup_hook)(void* arg);
12
+ #endif // NAPI_VERSION >= 3
13
+
9
14
  #if NAPI_VERSION >= 4
10
15
  typedef struct napi_threadsafe_function__* napi_threadsafe_function;
11
16
  #endif // NAPI_VERSION >= 4
@@ -23,8 +23,8 @@
23
23
  #define SRC_NODE_VERSION_H_
24
24
 
25
25
  #define NODE_MAJOR_VERSION 19
26
- #define NODE_MINOR_VERSION 0
27
- #define NODE_PATCH_VERSION 1
26
+ #define NODE_MINOR_VERSION 2
27
+ #define NODE_PATCH_VERSION 0
28
28
 
29
29
  #define NODE_VERSION_IS_LTS 0
30
30
  #define NODE_VERSION_LTS_CODENAME ""
@@ -31,8 +31,8 @@
31
31
  */
32
32
 
33
33
  #define UV_VERSION_MAJOR 1
34
- #define UV_VERSION_MINOR 43
35
- #define UV_VERSION_PATCH 0
34
+ #define UV_VERSION_MINOR 44
35
+ #define UV_VERSION_PATCH 2
36
36
  #define UV_VERSION_IS_RELEASE 1
37
37
  #define UV_VERSION_SUFFIX ""
38
38
 
@@ -263,21 +263,14 @@ typedef union {
263
263
  } unused_; /* TODO: retained for ABI compatibility; remove me in v2.x. */
264
264
  } uv_cond_t;
265
265
 
266
- typedef union {
267
- struct {
268
- unsigned int num_readers_;
269
- CRITICAL_SECTION num_readers_lock_;
270
- HANDLE write_semaphore_;
271
- } state_;
272
- /* TODO: remove me in v2.x. */
273
- struct {
274
- SRWLOCK unused_;
275
- } unused1_;
276
- /* TODO: remove me in v2.x. */
277
- struct {
278
- uv_mutex_t unused1_;
279
- uv_mutex_t unused2_;
280
- } unused2_;
266
+ typedef struct {
267
+ SRWLOCK read_write_lock_;
268
+ /* TODO: retained for ABI compatibility; remove me in v2.x */
269
+ #ifdef _WIN64
270
+ unsigned char padding_[72];
271
+ #else
272
+ unsigned char padding_[44];
273
+ #endif
281
274
  } uv_rwlock_t;
282
275
 
283
276
  typedef struct {
@@ -384,6 +377,12 @@ typedef struct {
384
377
  OVERLAPPED overlapped; \
385
378
  size_t queued_bytes; \
386
379
  } io; \
380
+ /* in v2, we can move these to the UV_CONNECT_PRIVATE_FIELDS */ \
381
+ struct { \
382
+ ULONG_PTR result; /* overlapped.Internal is reused to hold the result */\
383
+ HANDLE pipeHandle; \
384
+ DWORD duplex_flags; \
385
+ } connect; \
387
386
  } u; \
388
387
  struct uv_req_s* next_req;
389
388
 
package/include/node/uv.h CHANGED
@@ -1133,8 +1133,8 @@ struct uv_interface_address_s {
1133
1133
 
1134
1134
  struct uv_passwd_s {
1135
1135
  char* username;
1136
- long uid;
1137
- long gid;
1136
+ unsigned long uid;
1137
+ unsigned long gid;
1138
1138
  char* shell;
1139
1139
  char* homedir;
1140
1140
  };
@@ -1242,6 +1242,7 @@ UV_EXTERN uv_pid_t uv_os_getppid(void);
1242
1242
  UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority);
1243
1243
  UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority);
1244
1244
 
1245
+ UV_EXTERN unsigned int uv_available_parallelism(void);
1245
1246
  UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count);
1246
1247
  UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count);
1247
1248
 
@@ -240,6 +240,11 @@ class V8_EXPORT ArrayBuffer : public Object {
240
240
  */
241
241
  bool IsDetachable() const;
242
242
 
243
+ /**
244
+ * Returns true if this ArrayBuffer has been detached.
245
+ */
246
+ bool WasDetached() const;
247
+
243
248
  /**
244
249
  * Detaches this ArrayBuffer and all its views (typed arrays).
245
250
  * Detaching sets the byte length of the buffer and all typed arrays to zero,
@@ -253,6 +258,9 @@ class V8_EXPORT ArrayBuffer : public Object {
253
258
  * pointer coordinates the lifetime management of the internal storage
254
259
  * with any live ArrayBuffers on the heap, even across isolates. The embedder
255
260
  * should not attempt to manage lifetime of the storage through other means.
261
+ *
262
+ * The returned shared pointer will not be empty, even if the ArrayBuffer has
263
+ * been detached. Use |WasDetached| to tell if it has been detached instead.
256
264
  */
257
265
  std::shared_ptr<BackingStore> GetBackingStore();
258
266
 
@@ -290,6 +290,7 @@ class V8_EXPORT Context : public Data {
290
290
  Local<Function> after_hook,
291
291
  Local<Function> resolve_hook);
292
292
 
293
+ bool HasTemplateLiteralObject(Local<Value> object);
293
294
  /**
294
295
  * Stack-allocated class which sets the execution context for all
295
296
  * operations executed within a local scope.
@@ -182,7 +182,7 @@ constexpr size_t kSandboxSizeLog2 = 37; // 128 GB
182
182
  #else
183
183
  // Everywhere else use a 1TB sandbox.
184
184
  constexpr size_t kSandboxSizeLog2 = 40; // 1 TB
185
- #endif // V8_OS_ANDROID
185
+ #endif // V8_TARGET_OS_ANDROID
186
186
  constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;
187
187
 
188
188
  // Required alignment of the sandbox. For simplicity, we require the
@@ -223,6 +223,21 @@ static_assert(kSandboxMinimumReservationSize > kPtrComprCageReservationSize,
223
223
  "The minimum reservation size for a sandbox must be larger than "
224
224
  "the pointer compression cage contained within it.");
225
225
 
226
+ // The maximum buffer size allowed inside the sandbox. This is mostly dependent
227
+ // on the size of the guard regions around the sandbox: an attacker must not be
228
+ // able to construct a buffer that appears larger than the guard regions and
229
+ // thereby "reach out of" the sandbox.
230
+ constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;
231
+ static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,
232
+ "The maximum allowed buffer size must not be larger than the "
233
+ "sandbox's guard regions");
234
+
235
+ constexpr size_t kBoundedSizeShift = 29;
236
+ static_assert(1ULL << (64 - kBoundedSizeShift) ==
237
+ kMaxSafeBufferSizeForSandbox + 1,
238
+ "The maximum size of a BoundedSize must be synchronized with the "
239
+ "kMaxSafeBufferSizeForSandbox");
240
+
226
241
  #endif // V8_ENABLE_SANDBOX
227
242
 
228
243
  #ifdef V8_COMPRESS_POINTERS
@@ -536,6 +536,7 @@ class V8_EXPORT Isolate {
536
536
  kFunctionPrototypeCaller = 114,
537
537
  kTurboFanOsrCompileStarted = 115,
538
538
  kAsyncStackTaggingCreateTaskCall = 116,
539
+ kDurationFormat = 117,
539
540
 
540
541
  // If you add new values here, you'll also need to update Chromium's:
541
542
  // web_feature.mojom, use_counter_callback.cc, and enums.xml. V8 changes to
@@ -9,9 +9,9 @@
9
9
  // NOTE these macros are used by some of the tool scripts and the build
10
10
  // system so their names cannot be changed without changing the scripts.
11
11
  #define V8_MAJOR_VERSION 10
12
- #define V8_MINOR_VERSION 7
13
- #define V8_BUILD_NUMBER 193
14
- #define V8_PATCH_LEVEL 13
12
+ #define V8_MINOR_VERSION 8
13
+ #define V8_BUILD_NUMBER 168
14
+ #define V8_PATCH_LEVEL 20
15
15
 
16
16
  // Use 1 for candidates and 0 otherwise.
17
17
  // (Boolean macro values are not supported by all preprocessors.)
@@ -579,6 +579,37 @@ path. Add it with -I<path> to the command line
579
579
  #define V8_NO_UNIQUE_ADDRESS /* NOT SUPPORTED */
580
580
  #endif
581
581
 
582
+ // Marks a type as being eligible for the "trivial" ABI despite having a
583
+ // non-trivial destructor or copy/move constructor. Such types can be relocated
584
+ // after construction by simply copying their memory, which makes them eligible
585
+ // to be passed in registers. The canonical example is std::unique_ptr.
586
+ //
587
+ // Use with caution; this has some subtle effects on constructor/destructor
588
+ // ordering and will be very incorrect if the type relies on its address
589
+ // remaining constant. When used as a function argument (by value), the value
590
+ // may be constructed in the caller's stack frame, passed in a register, and
591
+ // then used and destructed in the callee's stack frame. A similar thing can
592
+ // occur when values are returned.
593
+ //
594
+ // TRIVIAL_ABI is not needed for types which have a trivial destructor and
595
+ // copy/move constructors, since those are automatically trivial by the ABI
596
+ // spec.
597
+ //
598
+ // It is also not likely to be effective on types too large to be passed in one
599
+ // or two registers on typical target ABIs.
600
+ //
601
+ // See also:
602
+ // https://clang.llvm.org/docs/AttributeReference.html#trivial-abi
603
+ // https://libcxx.llvm.org/docs/DesignDocs/UniquePtrTrivialAbi.html
604
+ #if defined(__clang__) && defined(__has_attribute)
605
+ #if __has_attribute(trivial_abi)
606
+ #define V8_TRIVIAL_ABI [[clang::trivial_abi]]
607
+ #endif // __has_attribute(trivial_abi)
608
+ #endif // defined(__clang__) && defined(__has_attribute)
609
+ #if !defined(V8_TRIVIAL_ABI)
610
+ #define V8_TRIVIAL_ABI
611
+ #endif //!defined(V8_TRIVIAL_ABI)
612
+
582
613
  // Helper macro to define no_sanitize attributes only with clang.
583
614
  #if defined(__clang__) && defined(__has_attribute)
584
615
  #if __has_attribute(no_sanitize)
@@ -703,6 +734,8 @@ V8 shared library set USING_V8_SHARED.
703
734
  #define V8_TARGET_ARCH_ARM 1
704
735
  #elif defined(__mips64)
705
736
  #define V8_TARGET_ARCH_MIPS64 1
737
+ #elif defined(__loongarch64)
738
+ #define V8_TARGET_ARCH_LOONG64 1
706
739
  #elif defined(_ARCH_PPC64)
707
740
  #define V8_TARGET_ARCH_PPC64 1
708
741
  #elif defined(_ARCH_PPC)
@@ -50,6 +50,9 @@
50
50
  # define crc32 z_crc32
51
51
  # define crc32_combine z_crc32_combine
52
52
  # define crc32_combine64 z_crc32_combine64
53
+ # define crc32_combine_gen z_crc32_combine_gen
54
+ # define crc32_combine_gen64 z_crc32_combine_gen64
55
+ # define crc32_combine_op z_crc32_combine_op
53
56
  # define crc32_z z_crc32_z
54
57
  # define deflate z_deflate
55
58
  # define deflateBound z_deflateBound
@@ -361,6 +364,9 @@
361
364
  # ifdef FAR
362
365
  # undef FAR
363
366
  # endif
367
+ # ifndef WIN32_LEAN_AND_MEAN
368
+ # define WIN32_LEAN_AND_MEAN
369
+ # endif
364
370
  # include <windows.h>
365
371
  /* No need for _export, use ZLIB.DEF instead. */
366
372
  /* For complete Windows compatibility, use WINAPI, not __stdcall. */
@@ -482,11 +488,18 @@ typedef uLong FAR uLongf;
482
488
  # undef _LARGEFILE64_SOURCE
483
489
  #endif
484
490
 
485
- #if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
486
- # define Z_HAVE_UNISTD_H
491
+ #ifndef Z_HAVE_UNISTD_H
492
+ # ifdef __WATCOMC__
493
+ # define Z_HAVE_UNISTD_H
494
+ # endif
495
+ #endif
496
+ #ifndef Z_HAVE_UNISTD_H
497
+ # if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)
498
+ # define Z_HAVE_UNISTD_H
499
+ # endif
487
500
  #endif
488
501
  #ifndef Z_SOLO
489
- # if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
502
+ # if defined(Z_HAVE_UNISTD_H)
490
503
  # include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
491
504
  # ifdef VMS
492
505
  # include <unixio.h> /* for off_t */