Changelog

denoland/deno · · 31 commits

Node compat gets TLS, V8, and HTTP upgrades

Major Node polyfills landed for compile cache, GC profiling, startupSnapshot, TLS/socket behavior, and async_hooks-compatible HTTP server handling.

Node compatibility broadens across core APIs

The day’s biggest work adds or fixes several high-value Node surfaces: module.enableCompileCache() and related compile-cache plumbing (divybot04cbd8c), v8.GCProfiler (divybotc41feee), v8.startupSnapshot (divybota7fb5ef), v8.queryObjects() / util.queryObjects() (divybotffd7a57), process._debugEnd() / _debugProcess() (divybot105a9b0), and Module._stat (divybot565302b). These fill in real Node API gaps that previously caused load-time or runtime failures in compat tests and user code.

Networking and TLS behavior move much closer to Node

Several fixes tighten socket, HTTP, and TLS semantics: executionAsyncResource() now works per-request in HTTP server flows (divybot07eb330), shouldUpgradeCallback is supported (bartlomiejua38a98b), TLS wrapping preserves raw socket connect timing (bartlomieju8ea25a3), TLS peer cert chains are completed (bartlomieju2668e09), session resumption is isolated across strict vs. insecure clients (bartlomieju9346ea7), and useUserBuffer() is implemented for TCP/Pipe/TLS reads (divybotf828b5b). Together these close a cluster of hard-to-debug compat bugs around connection lifecycle, upgrade handling, and encrypted socket I/O.

Compat fixes unblock inspector, VM, async hooks, and eval behavior

Inspector eval scripts now report as [eval] instead of synthetic file URLs (divybot01e228d), vm.createContext no longer panics during teardown (divybotd9cec98), and util.aborted() now weakly tracks resources so long-lived abort signals don’t retain dead objects (lunadogbot57d43c5). The repo also gained process._debugEnd()/_debugProcess() support and internal/net exposure to satisfy Node internals and test expectations.

Other misc changes

  • Enabled a large batch of passing Node compat tests; many more were added, while a few flaky or unsupported cases were ignored (littledivy2270082).
  • Ignored async-loader, ShadowRealm, internal JSStream, and several architecture-specific failing Node compat tests (bartlomiejucee2067, divybot6dca921, littledivydc3a0e5, littledivyd71f9a7, divybot19e63a0, divybota9bc206).
  • Added regression coverage for active handles on exit, vm teardown, v8, util.aborted, task arg escaping, inspector eval URLs, and TLS/http behavior (divybot898ed17, divybota7fb5ef, lunadogbot57d43c5, fibibot98ce50c, divybot01e228d, bartlomieju41523bf, bartlomiejuff55026, bartlomieju2668e09).
  • Minor Node compat config and test-suite toggles, plus a few small compatibility tweaks and bug fixes (bcd6e4f, 88dbd89, 917b232, c2b5033, eb042fb, 4 remaining low-impact commits).