cpSync now skips timestamp updates for untouched files (
7fab656)
When cpSync() is run with force: false and preserveTimestamps: true, existing destination files that are left in place no longer get their source timestamps copied onto them. That brings the native directory-copy path in line with the JavaScript walk used by filtered copies and avoids silently mutating skipped files.
Fast FFI now validates pointer BigInts in optimized calls (
463711a)
Node now forces the JS-side wrapper for fast FFI signatures that include pointer arguments, so oversized or negative BigInts are rejected consistently even after optimization. This closes a correctness hole where cold calls threw but optimized calls could truncate values and pass bad pointers to native code.
FFI buffer copies fail with a catchable error instead of aborting (
de073c5)
toArrayBuffer() now allocates with a return-null failure mode and throws ERR_MEMORY_ALLOCATION_FAILED when the backing store cannot be created. That matches toBuffer() and turns a process-killing OOM path into a normal exception.
Builtin exposure policy is centralized in the JS loader (
4791219)
The rules for scheme-only and option-gated builtins were moved into realm.js, with the pre-execution bootstrap now enabling them through a shared policy path. This is a notable loader refactor that makes exposure rules easier to reason about and keeps policy data in one place.
TypedArray.prototype.set fixes immutable-buffer check order (
a7a9784)
Node picked up a V8 patch that corrects the ordering of TypedArray.prototype.set checks for immutable array buffers and related source validation. This aligns behavior with the spec and prevents incorrect side effects during set().


