v2.7.6
📦 denoView on GitHub →
✨ 7 features🐛 65 fixes🔧 26 symbols
Summary
This release introduces performance improvements across V8 string conversion, NAPI async work, and various web/node extensions. It also brings numerous bug fixes, particularly enhancing Node.js compatibility and fixing panics in core functionality.
✨ New Features
- Add cloneable resource registry for structured clone.
- Update v8 to 146.8.0 with foreground task ownership.
- Auto-detect CJS vs ESM in deno eval.
- Add MIMEType, convertProcessSignalToExitCode, Symbol.dispose for ChildProcess in ext/node.
- Support additional signals on Windows in ext/signals.
- Support array values in OTEL attributes in ext/telemetry.
- Add --cpu-prof-flamegraph to generate interactive SVG flamegraphs.
🐛 Bug Fixes
- Update typescript-go to 2026-03-09.
- Don't panic in to_v8_error when JS error builder callback fails.
- Prevent panic when multiple lazy-loaded ESM modules are loaded during TLA.
- Don't mark lines uncovered when zero-count range only partially overlaps in coverage.
- Make timer and counter state per-instance to fix OTEL console wrapping in ext/console.
- Support structuredClone for CryptoKey in ext/crypto.
- Retry on stale pooled HTTP/1.1 connections in ext/fetch.
- Retain backing store references in nonblocking calls in ext/ffi.
- Call wrap/ref finalizers at shutdown in ext/napi.
- Keep event loop alive while uv_async_t handle is active in ext/napi.
- Prevent spurious TypeError from napi_coerce_to_object on null/undefined in ext/napi.
- Accept all TypedArrays in spawnSync input option in ext/node.
- Allow IPv6 multicast addresses in UDP addMembership/dropMembership in ext/node.
- Allow passing `FileHandle` as `fd` argument for `WriteStream` and `ReadStream` in ext/node.
- Emit "connect" event on http.Server for CONNECT requests in ext/node.
- Enable 8 already-passing child_process compat tests in ext/node.
- Fix 8 Node.js compat test failures in ext/node.
- Fix AbortController signal handling in child_process in ext/node.
- Fix Buffer.concat, expose internal/buffer, implement markAsUntransferable in ext/node.
- Fix IPC message prototype for child_process JSON in ext/node.
- Fix TLA stall with native TTY handles and make stdio indestructible in ext/node.
- Fix TLS JSStreamSocket resource leak causing process hang in ext/node.
- Fix multiple deepEqual comparison issues in ext/node.
- Fix perm checks in TCPWrap in ext/node.
- Fix send() validation in child_process IPC in ext/node.
- Handle cargo features during publish in ext/node.
- Handle signal 0 in child_process.kill() in ext/node.
- Implement safe, add, rem options for crypto.generatePrime in ext/node.
- Improve Node.js crypto compatibility in ext/node.
- Improve X509Certificate Node.js compatibility in ext/node.
- Improve crypto.generateKeyPair validation in ext/node.
- Improve worker_threads path validation and error handling in ext/node.
- Include prototype env vars in child_process spawn in ext/node.
- Remove extra properties from node:fs exports in ext/node.
- Require --allow-net for udp.send in ext/node.
- Rewrite node:tty on top of uv compat in ext/node.
- Set up stdio streams on failed child_process spawn in ext/node.
- Signal listeners added via `process.once` can now be removed in ext/node.
- Support encrypted PEM export and deprecated hash option in crypto keygen in ext/node.
- Use non-blocking write in fs.writev in ext/node.
- Validate handle type in child_process send() in ext/node.
- Wrap non-Error unhandled rejections in ERR_UNHANDLED_REJECTION in ext/node.
- Don't mark server spans as error for 4xx responses in ext/otel.
- Prevent panic on FreeBSD in ext/signals.
- Add `log.iostream` attribute to console logs in ext/telemetry.
- Add exception.* attributes to OTEL log records in ext/telemetry.
- Support %j JSON format specifier in console.log in ext/web.
- Upgrade QuotaExceededError to DOMException derived interface in ext/web.
- Align organize imports output with tsgo in lsp.
- Handle read-only bin files when setting up node_modules/.bin in npm.
- Resolve bundled npm deps in packages properly when not using a `node_modules` directory in npm.
- Retain authorization header on http->https redirect in npm.
- Support npmrc certfile + keyfile in npm.
- Allow unref'd child processes to outlive parent in process.
- Fix panic when pressing Tab at beginning of line in repl.
- Apply source maps to CPU profiler output in runtime.
- Display proper error when throwing in event handlers in runtime.
- Reduce memory retention after web worker termination in runtime.
- Use XML-valid entity in flamegraph SVG in runtime.
- Allow test functions to override reported location.
- Move more node resolution errors to typescript diagnostics in tsc.
- Dispatch unload and process exit events on restart in watch.
- Support structuredClone for DOMException in web.
- Restore --env-file parent directory traversal and do not error in `deno compile` for not found env file.
- Wake event loop when V8 posts foreground tasks from background threads.
Affected Symbols
ChildProcessCryptoKeyhttp.Serverfs.WriteStreamfs.ReadStreamFileHandlecrypto.generatePrimeX509Certificateworker_threadsprocess.oncenode:fsudp.sendnode:ttyfs.writevchild_process.sendERR_UNHANDLED_REJECTIONconsole.logQuotaExceededErrorDOMExceptionnode_modules/.binfs.cpSyncTextEncoderTextDecoderURLPatternBuffer.base64FsFile.writable