$ the-wire · showcase
FFI callbacks no longer dangle after GC
By RepoJournal · Filed · About Node.js · Composed from the cited sources · methodology
Two fixes in node's FFI and crypto paths change real runtime behavior, while the rest of the day is housekeeping: renames, fixture swaps, and meeting minutes.
ffi: keep DynamicLibrary alive while callbacks are registered nodejs/node
Callback pointers from registerCallback() are plain bigint addresses and did not keep the owning DynamicLibrary reachable, so a library dropped without close() could be collected and every ffi_closure freed while native code still held the pointer. The fix holds the library alive for as long as callbacks are registered; before this, the next GC after an unclosed library went out of scope could ...
crypto: reject immutable random fill buffers nodejs/node
randomFillSync(), randomFill(), and getRandomValues() now reject immutable ArrayBuffers and views instead of writing into them. Anything that hands a frozen or otherwise immutable buffer to those APIs will now get an error rather than a silent mutation.
tls: test the SPKI blocklist with a fixture key nodejs/node
The SPKI blocklist test now uses a fixture CA whose public key is a permanent entry on the compiled-in blocklist, replacing the test-only crypto binding hooks and the process-wide list and mutex they required on every handshake. The production path is now a comparison against a constant array, and the test exercises the real list through full handshakes without --expose-internals.
tools: remove `node.gyp` and `node.gypi` from `v8.nix` requisites nodejs/node
node.gyp and node.gypi come out of the v8.nix requisites, alongside a test-file cleanup removing duplicate common imports and a sweep renaming the site's With... components to plain names, with WithNodeRelease and WithDow left alone because they do something different.
Merge pull request #1179 from sxa/meeting-2026-08-30 nodejs/Release
Stewart X Addison merged the minutes for the 2026-08-20 and 2026-10-15 release working group meetings; no release decisions are described in the input.