Change8

v2.5.2

Breaking Changes
📦 denoView on GitHub →
1 breaking5 features🐛 12 fixes🔧 10 symbols

Summary

Deno 2.5.2 introduces LSP support for BDD-style tests and several Node.js compatibility fixes for fs and crypto modules. It also includes performance optimizations for V8 scoping and module watching.

⚠️ Breaking Changes

  • Direct execution of .bat and .cmd files on Windows is now rejected for security/stability; use a shell or explicit interpreter instead.

Migration Steps

  1. If running on Windows, ensure scripts do not attempt to execute .bat or .cmd files directly.
  2. Update configuration files to utilize the new top-level permissions key if desired.

✨ New Features

  • Added LSP support for describe/it test blocks in the editor.
  • Added Uint8Array base64 and hex methods to type definitions.
  • Added top-level permissions key support to the configuration file schema.
  • Improved performance by implementing stack-allocated V8 scopes and negative caching for package.json.
  • Optimized LSP by skipping file watching for node_modules.

🐛 Bug Fixes

  • Fixed HTML entrypoint reloading when using the --watch flag.
  • Resolved issue where compilerOptions.paths was not respected during checks.
  • Fixed --frozen flag being ignored in the deno bundle command.
  • Enabled coverage data collection for Web Workers.
  • Updated stream type declarations to correctly use Promise<void>.
  • Fixed fs.readFile and fs.readFileSync to properly assert encoding.
  • Improved Node.js compatibility for fs.statfs and fs.statfsSync.
  • Allowed ArrayBuffer inputs for crypto.timingSafeEqual.
  • Fixed base64 encoding issues in crypto Cipheriv and Decipheriv.
  • Ensured User-Agent headers are sent during WebSocket handshakes.
  • Fixed proxy URL handling in fetch.
  • Restored Windows debug information.

🔧 Affected Symbols

Uint8Arrayfs.readFilefs.readFileSyncfs.statfsfs.statfsSynccrypto.timingSafeEqualcrypto.Cipherivcrypto.DecipherivReadableStreamWritableStream