Skip to content

Latest commit

 

History

History
1180 lines (1097 loc) · 181 KB

CHANGELOG_V16.md

File metadata and controls

1180 lines (1097 loc) · 181 KB

Node.js 16 ChangeLog

Current
16.6.0
16.5.0
16.4.2
16.4.1
16.4.0
16.3.0
16.2.0
16.1.0
16.0.0

2021-07-29, Version 16.6.0 (Current), @BethGriggs

This is a security release.

Notable Changes

Say hello to V8 9.2

The V8 engine is updated to version 9.2.230.21.

It notably introduces the new Array.prototype.at method:

const array = [1, 2, 3];

console.log(array.at(-1));
// Prints: 3

Contributed by Michaël Zasso - #39470

Other notable changes

Commits

  • [b5248d4000] - async_hooks: emit promise trace events from JS (Stephen Belanger) #39135
  • [e18778d409] - async_hooks: eliminate native PromiseHook (Stephen Belanger) #39135
  • [90b9bb1a7d] - build: use Node.js 14 in commit-lint.yml (Rich Trott) #39506
  • [5182e26f14] - build: reset embedder string to "-node.0" (Michaël Zasso) #39470
  • [e1910ef290] - build: fix host_arch_cc() for AIX/IBM i (Richard Lau) #39481
  • [ce2011b7a1] - build: update coverage Makefile target comments (Richard Lau) #39365
  • [6b055f17b6] - build: run workflows when a PR is ready for review (Michaël Zasso) #39405
  • [25f45d5018] - build: update to setup-node@v2 (Rich Trott) #39366
  • [a7472576d7] - build: add library_files to gyp variables (himself65) #39293
  • [d16d36f1c2] - crypto: support Big(U)Int64Array in getRandomValues (Michaël Zasso) #39443
  • [95db54482a] - debugger: validate sec-websocket-accept response header (Chris Opperwall) #39357
  • [3751b92fa2] - debugger: rename internal module (Rich Trott) #39378
  • [0e5eb8b17d] - deps: restore minimum ICU version to 68 (Michaël Zasso) #39470
  • [e8da1f25fb] - (SEMVER-MINOR) deps: make V8 9.2 abi-compatible with 9.0 (Michaël Zasso) #39470
  • [a93e6ef777] - deps: V8: backport 5c76da8ddcf8 (Michaël Zasso) #39337
  • [d612544199] - deps: V8: cherry-pick 359d44df4cdd (Michaël Zasso) #39337
  • [c6ec2b4817] - deps: V8: cherry-pick 3805a698f7b6 (Michaël Zasso) #39337
  • [e6b84dfe84] - deps: V8: cherry-pick 56fe020eec0c (Michaël Zasso) #39337
  • [2393fae427] - deps: V8: cherry-pick 2b77ca200c56 (Michaël Zasso) #39337
  • [c8e7d80475] - deps: V8: cherry-pick 53784bdb8f01 (Michaël Zasso) #39337
  • [65062b3e0d] - deps: V8: cherry-pick 7ff6609a5385 (Michaël Zasso) #38990
  • [c3efc70df7] - deps: V8: cherry-pick a5cea1bfc38c (Michaël Zasso) #38990
  • [201da87bc1] - deps: V8: cherry-pick 986299250e6d (Richard Lau) #38990
  • [794ad2e016] - deps: V8: backport 71e8f8bb3c26 (Michaël Zasso) #38990
  • [53cc6c8000] - deps: V8: cherry-pick 3d24b3ab8af0 (Michaël Zasso) #38990
  • [7f7cb8bfe1] - deps: silence irrelevant V8 warning (Michaël Zasso) #38990
  • [16cbd8c8b6] - deps: silence irrelevant V8 warnings (Michaël Zasso) #37587
  • [98150e2bc6] - deps: fix V8 build issue with inline methods (Jiawen Geng) #35415
  • [3f3e167fea] - deps: make v8.h compatible with VS2015 (Joao Reis) #32116
  • [785b8990de] - deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • [38cb655f04] - deps: V8: patch register-arm64.h (Refael Ackermann) #32116
  • [9082ecef66] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • [6114198717] - (SEMVER-MINOR) deps: update V8 to 9.2.230.21 (Michaël Zasso) #39470
  • [89796d0c7f] - deps: bump HdrHistogram_C to 0.11.2 (Matteo Collina) #39462
  • [9dd232c42b] - deps: update to cjs-module-lexer@1.2.2 (Guy Bedford) #39402
  • [626eb07fda] - deps: extract gtest source files to deps/googletest (legendecas) #39386
  • [487c45ffd9] - doc: move lball@redhat.com to emeritus (Lance Ball) #39501
  • [5f84f47e13] - doc: update AUTHORS (Rich Trott) #39488
  • [1d27ae1514] - doc: update strategic initiative champion (Rich Trott) #39487
  • [e552b1a791] - doc: improve node.js+fips instructions (Benjamin Mayr) #39390
  • [aa1dfb3111] - doc: simplify unnecessarily specific .mailmap entries (Rich Trott) #39430
  • [ae69656c61] - doc: update checkbox label in backporting guide (Darshan Sen) #39420
  • [4fd8db687d] - doc: remove _Addenda_ from headers (Rich Trott) #39427
  • [cefd2fb1e4] - doc: simplify .mailmap file (Rich Trott) #39418
  • [ade2eed9a6] - doc: fix broken internal link in http.md (Rich Trott) #39425
  • [5fdfcc069f] - doc: remove outdated step in onboarding exercise (Rich Trott) #39410
  • [94706c7012] - doc: revise strategic initiatives text (Rich Trott) #39417
  • [9932e3589c] - doc: remove typo (extra ' character) (Nikita Rykov) #39414
  • [2b92b4ea2d] - doc: update mailmap and AUTHORS (Rich Trott) #39393
  • [6d6396594b] - doc: use a details tag for completed initiatves (Rich Trott) #39416
  • [ac43e3331c] - doc: update commit-queue.md to indicate GitHub Actions are checked (Rich Trott) #39411
  • [75130c94d1] - doc: use _pull request_ instead of _PR_ in onboarding doc (Rich Trott) #39409
  • [20bb3f6df0] - doc: add strategic initiatives from TSC repo (Rich Trott) #39394
  • [6979313abb] - doc: standardize on _pull request_ (Rich Trott) #39384
  • [20124cc275] - doc: make minor edits to pull request text (Rich Trott) #39383
  • [11482f02cf] - doc: add docker-node and build-wg issue contents (Daniel Bevenius) #39215
  • [c535956b6e] - doc: add instructions for core vuln files (Daniel Bevenius) #39220
  • [353a8bb27b] - doc: standardize on not capitalizing _collaborator_ (Rich Trott) #39379
  • [9b15e5c155] - doc: update mailmap and deduplicate AUTHORS entry (Rich Trott) #39391
  • [e44ccd9aad] - doc: update AUTHORS (Rich Trott) #39367
  • [39e6536a87] - doc: move jdalton to emeritus (Rich Trott) #39380
  • [bbff5a9e47] - doc: edit guide on pull requests (Rich Trott) #39359
  • [902ef9aca0] - doc,meta: update email addresses for misterdjules (Rich Trott) #39433
  • [cc7b61721c] - doc,tools: remove checkLinks.mjs (Antoine du Hamel) #39206
  • [e2fd015cda] - domain: do not add domain to promise from other context (Stephen Belanger) #39135
  • [93eff3f5a6] - esm: refine ERR_REQUIRE_ESM errors (Guy Bedford) #39175
  • [1fb0954202] - events: allow an event to be dispatched multiple times (Luigi Pinca) #39395
  • [6f2989c346] - events: allow the options argument to be null (Luigi Pinca) #39486
  • [72ad6d3f27] - fs: check closing_ in FileHandle::Close (James M Snell) #39472
  • [8b58e574ba] - fs: fix FileHandle::ClosePromise to return persisted Promise (James M Snell) #39331
  • [9d950a0956] - http2: on receiving rst_stream with cancel code add it to pending list (Akshay K) #39423
  • [19e9accf91] - inspector: mark as stable (Gireesh Punathil) #37748
  • [e4331cd43d] - lib: comment explaining special-case handling of promises (Stephen Belanger) #39135
  • [0a47f5fc54] - meta: update collaborator email in README (Rich Trott) #39510
  • [65020110e8] - meta: remove unneeded .mailmap entry (Rich Trott) #39512
  • [864ef11be8] - meta: update email address for collaborator (Rich Trott) #39511
  • [d3f58cb650] - meta: align collaborator name in .mailmap/AUTHORS with README (Rich Trott) #39489
  • [5f9b2187a1] - meta: align email address in README/.mailmap/AUTHORS (Rich Trott) #39503
  • [9fbe3f6b49] - meta: revise .mailmap for README consistency (Rich Trott) #39457
  • [f6fbb38924] - meta: alphabetize .mailmap file (Rich Trott) #39434
  • [dc9c6aa428] - meta: align collaborator email in .mailmap/AUTHORS with README (Rich Trott) #39478
  • [febeb0df16] - meta: update AUTHORS (Rich Trott) #39461
  • [d059ed9242] - meta: add .mailmap entry for new email for existing contributor (Rich Trott) #39431
  • [cdf7251370] - process: add api to enable source-maps programmatically (legendecas) #39085
  • [eccc9a6578] - punycode: add pending deprecation (Antoine du Hamel) #38444
  • [a082a705b3] - (SEMVER-MINOR) repl: enable --experimental-repl-await /w opt-out (hemanth.hm) #34733
  • [b230ac12d9] - src: stop using deprecated v8::ApiObject (Michaël Zasso) #38990
  • [929205e6b9] - src: use non-deprecated Symbol::Description (Michaël Zasso) #38990
  • [42ff6d952a] - src: print native module id on native module not found (legendecas) #39460
  • [f0287e52aa] - src: close HandleWraps instead of deleting them in OnGCCollect() (Anna Henningsen) #39441
  • [2cf52f8db1] - src: set SSL_OP_ALLOW_CLIENT_RENEGOTIATION (Daniel Bevenius) #38753
  • [fc138376aa] - src: remove unused guards around node-api reference (legendecas) #38334
  • [26ada4971c] - stream: import internal/util/types instead (James M Snell) #39331
  • [e91053a465] - stream: implement TextEncoderStream and TextDecoderStream (James M Snell) #39347
  • [efe74746f0] - stream: fixup property definition to avoid prototype polution (James M Snell) #39371
  • [4709da0372] - test: ensure microtask queues are not automatically drained (Jochen Eisinger) #38990
  • [86ca9a8a80] - test: remove test-debug-args (Michaël Zasso) #38990
  • [bbcd651cfd] - test: update trace events test expectations (Michaël Zasso) #38990
  • [039f64f249] - test: fix WASI link test (Richard Lau) #39485
  • [b1d38ddc8a] - test: update OpenSSL3 error messages for beta-1 (Daniel Bevenius) #39437
  • [db4f802fba] - Revert "test: skip tests for openssl-3.0.0-alpha15" (Daniel Bevenius) #39437
  • [a30d021b94] - test: add test for WebSocket secret verification in debugger (Rich Trott) #39357
  • [04355afd24] - test: add NumberFormat resolvedOptions test (Richard Lau) #39401
  • [d0fb02c26a] - test: put common lint exceptions into config file (Rich Trott) #39358
  • [259d091366] - test: mark test-domain-error-types flaky (James M Snell) #39369
  • [5517769472] - tools: fetch googletest dependency for V8 CI (Michaël Zasso) #38990
  • [5fe74aa403] - tools: update V8 gypfiles for 9.2 (Michaël Zasso) #38990
  • [e58cf4e44c] - tools: flag README/mailmap mismatches in find-inactive-collaborators (Rich Trott) #39477
  • [0a46e66253] - tools: use mailmap for find-inactive-collaborators (Rich Trott) #39432
  • [7570f998df] - tools: email matchin is case insensitive for .mailmap (Rich Trott) #39430
  • [5c11a0279d] - tools: make internal link checker more robust (Rich Trott) #39429
  • [4c32aa02db] - tools: added remark-frontmatter (Ben Halverson) #38717
  • [c6a7c3d00d] - tools: fix broken link hash (Rich Trott) #39426
  • [0f1d51578e] - tools: change commit fetch limiting in find-inactive-collaborators (Rich Trott) #39362
  • [e5d64473e8] - tools: use Node.js 16.x for GitHub workflow (Rich Trott) #39362
  • [68fd6d5282] - url: prevent pathname setter from erasing path of path-only URLs (Darshan Sen) #39060

2021-07-14, Version 16.5.0 (Current), @targos

Notable Changes

Experimental Web Streams API

Node.js now exposes an experimental implementation of the Web Streams API.

While it is experimental, the API is not exposed on the global object and is only accessible using the new stream/web core module:

import { ReadableStream, WritableStream } from 'stream/web';
// Or from 'node:stream/web'

Importing the module will emit a single experimental warning per process.

The raw API is implemented and we are now working on its integration with various existing core APIs.

Contributed by James M Snell - #39062

Other notable changes

Commits

2021-07-05, Version 16.4.2 (Current), @BethGriggs

Notable Changes

Node.js 16.4.1 introduced a regression in the Windows installer on non-English locales that is being fixed in this release. There is no need to download this release if you are not using the Windows installer.

Commits

  • [76e709ec63] - win,msi: use localized "Authenticated Users" name (Richard Lau) #39241

2021-07-01, Version 16.4.1 (Current), @BethGriggs

This is a security release.

Notable Changes

Vulnerabilities fixed:

  • CVE-2021-22918: libuv upgrade - Out of bounds read (Medium)
    • Node.js is vulnerable to out-of-bounds read in libuv's uv__idna_toascii() function which is used to convert strings to ASCII. This is called by Node's dns module's lookup() function and can lead to information disclosures or crashes. You can read more about it in https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22918
  • CVE-2021-22921: Windows installer - Node Installer Local Privilege Escalation (Medium)
    • Node.js is vulnerable to local privilege escalation attacks under certain conditions on Windows platforms. More specifically, improper configuration of permissions in the installation directory allows an attacker to perform two different escalation attacks: PATH and DLL hijacking. You can read more about it in https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22921

Commits

2021-06-23, Version 16.4.0 (Current), @danielleadams

Notable changes

  • async_hooks:
    • stabilize part of AsyncLocalStorage (Vladimir de Turckheim) #37675
  • deps:
    • upgrade npm to 7.18.1 (npm team) #39065
    • update V8 to 9.1.269.36 (Michaël Zasso) #38273
  • dns:
    • allow --dns-result-order to change default dns verbatim (Ouyang Yadong) #38099

Commits

  • [d2b972ee52] - async_hooks: check for empty contexts before removing (Bryan English) #39095
  • [03e75fda4c] - async_hooks: switch between native and context hooks correctly (Stephen Belanger) #38912
  • [8115e6ee6d] - (SEMVER-MINOR) async_hooks: stabilize part of AsyncLocalStorage (Vladimir de Turckheim) #37675
  • [5f51729014] - bootstrap: move event loop handle checking into snapshot builder (Joyee Cheung) #39007
  • [9d100aa269] - bootstrap: split NodeMainInstance::Run() (Joyee Cheung) #39007
  • [2aaf2f231f] - build: reconfigure when gyp files change on Windows (Joyee Cheung) #39066
  • [7f225a05ee] - Revert "build: work around bug in MSBuild v16.10.0" (Michaël Zasso) #38977
  • [1853127dde] - build: reset embedder string to "-node.0" (Michaël Zasso) #38273
  • [c0d236f5ea] - build: make build-addons errors fail the build (Richard Lau) #38983
  • [173292bcf8] - build: fix commit-queue default branch (Mary Marchini) #38998
  • [e939e243bf] - build: don't pass python override to V8 build (Richard Lau) #38969
  • [651c58b412] - build: correct Xcode spelling in .gitignore (bl-ue) #38895
  • [5203c9ced7] - build: fast-track npm PRs and dont-land them on LTS (Michaël Zasso) #38885
  • [7de57d4d33] - build: dont-land gyp-next PRs on LTS branches (Michaël Zasso) #38887
  • [e87cd4542b] - child_process: refactor to use validateBoolean (Qingyu Deng) #38927
  • [69fa9e16e9] - (SEMVER-MINOR) child_process: allow options.cwd receive a URL (Khaidi Chu) #38862
  • [cf9d686c35] - crypto: fix aes crash when tag length too small (Khaidi Chu) #38914
  • [1799ea36f0] - crypto: use compatible version of EVP_CIPHER_name (Shelley Vohr) #38925
  • [6d5dc63ae4] - crypto: fix label cast in EVP_PKEY_CTX_set0_rsa_oaep_label (Shelley Vohr) #38926
  • [6e93c17bf5] - crypto: use EVP_get_cipherbynid directly (Shelley Vohr) #38901
  • [82c293959e] - crypto: add missing rand.h include (Shelley Vohr) #38864
  • [e4f802de9a] - debugger: rename internal library for clarity (Rich Trott) #39080
  • [1e8bdab581] - debugger: use ERR_DEBUGGER_STARTUP_ERROR in _inspect.js (Rich Trott) #39024
  • [b43cb69fbb] - debugger: use error codes in debugger REPL (Rich Trott) #39024
  • [dc9218136b] - debugger: use ERR_DEBUGGER_ERROR in debugger client (Rich Trott) #39024
  • [711916a271] - debugger: remove unnecessary boilerplate copyright comment (Rich Trott) #38952
  • [0f65e41442] - debugger: reduce scope of eslint disable comment (Rich Trott) #38946
  • [1fa724ec5a] - deps: upgrade npm to 7.18.1 (npm team) #39065
  • [c6aa68598d] - deps: upgrade npm to 7.17.0 (npm team) #38999
  • [864fe9910b] - deps: make V8 9.1 abi-compatible with 9.0 (Michaël Zasso) #38991
  • [c93f3573eb] - deps: V8: cherry-pick fa4cb172cde2 (Michaël Zasso) #38273
  • [3c6c28b0a1] - deps: V8: cherry-pick 4c074516397b (Michaël Zasso) #38273
  • [3c37396d5c] - deps: V8: cherry-pick 5f4413194480 (Michaël Zasso) #38273
  • [3433559a55] - deps: V8: cherry-pick 272445f10927 (Michaël Zasso) #38273
  • [f56c78574e] - deps: V8: cherry-pick c0fceaa0669b (Michaël Zasso) #38273
  • [7197fcec93] - deps: V8: cherry-pick d59db06bf542 (Michaël Zasso) #38273
  • [bf7aa9fef8] - deps: silence irrelevant V8 warnings (Michaël Zasso) #37587
  • [eac377bc15] - deps: V8: backport aaacffa1e003 (Michaël Zasso) #38273
  • [1a7c8a12c1] - deps: fix V8 build issue with inline methods (Jiawen Geng) #35415
  • [3c9a75522b] - deps: make v8.h compatible with VS2015 (Joao Reis) #32116
  • [8ed258339a] - deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #32116
  • [4ef37c83a9] - deps: V8: patch register-arm64.h (Refael Ackermann) #32116
  • [7c61c6ee25] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116
  • [e82ef4148e] - (SEMVER-MINOR) deps: update V8 to 9.1.269.36 (Michaël Zasso) #38273
  • [70af146745] - deps: upgrade npm to 7.16.0 (npm team) #38920
  • [a71df7630e] - (SEMVER-MINOR) dns: allow --dns-result-order to change default dns verbatim (Ouyang Yadong) #38099
  • [dce256b210] - doc: remove references to deleted freenode channels (devsnek) #39047
  • [1afff98805] - doc: fix typos (bl-ue) #39049
  • [858f66e691] - doc: add missing parameter types (Voltrex) #39013
  • [ed91379186] - doc: clearify that http does chunked encoding itself (Mao Wtm) #28379
  • [51561f390a] - doc: add missing changelog links (Antoine du Hamel) #39016
  • [a19170eb9d] - doc: clarify that only one Python version is required to build (bl-ue) #38894
  • [7b219992e0] - doc: fix markup for aesImportParams (Tobias Nießen) #38898
  • [405b50cdba] - doc: use await in filehandle.truncate() snippet (RA80533) #38939
  • [5218fe86d1] - doc: fixed typo in process.md (Derevianchenko Maksym) #38941
  • [f903ad85f2] - doc: add missing semis after classes (Darshan Sen) #38931
  • [0bdeeda3b5] - doc: update write callback documentation (Simone Busoli) #38959
  • [7a7c0588ad] - doc: mark util.inherits as legacy (Voltrex) #38896
  • [f6964dc506] - doc: clarify when readable._read(...) is called (Shaun Keys) #38726
  • [3481b02e77] - doc: mark Node.js v15.x as EOL (Antoine du Hamel) #38891
  • [17a9846920] - doc: fix .mjs syntax in crypto.md (himself65) #38882
  • [8c7b2bab5f] - doc,fs: remove experimental status for WHATWG URL as path (Antoine du Hamel) #38870
  • [eddde6c31a] - errors: don't rekey on primitive type (Benjamin Coe) #39025
  • [3d7892ef39] - errors: add ERR_DEBUGGER_STARTUP_ERROR (Rich Trott) #39024
  • [631856ea32] - errors: add ERR_DEBUGGER_ERROR (Rich Trott) #39024
  • [336571fbdd] - Revert "http: make HEAD method to work with keep-alive" (Michaël Zasso) #38949
  • [c2b4fbba0f] - lib: remove semicolon in preparation for babel/eslint-parser update (Rich Trott) #39094
  • [f17dde81f3] - lib: make internal/options lazy (Joyee Cheung) #38993
  • [551430514b] - lib: add JSDoc typings for child_process (Voltrex) #38222
  • [ded83350a0] - lib: make primordials Promise methods safe (Antoine du Hamel) #38650
  • [637c1fa83c] - lib: refactor debuglog init (Antoine du Hamel) #38838
  • [5b5e07a2cc] - meta: update label-pr-config (Michaël Zasso) #38950
  • [92ed1c6cce] - module: fix legacy node specifier resolution to resolve "main" field (Antoine du Hamel) #38979
  • [4174f139b6] - net: use missing validator (Voltrex) #38984
  • [f7724ab342] - node-api: avoid crashing on passed-in null string (Gabriel Schulhof) #38923
  • [ec3e5b4c15] - node-api: avoid SecondPassCallback crash (Michael Dawson) #38899
  • [74f5e30d69] - node-api: rtn pending excep on napi_new_instance (legendecas) #38798
  • [4c6193fea1] - report: generates report on threads with no isolates (legendecas) #38994
  • [3c7a7d9ee4] - (SEMVER-MINOR) src: allow to negate boolean CLI flags (Michaël Zasso) #39023
  • [284d9c6228] - src: cleanup uv_fs_t regardless of success or not (legendecas) #38996
  • [902bb858d7] - src: refactor to use locale functions (Darshan Sen) #39014
  • [10370c5e8a] - src: fix multiple AddLinkedBinding() calls (Anna Henningsen) #39012
  • [ff8313c3a5] - src: throw error in LoadBuiltinModuleSource when reading fails (Joyee Cheung) #38904
  • [9ba5518f08] - src: skip test_fatal/test_threads for Debug builds (Daniel Bevenius) #38805
  • [06afb8df65] - (SEMVER-MINOR) src: make InitializeOncePerProcess more flexible (Shelley Vohr) #38888
  • [db4b192113] - src: add not-weak DCHECK to PersistentToLocal::Strong (Anna Henningsen) #38875
  • [08b2a4a138] - src,test: raise error for --enable-fips when no FIPS (Daniel Bevenius) #38859
  • [5d92c09bbf] - src,url: separate some tables out of node_url.cc (Khaidi Chu) #38988
  • [c20e28e1a0] - stream: fix pipeline pump (Robert Nagy) #39006
  • [7b026d8a72] - test: move inspector-cli tests to sequential (Rich Trott) #39079
  • [a53911b166] - test: improve buffer coverage (Rongjian Zhang) #38538
  • [5e9175f148] - test: fix name of variable in inspector-cli test (Tobias Nießen) #38869
  • [bd924610ec] - test: fix typo (Houssem Chebab) #39045
  • [d50df5dec1] - test: fix typo in test-http2-invalidheaderfield.js (Ikko Ashimine) #39021
  • [6111671d45] - test: adapt abort tests for new Windows code (Michaël Zasso) #38273
  • [1816d46cef] - test: adapt test-linux-perf to V8 changes (Michaël Zasso) #38273
  • [32961c4781] - test: fix V8 serdes test for V8 9.1 (Michaël Zasso) #38273
  • [f652284b3b] - test: remove obsolete TLS test (Rich Trott) #39001
  • [81bbeab3bd] - test: improve coverage of lib/events.js (Rongjian Zhang) #38582
  • [e82111f890] - test: http outgoing _headers setter null (ycjcl868) #38881
  • [1f10e84939] - test: suppress warning in test_environment.cc (Daniel Bevenius) #38868
  • [379b5f79a9] - tls: tweak clientCertEngine argument parsing (Shelley Vohr) #38900
  • [78d2e0ed8e] - tools: update babel-eslint-parser to 7.14.5 (Rich Trott) #39094
  • [fed641127a] - tools: update ESLint to 7.29.0 (Rich Trott) #39083
  • [3ae2a0be48] - tools: fix typo (Houssem Chebab) #39044
  • [a1d0aef60e] - tools: update doctool dependencies, migrate to ESM (Michaël Zasso) #38966
  • [2a292cf574] - tools: update V8 gypfiles for 9.1 (Michaël Zasso) #38273
  • [0c90fd8454] - tools: avoid crashing CQ when git push fails (Antoine du Hamel) #36861
  • [f817c2d3bb] - tools: fix typo in commit-queue.sh (bl-ue) #39000
  • [be5101eb32] - tools: update ESLint to 7.28.0 (Luigi Pinca) #38955
  • [9bf9ddb490] - tools: refactor snapshot builder (Joyee Cheung) #38902
  • [0706565097] - tools: bump remark-preset-lint-node to 2.3.0 (Rich Trott) #38910
  • [7d35fa7938] - tools: update gyp-next to v0.9.1 (Jiawen Geng) #38867
  • [00c20e621f] - tools,doc: forbid CJS globals in ESM code snippets (Antoine du Hamel) #38889
  • [99161b09f6] - url,src: simplify ipv6 logic by using uv_inet_pton (Khaidi Chu) #38842
  • [f40725f2a1] - vm: use missing validator (Voltrex) #38935
  • [f959cb3c68] - worker: do not look up context twice in PostMessage (Anna Henningsen) #38784

2021-06-02, Version 16.3.0 (Current), @danielleadams

Notable Changes

  • cli:
    • add -C alias for --conditions flag (Guy Bedford) #38755
  • deps:
    • add workspaces support to npm install commands (Ruy Adorno) #38750

Commits

2021-05-19, Version 16.2.0 (Current), @targos

Notable Changes

  • [36b948560c] - (SEMVER-MINOR) async_hooks: use new v8::Context PromiseHook API (Stephen Belanger) #36394
  • [c0deeeacb2] - lib: support setting process.env.TZ on windows (James M Snell) #38642
  • [4c4902748c] - (SEMVER-MINOR) module: add support for URL to import.meta.resolve (Antoine du Hamel) #38587
  • [c182198c44] - (SEMVER-MINOR) process: add 'worker' event (James M Snell) #38659
  • [fbf02e3198] - (SEMVER-MINOR) util: add util.types.isKeyObject and util.types.isCryptoKey (Filip Skokan) #38619

Commits

  • [36b948560c] - (SEMVER-MINOR) async_hooks: use new v8::Context PromiseHook API (Stephen Belanger) #36394
  • [dcae03203e] - buffer: remove TODOs in atob / btoa (Khaidi Chu) #38548
  • [48b557e904] - buffer: remove unreachable code (Rongjian Zhang) #38537
  • [b0df28dea5] - build: add workaround for V8 builds (Richard Lau) #38632
  • [3bb12db255] - build: remove dependency on distutils.spawn (Richard Lau) #38600
  • [10aaf30da1] - build: add missing torque output sources (Richard Lau) #38576
  • [03b4a3a5bf] - build: compile with -std=gnu++14 (Darshan Sen) #38504
  • [4296591154] - build,src,test,doc: enable FIPS for OpenSSL 3.0 (Daniel Bevenius) #38633
  • [36bb8daba5] - crypto: forbid NODE-ED25519 and NODE-ED448 "raw" key export (Filip Skokan) #38668
  • [36bb7243ff] - debugger: refactor inspect_repl to use primordials (Antoine du Hamel) #38551
  • [16a6c8d5a6] - debugger: refactor to use internal modules (Antoine du Hamel) #38550
  • [11dd9a6838] - debugger: disable only the lint rules required by current file state (Rich Trott) #38529
  • [e79f540fa0] - debugger: avoid non-ASCII char in code file (Rich Trott) #38529
  • [d9867b9358] - debugger: wrap lines longer than 80 chars (Rich Trott) #38529
  • [352a600142] - debugger: rename inspector-cli test module to debugger (Rich Trott) #38530
  • [608d0e11f3] - deps: upgrade npm to 7.13.0 (Ruy Adorno) #38682
  • [5c71f49d3f] - deps: upgrade npm to 7.12.1 (Ruy Adorno) #38628
  • [ec2dbfb200] - deps: patch V8 to 9.0.257.25 (Michaël Zasso) #38556
  • [ab298723b5] - (SEMVER-MINOR) deps: V8: cherry-pick fa4cb172cde2 (Stephen Belanger) #36394
  • [a84e9b3e7d] - (SEMVER-MINOR) deps: V8: cherry-pick 4c074516397b (Stephen Belanger) #36394
  • [043b1aaa3f] - (SEMVER-MINOR) deps: V8: cherry-pick 5f4413194480 (Stephen Belanger) #36394
  • [1a104bac74] - (SEMVER-MINOR) deps: V8: cherry-pick 272445f10927 (Stephen Belanger) #36394
  • [827ae05538] - (SEMVER-MINOR) deps: V8: backport c0fceaa0669b (Stephen Belanger) #36394
  • [f31a6114a4] - deps: V8: cherry-pick 530080c44af2 (Milad Fa) #38489
  • [4001dd28ba] - dgram: extract cluster lazy loading method to make it testable (Rongjian Zhang) #38563
  • [a0dc194e31] - doc: document buffer.kStringMaxLength (Tobias Nießen) #38688
  • [8590c151cd] - doc: update abort signal in fs promise api example (Moritz Kneilmann) #38669
  • [0100a3b026] - doc: add documentation for fs.WriteStream.close() (Hitesh Sharma) #38610
  • [5c38a554ec] - doc: clarify synchronous blocking of Worker stdio (James M Snell) #38658
  • [1765e32c45] - doc: update contact info (Gabriel Schulhof) #38689
  • [c4b161cb89] - doc: change color of doctag on night mode (Qingyu Deng) #38652
  • [6620a3182e] - doc: add ESM code examples in url.md (Antoine du Hamel) #38651
  • [d3de0ef5d4] - doc: fix fs.openSync() signature (Luigi Pinca) #38591
  • [56bf6c1bcd] - doc: typo stats() should be stat(); clarity (Bryan Field) #38541
  • [1d9fd49f41] - doc: fix code example in ecdh.setPublicKey() (Jordan Baczuk) #38542
  • [4c70e42928] - doc: use HEAD instead of master for links (Antoine du Hamel) #38518
  • [ae9128ec61] - doc: clarify DiffieHellmanGroup class docs (Nitzan Uziely) #38363
  • [e59131d97f] - doc: fix broken AHAFS link in fs doc (Rich Trott) #38534
  • [e9d4c8587a] - doc: use AIX instead of Aix in fs.md (Rich Trott) #38535
  • [e0118f347a] - doc: remove extraneous dash from flag prefix (Rodolfo Carvalho) #38532
  • [9e10e1a76f] - doc: corrected workload name as per the latest VS Installer (MrJithil) #38500
  • [38644d6f96] - doc: use sentence case in headers in src/crypto/README.md (Rich Trott) #38524
  • [347b9f2304] - errors: remove input from ERR_INVALID_URL message (moander) #38614
  • [5b40e2f596] - events: use nullish coalencing operator (Voltrex) #38328
  • [3a5856cbc3] - fs: fix async iterator partial writes (Nitzan Uziely) #38615
  • [e8761186a5] - fs: fix error when writing buffers > INT32_MAX (Zach Bjornson) #38546
  • [47080bcfc8] - fs: use assert in fsCall argument checking (Rongjian Zhang) #38519
  • [3d8b8e133f] - http: refactor to remove redundant argument of _deferToConnect (Rongjian Zhang) #38598
  • [c0deeeacb2] - lib: support setting process.env.TZ on windows (James M Snell) #38642
  • [cf4dc80d5f] - lib: make IterableWeakMap safe to iterate (Antoine du Hamel) #38523
  • [90b640efb1] - meta: add v8 team (Jiawen Geng) #38566
  • [4c4902748c] - (SEMVER-MINOR) module: add support for URL to import.meta.resolve (Antoine du Hamel) #38587
  • [14a2a00cda] - node-api: faster threadsafe_function (Fedor Indutny) #38506
  • [be4b3a4164] - path: inline conditions (Voltrex) #38613
  • [c182198c44] - (SEMVER-MINOR) process: add 'worker' event (James M Snell) #38659
  • [e2b8454582] - repl: fix Ctrl+C on top level await (Antoine du Hamel) #38656
  • [718ad105e5] - src: fix fatal errors when a current isolate not exist (legendecas) #38624
  • [524a9d6fcd] - src: update cares_wrap OpenBSD defines (Anna Henningsen) #38670
  • [6b409cf664] - src: remove extra semi after member fn (Shelley Vohr) #38686
  • [bfec80fd66] - src: make workers messaging more resilient (Juan José Arboleda) #38510
  • [ff1b4322f5] - test: refactor test-readline-interface to be shorter (Juan José Arboleda) #38691
  • [8eea317227] - test: stream.finished detects a destroyed IncomingMessage (Nitzan Uziely) #38661
  • [5b25fbe266] - test: set common.bits to 64 for riscv64 (Andreas Schwab) #38626
  • [5a0b52120a] - test: improve coverage of lib/_http_client.js (Rongjian Zhang) #38599
  • [3d0fad3840] - test: improve coverage of lib/os.js (Rongjian Zhang) #38653
  • [16b2fb4e0c] - test: increase coverage for repl (ZiJian Liu) #38559
  • [8f78c6646e] - test: call functions internally (Voltrex) #38560
  • [178fe215a4] - test: increase coverage for Histogram (ZiJian Liu) #38555
  • [95db7d5afc] - test: improve fs coverage (Rongjian Zhang) #38517
  • [f2f768f261] - test: complete coverage of querystring (Rongjian Zhang) #38520
  • [5b44107ae9] - test: increase coverage for AbortController (ZiJian Liu) #38514
  • [662265074c] - test: increase coverage for Blob (ZiJian Liu) #38515
  • [89e1daccf3] - test: run message and pseudo-tty tests in parallel (Richard Lau) #38502
  • [727c2bcc24] - test: move test-net-connect-econnrefused from pummel to sequential (Rich Trott) #38462
  • [e64ebac2da] - test: fix flaky inspector-cli tests when breakpionts are restored (Rich Trott) #38431
  • [b51b4feece] - test: skip tests for openssl-3.0.0-alpha15 (Daniel Bevenius) #38451
  • [db5ee23edf] - test: update OpenSSL 3.0.0-alpha15 error messages (Daniel Bevenius) #38451
  • [24472d9e0c] - test,repl: fix tests when inspector is disabled (Antoine du Hamel) #38564
  • [267a84f5e1] - tools: remove redundant v8 config (Jiawen Geng) #38565
  • [a028805f1b] - tools: update ESLint to 7.26.0 (Colin Ihrig) #38605
  • [ec8ab22ce6] - (SEMVER-MINOR) tools: add Worker to type-parser (James M Snell) #38659
  • [151488539b] - tools: make GH Actions workflows work if default branch is not master (Antoine du Hamel) #38516
  • [c0f0c9a92d] - typings: add JSDoc typings for readline (Voltrex) #38253
  • [fbf02e3198] - (SEMVER-MINOR) util: add util.types.isKeyObject and util.types.isCryptoKey (Filip Skokan) #38619
  • [070ee4bb94] - Revert "worker: remove ERR_CLOSED_MESSAGE_PORT" (Juan José Arboleda) #38510

2021-05-04, Version 16.1.0 (Current), @targos

Notable Changes

  • [8a90f55a05] - (SEMVER-MINOR) fs: allow no-params fsPromises fileHandle read (Nitzan Uziely) #38287

Commits

  • [28e16488cf] - async_hooks,doc: replace process.stdout.fd with 1 (Darshan Sen) #38382
  • [cbab7ec6e5] - benchmark: avoid using console.log() (Antoine du Hamel) #38370
  • [ba15b20062] - benchmark: use process.hrtime.bigint() (Antoine du Hamel) #38369
  • [bc6e719884] - bootstrap: freeze more intrinsics (Antoine du Hamel) #38217
  • [29faf0f12e] - build: fix label-pr workflow (Michaël Zasso) #38399
  • [b5d669a6ea] - build: label PRs with GitHub Action instead of nodejs-github-bot (Phillip Johnsen) #38301
  • [195f679331] - crypto: don't crash with some selfsigned certs (Nils Dralle) #37990
  • [4b073b0beb] - crypto: fix generateKeyPair type checks (Nitzan Uziely) #38364
  • [c1d9b5b386] - crypto: fix scrypt keylen validation (Antoine du Hamel) #38385
  • [7354479ad5] - crypto: fix DiffieHellman generator validation (eladkeyshawn) #38311
  • [0e446d6048] - debugger: enable linter on internal/inspector/inspect_client (Antoine du Hamel) #38417
  • [9f0e80aa4d] - debugger: refactor internal/inspector/_inspect to use more primordials (Antoine du Hamel) #38406
  • [a0c566f85a] - debugger: apply automatic lint fixes for inspect_repl.js (Rich Trott) #38411
  • [b884ea739b] - debugger: apply automatic lint fixes for _inspect.js (Rich Trott) #38411
  • [f946aa0360] - debugger: remove unused function argument (Rich Trott) #38400
  • [203a9689a3] - debugger: align message with Node.js standard (Rich Trott) #38400
  • [ef617dcbb0] - debugger: add usage example for --port (Rafael Gonzaga) #38400
  • [37b5ce2d5a] - debugger: fix race condition/deadlock on initialization (Rich Trott) #38161
  • [2a6203d155] - debugger: replace internal use of deprecated API (Rich Trott) #38161
  • [6fff9fff97] - debugger: allow longer time to connect (Rich Trott) #38161
  • [def85daace] - debugger: accommodate line chunking in Windows (Rich Trott) #38161
  • [07361e6b77] - debugger: fix inspect restart on Windows (Rich Trott) #38161
  • [d65615e119] - debugger: remove unused code (Rich Trott) #38161
  • [62b03bc4f6] - debugger: move node-inspect to internal library (Rich Trott) #38161
  • [e3b75cb5aa] - deps: V8: cherry-pick fd75c97d3f56 (Michaël Zasso) #38455
  • [aabddfbeb5] - deps: upgrade npm to 7.11.2 (Ruy Adorno) #38475
  • [7b9fb92d51] - deps: update to cjs-module-lexer@1.2.1 (Guy Bedford) #38450
  • [47626c52a3] - deps: patch V8 to 9.0.257.24 (Michaël Zasso) #38423
  • [f455e08621] - deps: patch V8 to 9.0.257.21 (Michaël Zasso) #38333
  • [dd61a26d8c] - deps: update llhttp to 6.0.1 (Fedor Indutny) #38359
  • [05f41cdbcc] - deps: patch V8 to 9.0.257.19 (Michaël Zasso) #38270
  • [224faa0a05] - Revert "doc: os.uptime() temporary bug notice" (Michaël Zasso) #38494
  • [3b0480dde8] - doc: document 'secureConnect' event limitation (James M Snell) #38447
  • [92586046ec] - doc: fix outdated util inspect documentation and layout example (Ruben Bridgewater) #37079
  • [13de4cf1ca] - doc: mark Node.js 10 as End-of-Life (Richard Lau) #38482
  • [3cbfde1f25] - doc: mark querystring api as legacy (James M Snell) #38436
  • [a5929c2487] - doc: update node-api support matrix (Michael Dawson) #38424
  • [f08650cefe] - doc: add arguments for stream event of Http2Server and Http2SecureServer (Qingyu Deng) #37892
  • [2d59273bed] - doc: indicate that abort tests do not generate core files (Rich Trott) #38422
  • [f1970127ee] - doc: add try/catch in http2 respondWithFile example (Matteo Collina) #38410
  • [f6f1317f43] - doc: note the system requirements for V8 tests (DeeDeeG) #38319
  • [4b19beaf3c] - doc: minor clarification to pathObject (James M Snell) #38437
  • [1eae4af6f7] - doc: clarify that fs.Dir async iterator closes automatically (James M Snell) #38438
  • [14afb39259] - doc: document new TCP_KEEPCNT and TCP_KEEPINTVL socket option defaults (Arnold Zokas) #38313
  • [ed5ef21690] - doc: do not mention TCP in the allowHalfOpen option description (Luigi Pinca) #38360
  • [042985c139] - doc: update message to match actual output (Rich Trott) #35271
  • [bcc5e2af76] - doc: request default snap track be updated for LTS (Rod Vagg) #37708
  • [dfd4c7ba93] - doc: mark process.hrtime() as legacy (Antoine du Hamel) #38371
  • [67cd88da00] - doc: fix typo in worker_threads.md (takayama) #38368
  • [a9314cda7d] - doc: fix version history for "exports" patterns (Antoine du Hamel) #38355
  • [76885cd578] - doc: fix package.json "imports" field history (Antoine du Hamel) #38356
  • [0e88ae7ec1] - doc: fix typo in buffer.md (divlo) #38323
  • [1cccc2da51] - doc: fix YAML comment opening tags (Jayden Seric) #38324
  • [25052dc987] - doc: add nodejs-sec email template (Daniel Bevenius) #38290
  • [3858029262] - doc: update TSC members list with three new members (Rich Trott) #38352
  • [2eef587674] - doc: use foo.prototype.bar notation in buffer.md (Voltrex) #38032
  • [8a90f55a05] - (SEMVER-MINOR) fs: allow no-params fsPromises fileHandle read (Nitzan Uziely) #38287
  • [a696f1080c] - inspector: remove redundant method for connection check (Yash Ladha) #37986
  • [fcac2e0363] - lib: harden lint checks for globals (Antoine du Hamel) #38419
  • [277122e1fa] - lib: fix and improve os typings (Akhil Marsonya) #38316
  • [f2c0258b4c] - lib: add support for JSTransferable as a mixin (James M Snell) #38383
  • [96f54d3446] - meta: post comment when pr labeled fast-track (James M Snell) #38446
  • [4711f57cf2] - perf_hooks: add toJSON to performance class (Yash Ladha) #37771
  • [013fa59602] - perf_hooks: fix PerformanceObserver 'gc' crash (James M Snell) #38414
  • [10147f191e] - readline: move utilities to internal modules (Antoine du Hamel) #38466
  • [620ee42ab4] - repl: document top level await limitation with const/let (James M Snell) #38449
  • [aa24681dcb] - repl: display prompt once after error callback (Anna Henningsen) #38314
  • [9c06103a4f] - src: fix validation of negative offset to avoid abort (James M Snell) #38421
  • [7d8cc2abf1] - src: use %progbits instead of @progbits (Stephen Gallagher) #38312
  • [17856f1f88] - src: print arbitrary javascript exception value in node report (legendecas) #38009
  • [769a210d55] - src: refactor to use THROW_* argument based snprintf (Filip Skokan) #38357
  • [e3538bbcd2] - src: fix abort in pbkdf2 (Tobias Nießen) #38354
  • [09cacd7418] - src: fix setting Converter sub char length (James M Snell) #38331
  • [3649ec5276] - src: avoid deferred gc/cleanup for Buffer.from (James M Snell) #38337
  • [f2ffaba78c] - stream: the position of _read() is wrong (helloyou2012) #38292
  • [7ce39b8608] - test: fix common.mustCall length and name properties (Antoine du Hamel) #38464
  • [d1cd1178e7] - test: address deprecation warning (Rich Trott) #38448
  • [67e9e71f75] - test: crypto KeyObject.from() ERR_INVALID_ARG_TYPE (pezhmanparsaee) #37890
  • [9ad611c0b2] - test: fix flaky test-crypto-timing-safe-dqual-benchmarks (Rich Trott) #38476
  • [10b6b4e244] - test: update url Web Platform Tests (Leko) #38435
  • [4f6c4eb144] - test: move abort test from pummel to abort directory (Rich Trott) #38396
  • [231ef4b0ce] - test: move slower tests into pummel and skip on slow devices (Rich Trott) #38395
  • [45322dfa12] - test: skip some pummel tests on slower machines (Rich Trott) #38394
  • [1bc47a4c0f] - test: fix test to allow quictls fork of OpenSSL 3 (Richard Lau) #38372
  • [6ac02755f5] - test: extend timeout on debugger tests for slower machines (Rich Trott) #38161
  • [93b0c78de0] - test: fix comment typo (Rich Trott) #38161
  • [6c3e5043b0] - test: fix test-inspector-cli-address (Rich Trott) #38161
  • [27d7588ad5] - test: add ancestor package.json checks for tmpdir (Richard Lau) #38285
  • [30de03630e] - test: replace function with arrow function and remove unused argument (Andres) #38235
  • [eb8f5ce44f] - test: use .test domain for not found address (Richard Lau) #38286
  • [a4084d66c6] - test,debugger: migrate node-inspect tests to core (Rich Trott) #38161
  • [16eb078aa8] - test,readline: improve tab completion coverage (Antoine du Hamel) #38465
  • [b3ca1b358e] - timers: remove redundant unref calls (Giora Guttsait) #38320
  • [5b393d9258] - tls: validate ticket keys buffer (Antoine du Hamel) #38308
  • [f6745e9370] - tls: fix tlsSocket.setMaxSendFragment abort (eladkeyshawn) #38170
  • [499da2d9e3] - tools: use mktemp to create the workspace directory (Luigi Pinca) #38432
  • [8a83bfd1bd] - tools: use a shallow clone of the npm/cli repository (Luigi Pinca) #38463
  • [bec959ef8b] - tools: disable LTO for "v8_cppgc_shared" target (Jesse Chan) #38346
  • [6350d35b3c] - tools: remove fixer for non-ascii-character ESLint custom rule (Rich Trott) #38413
  • [dce8d2968a] - tools: fix doc generation when version info is not available (Antoine du Hamel) #38398
  • [1033f6c8cb] - tools: add _depot_tools to PATH (for V8 tests) (DeeDeeG) #38299
  • [28f02cb8cf] - tools: update ESLint to 7.25.0 (Colin Ihrig) #38378
  • [f1ea2c8e2b] - tools: update markdown linter rules (Rich Trott) #38384
  • [02e875c645] - tools: remove node-inspect from license (Rich Trott) #38161
  • [d3bd4b4771] - tools: fix type mismatch in test runner (Richard Lau) #38289
  • [9a2651352b] - typings: add JSDoc typings for fs (Voltrex) #38306
  • [e389e86b6b] - typings: add JSDoc typings for util (Rohit Gohri) #38213
  • [ec5b06eae3] - util: fix infinite recursion during inspection (Ruben Bridgewater) #37079
  • [67bd0ec15c] - zlib: fix brotli flush range (Khaidi Chu) #38408

2021-04-20, Version 16.0.0 (Current), @BethGriggs

Notable Changes

Deprecations and Removals

  • (SEMVER-MAJOR) fs: remove permissive rmdir recursive (Antoine du Hamel) #37216
  • (SEMVER-MAJOR) fs: runtime deprecate rmdir recursive option (Antoine du Hamel) #37302
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('http_parser') (James M Snell) #37813
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('url') (James M Snell) #37799
  • (SEMVER-MAJOR) lib: make process.binding('util') return only type checkers (Anna Henningsen) #37819
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('crypto') (James M Snell) #37790
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('signal_wrap') (James M Snell) #37800
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('v8') (James M Snell) #37789
  • (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('async_wrap') (James M Snell) #37576
  • (SEMVER-MAJOR) module: remove module.createRequireFromPath (Antoine du Hamel) #37201
  • (SEMVER-MAJOR) module: runtime deprecate subpath folder mappings (Antoine du Hamel) #37215
  • (SEMVER-MAJOR) module: runtime deprecate "main" index and extension lookups (Antoine du Hamel) #37206
  • (SEMVER-MAJOR) module: runtime deprecate invalid package.json main entries (Antoine du Hamel) #37204
  • (SEMVER-MAJOR) process: runtime deprecate changing process.config (James M Snell) #36902

Stable Timers Promises API

The Timers Promises API provides an alternative set of timer functions that return Promise objects. Added in Node.js v15.0.0, in this release they graduate from experimental status to stable.

Contributed by James Snell - #38112

Toolchain and Compiler Upgrades

Node.js v16.0.0 will be the first release where we ship prebuilt binaries for Apple Silicon. While we’ll be providing separate tarballs for the Intel (darwin-x64) and ARM (darwin-arm64) architectures the macOS installer (.pkg) will be shipped as a ‘fat’ (multi-architecture) binary.

  • (SEMVER-MAJOR) build: remove support for Python 2 (Christian Clauss) #36691
  • (SEMVER-MAJOR) build: default PYTHON to python3 in Makefile (Michaël Zasso) #37764
  • build: update Makefile to support fat binary (Ash Cripps) #37861
  • (SEMVER-MAJOR) build: enable ASLR (PIE) on OS X (woodfairy) #35704
  • build: warn for gcc versions earlier than 8.3.0 (Richard Lau) #37935
  • (SEMVER-MAJOR) doc: update minimum supported Xcode to 11 (Michaël Zasso) #37872
  • (SEMVER-MAJOR) doc: update minimum supported GCC to 8.3 (Michaël Zasso) #37871
  • (SEMVER-MAJOR) doc: update AIX to GCC8 for v16.x (Ash Cripps) #37677
  • tools: set arch in Distribution.xml (Ash Cripps) #38261

V8 9.0

The V8 JavaScript engine is updated to V8 9.0, including performance tweaks and improvements.

This update also brings the ECMAScript RegExp Match Indices, which provide the start and end indices of the captured string. The indices array is available via the .indices property on match objects when the regular expression has the /d flag.

Contributed by Michaël Zasso - #37587

Other Notable Changes

  • (SEMVER-MINOR) assert: graduate assert.match and assert.doesNotMatch (James M Snell) #38111
  • (SEMVER-MAJOR) buffer: expose btoa and atob as globals (James M Snell) #37786
  • (SEMVER-MAJOR) deps: bump minimum ICU version to 68 (Michaël Zasso) #37330
  • deps: update ICU to 69.1 (Michaël Zasso) #38178
  • deps: update llhttp to 6.0.0 (Fedor Indutny) #38277
  • deps: upgrade npm to 7.10.0 (Ruy Adorno) #38254
  • (SEMVER-MINOR) http: add http.ClientRequest.getRawHeaderNames() (simov) #37660
  • (SEMVER-MAJOR) lib,src: update cluster to use Parent (Michael Dawson) #36478
  • (SEMVER-MINOR) module: add support for node:‑prefixed require(…) calls (ExE Boss) #37246
  • (SEMVER-MINOR) perf_hooks: add histogram option to timerify (James M Snell) #37475
  • (SEMVER-MINOR) repl: add auto‑completion for node:‑prefixed require(…) calls (ExE Boss) #37246
  • (SEMVER-MINOR) util: add getSystemErrorMap() impl (eladkeyshawn) #38101

Semver-Major Commits

  • [324a6c235a] - (SEMVER-MAJOR) async_hooks: add thisArg to AsyncResource.bind (James M Snell) #36782
  • [d1e2184c8e] - (SEMVER-MAJOR) buffer: expose btoa and atob as globals (James M Snell) #37786
  • [4268fae04a] - (SEMVER-MAJOR) build: remove support for Python 2 (Christian Clauss) #36691
  • [c3a5e15ebe] - (SEMVER-MAJOR) build: default PYTHON to python3 in Makefile (Michaël Zasso) #37764
  • [1d8c022544] - (SEMVER-MAJOR) build: update Makefile to support fat binary (Ash Cripps) #37861
  • [38f32386c1] - (SEMVER-MAJOR) build: include minimal V8 headers in distribution (Michaël Zasso) #37570
  • [a19af5ee71] - (SEMVER-MAJOR) build: use C++11 ABI with libstdc++ (Anna Henningsen) #36634
  • [8d6b74d347] - (SEMVER-MAJOR) build: enable ASLR (PIE) on OS X (woodfairy) #35704
  • [732ad99e47] - (SEMVER-MAJOR) deps: update V8 to 9.0.257.11 (Michaël Zasso) #37587
  • [43cc8e4b2e] - (SEMVER-MAJOR) deps: bump minimum ICU version to 68 (Michaël Zasso) #37330
  • [c5ff019a4e] - (SEMVER-MAJOR) deps: update V8 to 8.9.255.19 (Michaël Zasso) #37330
  • [c7b3292251] - (SEMVER-MAJOR) deps: update V8 to 8.8.278.17 (Michaël Zasso) #36139
  • [48db20f6f5] - (SEMVER-MAJOR) deps: update V8 to 8.7.220 (Michaël Zasso) #35700
  • [d85e1f0703] - (SEMVER-MAJOR) dns: use url module instead of punycode for IDNA (Antoine du Hamel) #35091
  • [290c158018] - (SEMVER-MAJOR) doc: update minimum supported Xcode to 11 (Michaël Zasso) #37872
  • [1ff2918d80] - (SEMVER-MAJOR) doc: update minimum supported GCC to 8.3 (Michaël Zasso) #37871
  • [2706e67116] - (SEMVER-MAJOR) doc: update AIX to GCC8 for v16.x (Ash Cripps) #37677
  • [5ae5ca90ef] - (SEMVER-MAJOR) doc: add http.IncomingMessage#connection (Pranshu Srivastava) #33768
  • [83d6e63aee] - (SEMVER-MAJOR) events: change EventTarget handler exception behavior (Nitzan Uziely) #37237
  • [9948036ee0] - (SEMVER-MAJOR) fs: remove permissive rmdir recursive (Antoine du Hamel) #37216
  • [d4693ff430] - (SEMVER-MAJOR) fs: add validation for fd and path (Dylan Elliott) #35187
  • [0ddd75bcd8] - (SEMVER-MAJOR) fs: runtime deprecate rmdir recursive option (Antoine du Hamel) #37302
  • [da217d0773] - (SEMVER-MAJOR) fs: fix flag and mode validation (James M Snell) #37480
  • [2ef9a76ece] - (SEMVER-MAJOR) http: use objects with null prototype in Agent (Michaël Zasso) #36409
  • [25e30005b8] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('http_parser') (James M Snell) #37813
  • [8bb4e048af] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('url') (James M Snell) #37799
  • [fe73e4d578] - (SEMVER-MAJOR) lib: make process.binding('util') return only type checkers (Anna Henningsen) #37819
  • [3bee6d8aad] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('crypto') (James M Snell) #37790
  • [ac00df112e] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('signal_wrap') (James M Snell) #37800
  • [ae595d76e3] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('v8') (James M Snell) #37789
  • [104dac79cc] - (SEMVER-MAJOR) lib: aggregate errors to avoid error swallowing (Antoine du Hamel) #37460
  • [1468c9ff7c] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding('async_wrap') (James M Snell) #37576
  • [295e766c27] - (SEMVER-MAJOR) lib: remove usage of url.parse (raisinten) #36853
  • [cb3020d824] - (SEMVER-MAJOR) lib: add error handling for input stream (rexagod) #31603
  • [15164cebce] - (SEMVER-MAJOR) lib,src: update cluster to use Parent (Michael Dawson) #36478
  • [3cc9aec988] - (SEMVER-MAJOR) module: runtime deprecate subpath folder mappings (Antoine du Hamel) #37215
  • [9fab73c73b] - (SEMVER-MAJOR) module: runtime deprecate "main" index and extension lookups (Antoine du Hamel) #37206
  • [76a073b67e] - (SEMVER-MAJOR) module: runtime deprecate invalid package.json main entries (Antoine du Hamel) #37204
  • [674614b3f5] - (SEMVER-MAJOR) module: remove module.createRequireFromPath (Antoine du Hamel) #37201
  • [aecd5ebf49] - (SEMVER-MAJOR) module: only set cache when finding module succeeds (Yongsheng Zhang) #36642
  • [f0bf373176] - (SEMVER-MAJOR) perf_hooks: make performance a global (James M Snell) #37970
  • [f3eb224c83] - (SEMVER-MAJOR) perf_hooks: complete overhaul of the implementation (James M Snell) #37136
  • [f1753d4c76] - (SEMVER-MAJOR) process: disallow adding options to process.allowedNodeEnvironmentFlags (Antoine du Hamel) #36660
  • [96f3977ded] - (SEMVER-MAJOR) process: runtime deprecate changing process.config (James M Snell) #36902
  • [45dbcbef90] - (SEMVER-MAJOR) readline: cursorTo throw error on NaN (Zijian Liu) #36379
  • [bf79987433] - (SEMVER-MAJOR) src: mark internally exported functions as explicitly internal (Tyler Ang-Wanek) #37000
  • [1fe571aa0c] - (SEMVER-MAJOR) src: inline AsyncCleanupHookHandle in headers (Tyler Ang-Wanek) #37000
  • [dfc288e7fd] - (SEMVER-MAJOR) src: clean up embedder API (Anna Henningsen) #35897
  • [65e8864fa3] - (SEMVER-MAJOR) worker: send correct error status for worker init (Yash Ladha) #36242

Semver-Minor Commits

  • [944a956087] - (SEMVER-MINOR) assert: graduate assert.match and assert.doesNotMatch (James M Snell) #38111
  • [6a1986d50a] - (SEMVER-MINOR) deps: update llhttp to 5.1.0 (Fedor Indutny) #38146
  • [069b5df4f6] - (SEMVER-MINOR) module: add support for node:‑prefixed require(…) calls (ExE Boss) #37246
  • [b803bca4fa] - (SEMVER-MINOR) perf_hooks: add histogram option to timerify (James M Snell) #37475
  • [95391fe689] - (SEMVER-MINOR) repl: add auto‑completion for node:‑prefixed require(…) calls (ExE Boss) #37246
  • [15b8e6b1c4] - (SEMVER-MINOR) timers: graduate awaitable timers and improve docs (James M Snell) #38112
  • [802171057f] - (SEMVER-MINOR) util: add getSystemErrorMap() impl (eladkeyshawn) #38101

Semver-Patch Commits