Deno 2.7.6 : 59 bugs corrigés
mer, 18/03/2026 - 14:24
Deno annonce la disponibilité de la version 2.7.6. Cette version corrige 59 bugs et quelques améliorations notamment sur les performances V8, fs.cpSync est implémenté en Rust, optimisation node:buffer pour encodage et décodage base64.
Liste complète des modifications :
- feat(core): add cloneable resource registry for structured clone (#32672)
- feat(core): update v8 to 146.8.0 with foreground task ownership (#32771)
- feat(eval): auto-detect CJS vs ESM in deno eval (#32472)
- feat(ext/node): add MIMEType, convertProcessSignalToExitCode, Symbol.dispose
for ChildProcess (#32793) - feat(ext/signals): support additional signals on Windows (#32689)
- feat(ext/telemetry): support array values in OTEL attributes (#32748)
- feat: add --cpu-prof-flamegraph to generate interactive SVG flamegraphs
(#32572) - fix(cli): update typescript-go to 2026-03-09 (#32656)
- fix(core): don't panic in to_v8_error when JS error builder callback fails
(#32749) - fix(core): prevent panic when multiple lazy-loaded ESM modules are loaded
during TLA (#32769) - fix(coverage): don't mark lines uncovered when zero-count range only partially
overlaps (#32601) - fix(ext/console): make timer and counter state per-instance to fix OTEL
console wrapping (#32719) - fix(ext/crypto): support structuredClone for CryptoKey (#32674)
- fix(ext/fetch): retry on stale pooled HTTP/1.1 connections (#32566)
- fix(ext/ffi): retain backing store references in nonblocking calls (#32775)
- fix(ext/napi): call wrap/ref finalizers at shutdown (#32592)
- fix(ext/napi): keep event loop alive while uv_async_t handle is active
(#32702) - fix(ext/napi): prevent spurious TypeError from napi_coerce_to_object on
null/undefined (#32695) - fix(ext/node): accept all TypedArrays in spawnSync input option (#32712)
- fix(ext/node): allow IPv6 multicast addresses in UDP
addMembership/dropMembership (#32739) - fix(ext/node): allow passing
FileHandleasfdargument forWriteStream
andReadStream(#32770) - fix(ext/node): emit "connect" event on http.Server for CONNECT requests
(#32599) - fix(ext/node): enable 8 already-passing child_process compat tests (#32710)
- fix(ext/node): fix 8 Node.js compat test failures (#32755)
- fix(ext/node): fix AbortController signal handling in child_process s…
(#32713) - fix(ext/node): fix Buffer.concat, expose internal/buffer, implement
markAsUntransferable (#32760) - fix(ext/node): fix IPC message prototype for child_process JSON (#32731)
- fix(ext/node): fix TLA stall with native TTY handles and make stdio
indestructible (#32792) - fix(ext/node): fix TLS JSStreamSocket resource leak causing process hang
(#32325) - fix(ext/node): fix multiple deepEqual comparison issues (#32763)
- fix(ext/node): fix perm checks in TCPWrap (#32721)
- fix(ext/node): fix send() validation in child_process IPC (#32779)
- fix(ext/node): handle cargo features during publish (#32636)
- fix(ext/node): handle signal 0 in child_process.kill() (#32294)
- fix(ext/node): implement safe, add, rem options for crypto.generatePrime
(#32618) - fix(ext/node): improve Node.js crypto compatibility (#32690)
- fix(ext/node): improve X509Certificate Node.js compatibility (#32671)
- fix(ext/node): improve crypto.generateKeyPair validation (#32620)
- fix(ext/node): improve worker_threads path validation and error handling
(#32791) - fix(ext/node): include prototype env vars in child_process spawn (#32699)
- fix(ext/node): remove extra properties from node:fs exports (#32670)
- fix(ext/node): require --allow-net for udp.send (#32774)
- fix(ext/node): rewrite node:tty on top of uv compat (#32777)
- fix(ext/node): set up stdio streams on failed child_process spawn (#32698)
- fix(ext/node): signal listeners added via
process.oncecan now be removed
(#32606) - fix(ext/node): support encrypted PEM export and deprecated hash option in
crypto keygen (#32703) - fix(ext/node): use non-blocking write in fs.writev (#32673)
- fix(ext/node): validate handle type in child_process send() (#32711)
- fix(ext/node): wrap non-Error unhandled rejections in ERR_UNHANDLED_REJECTION
(#32535) - fix(ext/otel): don't mark server spans as error for 4xx responses (#32722)
- fix(ext/signals): prevent panic on FreeBSD (#32518)
- fix(ext/telemetry): add
log.iostreamattribute to console logs (#32723) - fix(ext/telemetry): add exception.* attributes to OTEL log records (#32726)
- fix(ext/web): support %j JSON format specifier in console.log (#32684)
- fix(ext/web): upgrade QuotaExceededError to DOMException derived interface
(#32244) - fix(lsp): align organize imports output with tsgo (#32677)
- fix(npm): handle read-only bin files when setting up node_modules/.bin
(#32632) - fix(npm): resolve bundled npm deps in packages properly when not using a
node_modulesdirectory (#32679) - fix(npm): retain authorization header on http->https redirect (#29878)
- fix(npm): support npmrc certfile + keyfile (#32655)
- fix(process): allow unref'd child processes to outlive parent (#32563)
- fix(repl): fix panic when pressing Tab at beginning of line (#32750)
- fix(runtime): apply source maps to CPU profiler output (#32634)
- fix(runtime): display proper error when throwing in event handlers (#32663)
- fix(runtime): reduce memory retention after web worker termination (#32617)
- fix(runtime): use XML-valid entity in flamegraph SVG (#32716)
- fix(test): allow test functions to override reported location (#32732)
- fix(tsc): move more node resolution errors to typescript diagnostics (#32697)
- fix(watch): dispatch unload and process exit events on restart (#32664)
- fix(web): support structuredClone for DOMException (#32675)
- fix: restore --env-file parent directory traversal and do not error in
deno compilefor not found env file (#32686) - fix: wake event loop when V8 posts foreground tasks from background threads
(#32450) - perf(core): optimize V8-to-Rust string conversion with ValueView (#32688)
- perf(ext/napi): use threadpool for async work instead of spawning threads
(#32776) - perf(ext/node): move
fs.cpSyncimplementation to rust (#32687) - perf(ext/web): add write buffering for FsFile.writable streams (#32676)
- perf(ext/web): optimize TextEncoder/TextDecoder hot paths (#32735)
- perf(ext/web): optimize URLPattern ops to reduce serde overhead and GC
pressure (#32766) - perf(ext/web): optimize node:buffer base64 encode/decode (#32647)
- perf(ext/web): reduce promise allocations in streams (#32652)
- perf(fmt): speed up file diffing (#30644)
- perf(install): avoid unnecessary package info fetches when running lifecycle
scripts (#32653) - perf(linux): trim glibc malloc arena after module loading (#32662)
- perf(lsp): replace dissimilar with imara-diff (#32700)
- perf(npm): run lifecycle scripts in parallel (#32666)

