Change8

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