Changelog

nodejs/node · · 15 commits

HTTP correctness, WebIDL refactor, and Blob fix

Several user-facing correctness fixes landed, plus a large WebIDL converter refactor and related test coverage.

HTTP drain now waits for actual buffer drain (ronagc21c664)

Node now only emits 'drain' for OutgoingMessage/ServerResponse once writableLength reaches zero, fixing cases where the event could fire while data was still buffered. That restores the expected backpressure invariant for callers relying on write()/drain behavior.

HTTP client now defends against prototype pollution in options (mcollinae0200f2)

http.request() now merges request options into a null-prototype object instead of a normal object. This avoids inherited properties from Object.prototype being observed during option parsing, closing off a subtle correctness and hardening issue.

Blob rejects SharedArrayBuffer-backed parts per spec (thisalihassan9390c81)

Blob construction now rejects SharedArrayBuffer inputs and SAB-backed typed array/DataView parts instead of accepting them through the generic buffer-source path. This aligns Blob behavior with the Web platform spec and prevents unsupported shared-memory inputs from slipping through.

Internal WebIDL converters were heavily refactored (panvaff10199)

lib/internal/webidl.js was reworked into a documented shared converter module with broader coverage for primitives, dictionaries, enums, sequences, interfaces, integer coercion, and buffer sources. WebCrypto and other internals now use the shared converters, which should make behavior more spec-aligned and reduce duplication; the change also comes with new benchmarks and extensive test coverage.

Other misc changes

  • Workflow fix: pin notify-on-push to LTS Node.js to avoid false invalid-commit alerts.
  • Inspector GN inputs fixed for PDL file regeneration.
  • WebStreams helper cleanup and utility deduplication.
  • Misc CI/workflow updates and dependency bumps.
  • Build config tweak: remove armv6 from experimental platforms.
  • Doc/manpage typo fix and license-header cleanup.