Change8

v25.4.0

📦 node-jsView on GitHub →
12 features🐛 9 fixes🔧 12 symbols

Summary

This release introduces several stability promotions for CLI flags and module features, alongside new utility functions and performance improvements in assertion comparisons. Key additions include http.setGlobalProxyFromEnv() and enhanced module import handling.

Migration Steps

  1. If relying on the exact behavior of events.listenerCount() with only an event name string, note that it now accepts EventTargets as the first argument, which might affect overloading resolution or behavior if not explicitly typed.
  2. If using stream composition, note that the output of readable.compose() is no longer passed through Readable.from() (SEMVER-MINOR).

✨ New Features

  • Added --require-module/--no-require-module CLI flags for controlling module loading.
  • Marked --heapsnapshot-near-heap-limit as stable.
  • Marked --build-snapshot and --build-snapshot-config as stable.
  • events.listenerCount() can now accept EventTargets (SEMVER-MINOR).
  • Added http.setGlobalProxyFromEnv() (SEMVER-MINOR).
  • Marked require(esm) as stable.
  • Marked module compile cache as stable.
  • Allowed subpath imports starting with "#/" (SEMVER-MINOR).
  • Preserve AsyncLocalStorage in queueMicrotask only when needed (SEMVER-MINOR).
  • Modified stream.Readable.compose() output handling to avoid passing through Readable.from() (SEMVER-MINOR).
  • Added convertProcessSignalToExitCode utility in util module (SEMVER-MINOR).
  • Marked v8.queryObjects() as stable.

🐛 Bug Fixes

  • Updated root certificates to NSS 3.117 in crypto module.
  • Improved performance in assert module by using a set instead of an array for faster lookup.
  • Improved comparison performance in assert and util modules.
  • Fixed deep comparison in assert/util when skipping properties for invalid dates.
  • Improved deep comparison performance in assert/util.
  • Fixed incorrect base64 input in byteLength benchmark.
  • Allowed Buffer.of to use heap.
  • Fixed inconsistent quoting in Makefile.
  • Fixed OpenSSL version parsing for OpenSSL < 3.

Affected Symbols