Skip to content

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

Compare
Choose a tag to compare
@BethGriggs BethGriggs released this 20 Apr 15:59
v16.0.0
7162e68

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