0.3.6
Features
node:readlineadds terminal mode, cursor helpers andemitKeypressEvents, along with thehistoryandcompleteroptions and the history members.node:httpsupports requestsignals,destroy(err),servername,Expectevents andmaxHeaderSize.createHashandcreateHmacvalues work as streams.node:testadds theconcurrency,planandtimeoutoptions.fs.cpSync,fs.cpandfs/promisescpare supported.util.promisifyworks oversetTimeout,setImmediate,stream.finished,stream.pipelineand the zlib callback one-shots.Array.fromAsyncworks over arrays,Readable.fromaccepts Sets, iterators and class iterables, and theSetcomposition methods acceptMaparguments.usingdisposesDisposable-typed values, andSuppressedErrorexposeserrorandsuppressed.
Performance
- Int32 class fields stay int32 next to arithmetic on dynamic operands and in programs that register process event listeners. A large TypeScript type-checker workload runs about 12% faster with about 5% less memory.
whileloops bounded by a string's length keep int32 counters.- Worker threads reserve heap growth up front once they allocate many large blocks, and share one prefault budget.
- Small runtime functions are inlined into release executables.
- Integers are speculated only where the static range proof gives up.
- Constant-key dynamic reads are cached per site, and
JSON.parsefollows repeated key sequences. - The zlib one-shot forms run on the stream engine, and
statSync'sthrowIfNoEntryoption no longer builds the error it discards.
Fixes
- Class instances keep their identity through structural record views, including in
switchstatements and assertions. - Node 24 builtin forms that ran with wrong output now match Node or are refused, and
Object.groupByresults have a null prototype. - IPv4 hosts in special-scheme URLs parse like WHATWG URL.
- fs paths with a null byte are refused as Node does.
Object.setPrototypeOfreturns primitive receivers, andcreateHmacwithout a key throws Node's error.- Boxed records that hold an async function link the dynamic promise unit.