What’s New

Deno v2.9.3

v2.9.3
Added
  • Add `deno add --no-save` and `--save-optional` options
  • Add `--min-dep-age` alias
  • Support aarch64-pc-windows-msvc target for deno compile
  • Add `http2MaxHeaderListSize` option to `Deno.createHttpClient`
Fixed
  • Preserve raw imports in watch mode during bundling
  • Don't hold SurfaceData mutable borrow over window resize in canvas
  • Reject out-of-range minimum dependency ages in config
  • Block user ext imports after resolution
  • Deactivate idle TTY write handles
  • Restrict extension loaders to internal modules
  • Root slow op string coercions
  • Don't let op_desktop_send_error_report target caller-supplied URLs
  • Don't panic recycling cancelled record on native response in ext/http
  • Don't free threadsafe function on abort while refs remain in ext/napi
  • Don't resurrect a released threadsafe function in acquire in ext/napi
  • Guard sqlite deserialize during callbacks in ext/node
  • Handle UTF-16 assert source positions in ext/node
  • Handle sqlite conversion failures in ext/node
Deprecated
  • Add deprecation warning for Duplex.toWeb({ type }) DEP0201
2.9.3 / 2026.07.15
  • feat(cli): deno add --no-save and --save-optional (#36039)
  • feat(cli): add --min-dep-age alias (#35914)
  • feat(compile): support aarch64-pc-windows-msvc target (#36004)
  • feat(ext/fetch): add http2MaxHeaderListSize option to Deno.createHttpClient (#33194)
  • fix(bundle): preserve raw imports in watch mode (#36040)
  • fix(canvas): don't hold SurfaceData mut borrow over window resize (#35993)
  • fix(config): reject out-of-range minimum dependency ages (#36051)
  • fix(core): block user ext imports after resolution (#36012)
  • fix(core): deactivate idle TTY write handles (#35886)
  • fix(core): restrict extension loaders to internal modules (#36013)
  • fix(core): root slow op string coercions (#36018)
  • fix(desktop): don't let op_desktop_send_error_report target caller-supplied URLs (#35940)
  • fix(ext/http): don't panic recycling cancelled record on native response (#36053)
  • fix(ext/napi): don't free threadsafe function on abort while refs remain (#36032)
  • fix(ext/napi): don't resurrect a released threadsafe function in acquire (#36054)
  • fix(ext/node): add deprecation warning for Duplex.toWeb({ type }) DEP0201 (#35972)
  • fix(ext/node): guard sqlite deserialize during callbacks (#36023)
  • fix(ext/node): handle UTF-16 assert source positions (#36029)
  • fix(ext/node): handle sqlite conversion failures (#36024)
  • fix(ext/node): respect base64 buffer ranges (#36030)
  • fix(ext/process): don't double-close extra stdio pipe handles on Windows (#36005)
  • fix(lsp): respect lint rule exclusion for no-slow-types diagnostics (#35924)
  • fix(node): stop active read on stream close to avoid leaking Socket/TCPWrap (#35898)
  • fix(node_http2): keep header validation enabled (#36042)
  • fix(node_http2): validate serialized headers (#36041)
  • fix(npm): don't fetch registry info for deprecated packages under --cached-only (#35903)
  • fix(npm): normalize path in BYONM read permission check (#35882)
  • fix(pm): hint about minimumDependencyAge when no version is old enough (#35890)
  • fix(release): only strip Mach-O signature for x86_64-apple-darwin (#35902)
  • fix(release): strip Mach-O signature before patchver on apple targets (#35897)
  • fix(runtime): guard usage op output buffers (#36020)
  • fix(serde_v8): handle deserialization exceptions (#36021)
  • fix(web): guard encodeInto fallback result buffer (#36019)
  • fix(web): support Event subclasses with readonly toStringTag (#35920)
  • fix(worker): remove imported ops during bootstrap (#36014)
  • fix: don't print duplicate parse diagnostics (#35933)
  • perf(ext/crypto): batch randomUUID generation (#35953)
  • perf(ext/fetch): remove quadratic line buffering in EventSource (#35881)
  • perf(ext/node): cache compiled glob matchers + bump bundled minimatch to 10.2.5 (#35873)
  • perf(ext/node): fast path fs cp (#35856)
  • perf(ext/node): right-size small socket reads instead of pinning the 64KB slab (#35779)
  • perf(ext/node): speed up sqlite.StatementSync.all() and run() (#35863)
  • perf(ext/web): avoid copy-back in op_base64_atob large path (#35862)
View original