$ the-wire · showcase
Faster http2 getHeaders, WASM errors on jitless builds
By RepoJournal · Filed · About Node.js · Composed from the cited sources · methodology
Node's stream, HTTP/2, and build internals all moved today: a silent data-loss bug in shareSync() is now rejected outright, response header copying got up to 256% faster on Apple silicon, and features that need WebAssembly or executable memory now fail loudly instead of quietly.
stream: reject drop-newest backpressure in shareSync() nodejs/node
A shareSync() consumer using 'drop-newest' that had to pull while the buffer sat at budget discarded one entry from the source and then returned { done: true } even though the source was not exhausted, so for...of loops and anything else trusting the iterator protocol stopped consuming without notice. There is no correct alternative in a synchronous context, so the option is now rejected rather...
http2: speed up response getHeaders nodejs/node
Http2ServerResponse.getHeaders() swaps ObjectAssign for an explicit key-copy loop while keeping the null-prototype shallow copy, measured against 4fa5145b06d788a26341c039eab2e8f5f161f93b on Apple M2 / macOS with 30 samples per binary and configuration at 1,000,000 calls per sample. The gains scale with header count: +37.30% at 0 headers up to +256.02% at 64.
test_runner: rerun failing todo tests in suites nodejs/node
A failing todo test does not fail its parent, so the parent suite was recorded as passed in the rerun state file alongside its children, and the next run replayed it synthetically, marking the failing todo subtest passed instead of rerunning it. Passing tests whose descendants failed are no longer recorded, so the suite body reruns while passing siblings are still replayed from their own entrie...
doc,lib,src: throw on missing WebAssembly or RX support nodejs/node
When WebAssembly or RX memory are unavailable, eventually due to --jitless, Node now throws a catchable error instead of failing obscurely: ERR_WEBASSEMBLY_NOT_SUPPORTED for WASM module imports including source-phase imports, and ERR_RX_MEMORY_NOT_SUPPORTED for otherwise eligible FFI Fast API functions when the executable-memory probe fails. The docs state plainly that Node guarantees no fallba...
src: stop including simdjson.h from env.h nodejs/node
env.h pulled in inspector_profiler.h, which included simdjson.h for the types of two virtual methods and a parser member, so roughly 155 files in src/ parsed the amalgamated simdjson header, over 10 MB of it. Profile connections now say which field of result holds the profile and WriteProfile() takes raw JSON, cutting the parser down to a local variable.
chore: move to wrangler for deployments nodejs/doc-kit
doc-kit deployments move to wrangler; the change was needed because Cloudflare requires a new branch to show changes.