Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
18-alpine
->20-alpine
Release Notes
nodejs/node (node)
v20.11.0
: 2024-01-09, Version 20.11.0 'Iron' (LTS), @UlisesGasconCompare Source
Notable Changes
833190fe7c
] - crypto: update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805a541b78bdb
] - doc: add MrJithil to collaborators (Jithil P Ponnan) #50666d4be8fad83
] - doc: add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393c1a196c897
] - (SEMVER-MINOR) esm: add import.meta.dirname and import.meta.filename (James Sumners) #48740aa3209b880
] - fs: add c++ fast path for writeFileSync utf8 (CanadaHonk) #498848e886a2fff
] - (SEMVER-MINOR) module: remove useCustomLoadersIfPresent flag (Chengzhong Wu) #4865521ab3c0f0b
] - (SEMVER-MINOR) module: bootstrap module loaders in shadow realm (Chengzhong Wu) #4865529d91b13e3
] - (SEMVER-MINOR) src: add--disable-warning
option (Ethan Arrowood) #5066111b3e470db
] - (SEMVER-MINOR) src: create per isolate proxy env template (Chengzhong Wu) #48655621c4d66c2
] - (SEMVER-MINOR) src: make process binding data weak (Chengzhong Wu) #48655139d6c8d3b
] - stream: use Array for Readable buffer (Robert Nagy) #503416206957e8d
] - stream: optimize creation (Robert Nagy) #50337e64378643d
] - (SEMVER-MINOR) test_runner: adds built in lcov reporter (Phil Nash) #500184a830c2d9d
] - (SEMVER-MINOR) test_runner: add Date to the supported mock APIs (Lucas Santos) #48638842dc01def
] - (SEMVER-MINOR) test_runner, cli: add --test-timeout flag (Shubham Pandey) #50443Commits
e40a559ab1
] - benchmark: update iterations in benchmark/util/splice-one.js (Liu Jia) #5069800f7a5d26f
] - benchmark: increase the iteration number to an appropriate value (Lei Shi) #50766be6ad3f375
] - benchmark: rewrite import.meta benchmark (Joyee Cheung) #506839857364129
] - benchmark: add misc/startup-cli-version benchmark (Joyee Cheung) #5068422d729e7f5
] - benchmark: remove punycode from require-builtins fixture (Joyee Cheung) #506894cf10a149a
] - benchmark: change iterations in benchmark/es/string-concatenations.js (Liu Jia) #5058515c2ed93a8
] - benchmark: add benchmarks for encodings (Aras Abbasi) #503488a896428ca
] - benchmark: add more cases to Readable.from (Raz Luvaton) #50351dbe6c5f354
] - benchmark: skip test-benchmark-os on IBMi (Michael Dawson) #50286179b4b6e62
] - benchmark: move permission-fs-read to permission-processhas-fs-read (Aki Hasegawa-Johnson) #4977032d65c001d
] - buffer: improve Buffer.equals performance (kylo5aby) #5062180ea83757e
] - build: add GN configurations for simdjson (Cheng Zhao) #50831904e645bcd
] - build: add configuration flag to enable Maglev (Keyhan Vakil) #50692019efa8a5a
] - build: fix GN configuration for deps/base64 (Cheng Zhao) #50696a645d5ac54
] - build: disable flag v8_scriptormodule_legacy_lifetime (Chengzhong Wu) #506168705058b09
] - build: add GN build files (Cheng Zhao) #476370a5e9c12cf
] - build: fix build with Python 3.12 (Luigi Pinca) #50582ff5713dd43
] - build: support Python 3.12 (Shi Pujin) #50209cfd50f229a
] - build: fix building when there is only python3 (Cheng Zhao) #48462833190fe7c
] - crypto: update root certificates to NSS 3.95 (Node.js GitHub Bot) #5080554c46dae9e
] - deps: update zlib to 1.2.13.1-motley-5daffc7 (Node.js GitHub Bot) #508030be84e5a28
] - deps: update undici to 5.27.2 (Node.js GitHub Bot) #50813ec67890824
] - deps: V8: cherry-pick0f9ebbc
(Chengzhong Wu) #50867bc2ebb972b
] - deps: V8: cherry-pick13192d6
(Levi Zim) #50552656135d70a
] - deps: update zlib to 1.2.13.1-motley-dfc48fc (Node.js GitHub Bot) #5045641ee4bcc5d
] - deps: update ada to 2.7.4 (Node.js GitHub Bot) #50815a40948b5c5
] - deps: update minimatch to 9.0.3 (Node.js GitHub Bot) #508067be1222c4a
] - deps: update simdutf to 4.0.4 (Node.js GitHub Bot) #5077268e7d49db6
] - deps: upgrade npm to 10.2.4 (npm team) #507513d82d38336
] - deps: escape Python strings correctly (Michaël Zasso) #50695d3870ac957
] - deps: update base64 to 0.5.1 (Node.js GitHub Bot) #506294b219b6ece
] - deps: update corepack to 0.23.0 (Node.js GitHub Bot) #505636c41b50922
] - deps: update nghttp2 to 1.58.0 (Node.js GitHub Bot) #504413beee0ae8f
] - deps: update acorn to 8.11.2 (Node.js GitHub Bot) #50460220916fa93
] - deps: update undici to 5.27.0 (Node.js GitHub Bot) #50463f9960b3545
] - deps: update googletest to116b7e5
(Node.js GitHub Bot) #50324d5c16f897a
] - dns: call handle.setServers() with a valid array (Luigi Pinca) #508111bd6537c97
] - doc: recommend supported Python versions (Luigi Pinca) #50407402e257520
] - doc: update notable changes in v21.1.0 (Joyee Cheung) #50388032535e270
] - doc: make theme consistent across api and other docs (Dima Demakov) #50877d53842683f
] - doc: add a section regardinginstanceof
inprimordials.md
(Antoine du Hamel) #50874fe315055a7
] - doc: update email to reflect affiliation (Yagiz Nizipli) #50856e14f661950
] - doc: shard not supported with watch mode (Pulkit Gupta) #50640b3d015de71
] - doc: get rid of unnecessaryeslint-skip
comments (Antoine du Hamel) #50829168cbf9cb9
] - doc: create deprecation code for isWebAssemblyCompiledModule (Marco Ippolito) #5048630baacba41
] - doc: add CanadaHonk to triagers (CanadaHonk) #50848e6e7cbceac
] - doc: fix typos in --allow-fs-* (Tobias Nießen) #50845e22ce9586f
] - doc: update Crypto API doc for x509.keyUsage (Daniel Meechan) #50603549d4422b7
] - doc: fix fs.writeFileSync return value documentation (Ryan Zimmerman) #507603c79e3cdba
] - doc: update print results(detail) inPerformanceEntry
(Jungku Lee) #50723aeaf96d06e
] - doc: fixBuffer.allocUnsafe
documentation (Mert Can Altın) #50686347e1dd06a
] - doc: run license-builder (github-actions[bot]) #50691a541b78bdb
] - doc: add MrJithil to collaborators (Jithil P Ponnan) #5066690f415dd61
] - doc: fix typo in fs.md (fwio) #50570e2388151ba
] - doc: add missing description of argument insubtle.encrypt
(Deokjin Kim) #5057839cc013465
] - doc: update pm documentation to include resource (Ranieri Innocenti Spada) #50601ba6d427c23
] - doc: correct attribution in v20.6.0 changelog (Jacob Smith) #505641b2dab8254
] - doc: update to alignconsole.table
row to the left (Jungku Lee) #505535d48ef7778
] - doc: underline links (Rich Trott) #504815e6057c9d2
] - doc: remove duplicate word (Gerhard Stöbich) #5047564bf2fd4ee
] - doc: fix typo inwebstreams.md
(André Santos) #50426cca55b8414
] - doc: add information about Node-API versions >=9 (Michael Dawson) #50168d4be8fad83
] - doc: add Ethan-Arrowood as a collaborator (Ethan Arrowood) #503930b311838f6
] - doc: fix TOC inreleases.md
(Bryce Seefieldt) #50372843d5f84ca
] - esm: fallback togetSource
whenload
returns nullishsource
(Antoine du Hamel) #508258d5469c84b
] - esm: do not callgetSource
when format iscommonjs
(Francesco Trotta) #50465b48cf314d3
] - esm: bypass CJS loader in default load under--default-type=module
(Antoine du Hamel) #50004c1a196c897
] - (SEMVER-MINOR) esm: add import.meta.dirname and import.meta.filename (James Sumners) #48740435f9c9276
] - fs: use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990aa3209b880
] - fs: add c++ fast path for writeFileSync utf8 (CanadaHonk) #4988405e25e0230
] - fs: improve error perf of synclstat
+fstat
(CanadaHonk) #49868f94a24cb4b
] - fs: improve error performance forrmdirSync
(CanadaHonk) #49846cada22e2a4
] - fs: fix to not return for void function (Jungku Lee) #50769ba40b2e33e
] - fs: replace deprecatedpath._makeLong
in copyFile (CanadaHonk) #50844d1b6bd660a
] - fs: update param in jsdoc forreaddir
(Jungku Lee) #5044811412e863a
] - fs: do not throw error on cpSync internals (Yagiz Nizipli) #50185868a464c15
] - fs,url: moveFromNamespacedPath
tonode_url
(Yagiz Nizipli) #50090de7fe08c7b
] - fs,url: refactorFileURLToPath
method (Yagiz Nizipli) #50090186e6e0395
] - fs,url: moveFileURLToPath
to node_url (Yagiz Nizipli) #50090aea7fe54af
] - inspector: use private fields instead of symbols (Yagiz Nizipli) #5077648dbde71d8
] - lib: use primordials for navigator.userAgent (Aras Abbasi) #50467fa220cac87
] - lib: remove deprecated string methods (Jithil P Ponnan) #50592f1cf1c385f
] - lib: fix assert shows diff messages in ESM and CJS (Jithil P Ponnan) #506343844af288f
] - lib: make event static properties non writable and configurable (Muthukumar) #504250a0b416d6c
] - lib: avoid memory allocation on nodeprecation flag (Vinicius Lourenço) #50231e7551d5770
] - lib: align console.table row to the left (Jithil P Ponnan) #501350c85cebdf2
] - meta: clarify nomination process according to Node.js charter (Matteo Collina) #50834f4070dd8d4
] - meta: clarify recommendation for bug reproductions (Antoine du Hamel) #508822ddeead436
] - meta: move cjihrig to TSC regular member (Colin Ihrig) #5081634a789d9be
] - meta: add web-standards as WPTs owner (Filip Skokan) #5063640bbffa266
] - meta: bump github/codeql-action from 2.21.9 to 2.22.5 (dependabot[bot]) #50513c49553631d
] - meta: bump step-security/harden-runner from 2.5.1 to 2.6.0 (dependabot[bot]) #5051299df0138b0
] - meta: bump ossf/scorecard-action from 2.2.0 to 2.3.1 (dependabot[bot]) #505099db6227ac6
] - meta: fix spacing in collaborator list (Antoine du Hamel) #506412589a5a566
] - meta: bump actions/setup-python from 4.7.0 to 4.7.1 (dependabot[bot]) #505105a86661a95
] - meta: add crypto as crypto and webcrypto docs owner (Filip Skokan) #50579ac8d2b9cc2
] - meta: bump actions/setup-node from 3.8.1 to 4.0.0 (dependabot[bot]) #50514bee2c0cf11
] - meta: bump actions/checkout from 4.1.0 to 4.1.1 (dependabot[bot]) #5051191a0944e5f
] - meta: add [email protected] to mailmap (Ethan Arrowood) #504918d3cf8c4ee
] - meta: add web-standards as web api visibility owner (Chengzhong Wu) #50418807c12de36
] - meta: mention other notable changes section (Rafael Gonzaga) #5030921ab3c0f0b
] - (SEMVER-MINOR) module: bootstrap module loaders in shadow realm (Chengzhong Wu) #486558e886a2fff
] - (SEMVER-MINOR) module: remove useCustomLoadersIfPresent flag (Chengzhong Wu) #4865577e8361213
] - module: execute--import
sequentially (Antoine du Hamel) #50474fffc4951ac
] - module: add application/json in accept header when fetching json module (Marco Ippolito) #50119f808e7a650
] - net: check pipe mode and path (theanarkh) #50770cf3a4c5b84
] - node-api: factor out common code into macros (Gabriel Schulhof) #50664a7d8f6b529
] - perf_hooks: implement performance.now() with fast API calls (Joyee Cheung) #50492076dc7540b
] - permission: do not create symlinks if target is relative (Tobias Nießen) #4915643160dcd2d
] - permission: mark const functions as such (Tobias Nießen) #507057a661d7ad9
] - permission: address coverity warning (Michael Dawson) #50215b2b4132c3e
] - src: iterate on import attributes array correctly (Michaël Zasso) #5070311b3e470db
] - (SEMVER-MINOR) src: create per isolate proxy env template (Chengzhong Wu) #48655d00412a083
] - (SEMVER-MINOR) src: create fs_dir per isolate properties (Chengzhong Wu) #4865514cc3b9b90
] - (SEMVER-MINOR) src: create worker per isolate properties (Chengzhong Wu) #48655621c4d66c2
] - (SEMVER-MINOR) src: make process binding data weak (Chengzhong Wu) #4865507a4e94e84
] - src: assert return value of BN_bn2binpad (Tobias Nießen) #50860158db2d61e
] - src: fix coverity warning (Michael Dawson) #5084694363bb3fd
] - src: fix compatility with upcoming V8 12.1 APIs (Cheng Zhao) #5070929d91b13e3
] - (SEMVER-MINOR) src: add--disable-warning
option (Ethan Arrowood) #50661f054c337f8
] - src: add IsolateScopes before using isolates (Keyhan Vakil) #50680d08eb382cd
] - src: avoid copying strings in FSPermission::Apply (Tobias Nießen) #506626620df1c05
] - src: remove erroneous default argument in RadixTree (Tobias Nießen) #50736436c3aef15
] - src: fix JSONParser leaking internal V8 scopes (Keyhan Vakil) #506886f46d31018
] - src: return error --env-file if file is not found (Ardi Nugraha) #505883d43fd359c
] - src: avoid silent coercion to signed/unsigned int (Tobias Nießen) #50663c253e39b56
] - src: handle errors from uv_pipe_connect2() (Deokjin Kim) #506573a9713bb5a
] - src: use v8::Isolate::TryGetCurrent() in DumpJavaScriptBacktrace() (Joyee Cheung) #5051894f8a925a8
] - src: print more information in C++ assertions (Joyee Cheung) #5024223f830616b
] - src: hide node::credentials::HasOnly outside unit (Tobias Nießen) #50450b7ecb0a390
] - src: readiterable entries may be empty (Matthew Aitken) #503984ef1d68715
] - src: implement structuredClone in native (Joyee Cheung) #503309346f15138
] - src: use find instead of char-by-char in FromFilePath() (Daniel Lemire) #502888414fb4d2a
] - src: add commit hash shorthand in zlib version (Jithil P Ponnan) #50158a878e3abb0
] - stream: fix enumerability of ReadableStream.from (Mattias Buelens) #5077995ed4ffc1e
] - stream: fix enumerability of ReadableStream.prototype.values (Mattias Buelens) #507794cf155ca0c
] - stream: add Symbol.toStringTag to Compression Streams (Filip Skokan) #507126012e3e781
] - stream: fix Writable.destroy performance regression (Robert Nagy) #50478dd5206820c
] - stream: pre-allocate _events (Robert Nagy) #50428829b82ed0f
] - stream: remove no longer relevant comment (Robert Nagy) #5044698ae1b4132
] - stream: use bit fields for construct/destroy (Robert Nagy) #5040808a0c6c56c
] - stream: improve from perf (Raz Luvaton) #5035959f7316b8f
] - stream: avoid calls to listenerCount (Robert Nagy) #503579d52430eb9
] - stream: readable use bitmap accessors (Robert Nagy) #50350139d6c8d3b
] - stream: use Array for Readable buffer (Robert Nagy) #503416206957e8d
] - stream: optimize creation (Robert Nagy) #50337f87921de3b
] - stream: refactor writable _write (Robert Nagy) #50198b338f3d3c2
] - stream: avoid getter for defaultEncoding (Robert Nagy) #502031862235a26
] - test: fix message v8 not normalising alphanumeric paths (Jithil P Ponnan) #507307c28a4ca8f
] - test: fix dns test case failures after c-ares update to 1.21.0+ (Brad House) #507434544593d31
] - test: replace forEach with for of (Conor Watson) #5059496143a3293
] - test: replace forEach to for at test-webcrypto-sign-verify-ecdsa.js (Alessandro Di Nisio) #50795107b5e63c5
] - test: replace foreach with for in test-https-simple.js (Shikha Mehta) #497939b2e5e9db4
] - test: add note about unresolved spec issue (Mattias Buelens) #50779edce637c1a
] - test: add note about readable streams with type owning (Mattias Buelens) #50779641044670b
] - test: replace forEach with for-of in test-url-relative (vitosorriso) #5078875ee78438c
] - test: replace forEach() with for ... of in test-tls-getprotocol.js (Steve Goode) #5060024f9d3fbeb
] - test: enable idlharness tests for encoding (Mattias Buelens) #50778a9d290956e
] - test: replace forEach in whatwg-encoding-custom-interop (Honza Machala) #506076584dd80f7
] - test: replace forEach() with for-loop (Jan) #50596be54a22869
] - test: improve test-bootstrap-modules.js (Joyee Cheung) #50708660e70e73b
] - test: skip parallel/test-macos-app-sandbox if disk space < 120MB (Joyee Cheung) #507645712c41122
] - test: replace foreach with for (Markus Muschol) #5059949e5f47b1c
] - test: test streambase has already has a consumer (Jithil P Ponnan) #48059bb7d764c8e
] - test: change forEach to for...of in path extname (Kyriakos Markakis) #506674d28ced079
] - test: replace forEach with for...of (Ryan Williams) #5061192a153ecde
] - test: migrate message v8 tests from Python to JS (Joshua LeMay) #50421a376284d8a
] - test: use destructuring for accessing setting values (Honza Jedlička) #506097b9b1fba27
] - test: replace forEach() with for .. of (Evgenia Blajer) #506059397b2da7e
] - test: replace forEach() with for ... of in test-readline-keys.js (William Liang) #506049043ba4cfb
] - test: replace forEach() with for ... of in test-http2-single-headers.js (spiritualized) #506069f911d31f6
] - test: replace forEach with for of (john-mcinall) #506028a5f36fe74
] - test: remove unused file (James Sumners) #505289950203340
] - test: replace forEach with for of (Kevin Kühnemund) #5059703ba28f102
] - test: replace forEach with for of (CorrWu) #49785ea61261b54
] - test: replace forEach with for [...] of (Gabriel Bota) #506154349790913
] - test: add WPT report test duration (Filip Skokan) #505747cacddfcc1
] - test: replace forEach() with for ... of loop in test-global.js (Kajol) #49772889f58d07f
] - test: skip test-diagnostics-channel-memory-leak.js (Joyee Cheung) #5032741644ee071
] - test: improveUV_THREADPOOL_SIZE
tests on.env
(Yagiz Nizipli) #492131db44b9a53
] - test: recognize wpt completion error (Chengzhong Wu) #50429ecfc951ddc
] - test: report error wpt test results (Chengzhong Wu) #50429deb0351d95
] - test: replace forEach() with for...of (Ram) #49794f885dfe5e3
] - test: replace forEach() with for...of in test-trace-events-http (Chand) #497959dc63c56db
] - test: replace forEach with for...of in test-fs-realpath-buffer-encoding (Niya Shiyas) #49804600d1260da
] - test: fix timeout of test-cpu-prof-dir-worker.js in LoongArch devices (Shi Pujin) #50363099f5cfa0a
] - test: fix vm assertion actual and expected order (Chengzhong Wu) #50371a31f9bfe01
] - test: v8: Add test-linux-perf-logger test suite (Luke Albao) #503526c59114947
] - test: ensure never settling promises are detected (Antoine du Hamel) #503189830ae4bf7
] - test_runner: add tests for various mock timer issues (Mika Fischer) #503842c72ed85fb
] - test_runner: pass abortSignal to test files (Moshe Atlow) #50630c33a84af11
] - test_runner: replace forEach with for of (Tom Haddad) #5059529c68a22bb
] - test_runner: output errors of suites (Moshe Atlow) #50361e64378643d
] - (SEMVER-MINOR) test_runner: adds built in lcov reporter (Phil Nash) #500184aaaff413b
] - test_runner: test return value of mocked promisified timers (Mika Fischer) #503314a830c2d9d
] - (SEMVER-MINOR) test_runner: add Date to the supported mock APIs (Lucas Santos) #48638842dc01def
] - (SEMVER-MINOR) test_runner, cli: add --test-timeout flag (Shubham Pandey) #50443613a9072b7
] - tls: fix order of setting cipher before setting cert and key (Kumar Rishav) #50186d905c61e16
] - tls: usevalidateFunction
foroptions.SNICallback
(Deokjin Kim) #50530c8d6dd58e7
] - tools: add macOS notarization verification step (Ulises Gascón) #50833c9bd0b0c0f
] - tools: use macOS keychain to notarize the releases (Ulises Gascón) #50715932a5d7b2c
] - tools: update eslint to 8.54.0 (Node.js GitHub Bot) #50809d7114d97be
] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #5080793085cf844
] - tools: add workflow to update release links (Michaël Zasso) #5071066764c5d04
] - tools: recognize GN files in dep_updaters (Cheng Zhao) #506932a451e176a
] - tools: remove unused file (Ulises Gascon) #506228ce6403230
] - tools: change minimatch install strategy (Marco Ippolito) #5047697778e2e77
] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #50675797f6a9ba8
] - tools: add macOS notarization stapler (Ulises Gascón) #506258fa1319352
] - tools: update eslint to 8.53.0 (Node.js GitHub Bot) #50559592f57970f
] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #505562fd78fc39e
] - tools: compare ICU checksums before file changes (Michaël Zasso) #50522631d710fc4
] - tools: improve update acorn-walk script (Marco Ippolito) #5047333fd2af2ab
] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #5049622b7a74838
] - tools: update gyp-next to v0.16.1 (Michaël Zasso) #50380f5ccab5005
] - tools: skip ruff on tools/gyp (Michaël Zasso) #50380408fd90508
] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #50461685f936ccd
] - tools: avoid npm install in deps installation (Marco Ippolito) #504137d43c5a094
] - Revert "tools: update doc dependencies" (Richard Lau) #504148fd67c2e3e
] - tools: update doc dependencies (Node.js GitHub Bot) #49988586becb507
] - tools: run coverage CI only on relevant files (Antoine du Hamel) #503492d06eea6c5
] - tools: update eslint to 8.52.0 (Node.js GitHub Bot) #503266a897baf16
] - tools: update lint-md-dependencies (Node.js GitHub Bot) #50190e6e7f39b9e
] - util: improve performance of normalizeEncoding (kylo5aby) #507213b6b1afa47
] - v8,tools: expose necessary V8 defines (Cheng Zhao) #508202664012617
] - vm: allow dynamic import with a referrer realm (Chengzhong Wu) #50360c6c0a74b54
] - wasi: document security sandboxing status (Guy Bedford) #50396989814093e
] - win,tools: upgrade Windows signing to smctl (Stefan Stojanovic) #50956v20.10.0
: 2023-11-22, Version 20.10.0 'Iron' (LTS), @targosCompare Source
Notable Changes
--experimental-default-type
flag to flip module defaultsThe new flag
--experimental-default-type
can be used to flip the defaultmodule system used by Node.js. Input that is already explicitly defined as ES
modules or CommonJS, such as by a
package.json
"type"
field or.mjs
/.cjs
file extension or the
--input-type
flag, is unaffected. What is currentlyimplicitly CommonJS would instead be interpreted as ES modules under
--experimental-default-type=module
:String input provided via
--eval
or STDIN, if--input-type
is unspecified.Files ending in
.js
or with no extension, if there is nopackage.json
filepresent in the same folder or any parent folder.
Files ending in
.js
or with no extension, if the nearest parentpackage.json
field lacks atype
field; unless the folder is inside anode_modules
folder.In addition, extensionless files are interpreted as Wasm if
--experimental-wasm-modules
is passed and the file contains the "magic bytes"Wasm header.
Contributed by Geoffrey Booth in #49869.
Detect ESM syntax in ambiguous JavaScript
The new flag
--experimental-detect-module
can be used to automatically run ESmodules when their syntax can be detected. For “ambiguous” files, which are
.js
or extensionless files with nopackage.json
with atype
field, Node.jswill parse the file to detect ES module syntax; if found, it will run the file
as an ES module, otherwise it will run the file as a CommonJS module. The same
applies to string input via
--eval
orSTDIN
.We hope to make detection enabled by default in a future version of Node.js.
Detection increases startup time, so we encourage everyone—especially package
authors—to add a
type
field topackage.json
, even for the default"type": "commonjs"
. The presence of atype
field, or explicit extensionssuch as
.mjs
or.cjs
, will opt out of detection.Contributed by Geoffrey Booth in #50096.
New
flush
option in file system functionsWhen writing to files, it is possible that data is not immediately flushed to
permanent storage. This allows subsequent read operations to see stale data.
This PR adds a
'flush'
option to thefs.writeFile
family of functions whichforces the data to be flushed at the end of a successful write operation.
Contributed by Colin Ihrig in #50009 and #50095.
Experimental WebSocket client
Adds a
--experimental-websocket
flag that adds aWebSocket
global, as standardized by WHATWG.
Contributed by Matthew Aitken in #49830.
vm: fix V8 compilation cache support for vm.Script
Previously repeated compilation of the same source code using
vm.Script
stopped hitting the V8 compilation cache after v16.x when support for
importModuleDynamically
was added tovm.Script
, resulting in a performanceregression that blocked users (in particular Jest users) from upgrading from
v16.x.
The recent fixes allow the compilation cache to be hit again
for
vm.Script
when--experimental-vm-modules
is not used even in thepresence of the
importModuleDynamically
option, so that users affected by theperformance regression can now upgrade. Ongoing work is also being done to
enable compilation cache support for
vm.CompileFunction
.Contributed by Joyee Cheung in #49950
and #50137.
Other notable changes
21453ae555
] - (SEMVER-MINOR) deps: update uvwasi to 0.0.19 (Node.js GitHub Bot) #49908ee65e44c31
] - esm: use import attributes instead of import assertions (Antoine du Hamel) #50140ffdc357167
] - (SEMVER-MINOR) stream: allow passing stream class tostream.compose
(Alex Yang) #501874861ad6431
] - stream: improve performance of readable stream reads (Raz Luvaton) #501734b27087b30
] - stream: optimize Writable (Robert Nagy) #50012709c6c0cab
] - (SEMVER-MINOR) test_runner, cli: add --test-concurrency flag (Colin Ihrig) #4999657efd5292c
] - (SEMVER-MINOR) vm: use import attributes instead of import assertions (Antoine du Hamel) #50141Commits
73757a5f42
] - benchmark: fix race condition on fs benchs (Vinicius Lourenço) #5003523269717bb
] - benchmark: add warmup to accessSync bench (Rafael Gonzaga) #5007388611d199a
] - benchmark: improved config for blob,file benchmark (Vinícius Lourenço) #49730b70757476c
] - benchmark: added new benchmarks for blob (Vinícius Lourenço) #49730458d9a82e3
] - buffer: remove unnecessary assignment in fromString (Tobias Nießen) #50199878c0b332e
] - build: fix IBM i build with Python 3.9 (Richard Lau) #48056773320e1de
] - crypto: ensure valid point on elliptic curve in SubtleCrypto.importKey (Filip Skokan) #50234edb0ffd7d4
] - crypto: use X509_ALGOR accessors instead of reaching into X509_ALGOR (David Benjamin) #500573f98c06dbb
] - crypto: account for disabled SharedArrayBuffer (Shelley Vohr) #5003455485ff1cc
] - crypto: return clear errors when loading invalid PFX data (Tim Perry) #4956668ec1e5eeb
] - deps: upgrade npm to 10.2.3 (npm team) #50531b00c11ad7c
] - deps: V8: cherry-pickd90d453
(Michaël Zasso) #50077e63aef91b4
] - deps: V8: cherry-pickf7d000a
(Luke Albao) #500774b243b553a
] - deps: V8: cherry-pick9721082
(Shi Pujin) #500779d3cdcbebf
] - deps: V8: cherry-pick840650f
(Michaël Zasso) #500770c40b513fd
] - deps: V8: cherry-picka1efa53
(Michaël Zasso) #5007768cddd79f7
] - **Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.