Changelog

nodejs/node · · 14 commits

WebStreams got leaner; permissions tightened

Node fixes a querystring decoding bug, improves permission model behavior, and trims WebStreams pipeTo/tee overhead.

WebStreams pipeTo/tee avoids extra promise churn (mcollina29bd740) The stream plumbing now uses shared pending promises and lightweight hooks instead of materializing observable [[closedPromise]] records when only internal watchers need them. That cuts allocations and keeps push-style ReadableStreams from being retained until the next microtask checkpoint, while preserving the same error/close behavior.

Permissioned fs grants now survive dropping a covering directory (RafaelGSS02bae37) Explicit file grants are now tracked separately from directory grants, so removing a broad path no longer accidentally erases a narrower grant that was added later. This fixes a correctness hole in the permission model and is backed by a new regression test.

querystring.parse no longer corrupts values after encoded keys (vedchaudhari8cf60c5) A bug in the non-default parser path could let percent-encoded key bytes interfere with value decoding, mangling non-ASCII characters. The fix keeps key characters out of the value encoding check and adds coverage for encoded-key/unencoded-value cases.

SEA VFS mounting was reworked for workers and main-script loading (pipobscureac9d85c) Single-executable apps with vfsArchive now mount their archive at the --vfs-load mount point in every thread, so worker threads can load the same main script path and the archive no longer depends on a special one-off mount. The change also tightens the docs and startup validation around --vfs-load interactions.

Maglev now retains embedded heap objects more safely (nodejs-github-botc883ccf) V8’s Maglev codegen learned to explicitly retain certain embedded heap objects, including typed array buffers used by constant-folded loads. That helps ensure code depending on those objects is deoptimized if the backing buffer dies, reducing the risk of stale embedded references.

Other misc changes

  • Temporal support enabled for no-ICU and system-ICU builds; related test adjusted (aduh95ea6ec93)
  • Reverted the SEA VFS worker/archive mounting change after regressions (aduh953f0c2e4)
  • Permission fs cleanup fix for Windows path buffers (RafaelGSSa67d2a8)
  • Docs clarifications for styleText, permissions, and VFS examples (delucis04fb145, RafaelGSS886c7b4, RafaelGSS280ea27)
  • Daily WPT workflow tweak for Python 3.14 (panvaa61da69)
  • GoogleTest and V8 dependency bumps/patches (nodejs-github-bot3cd33c4)