A memory leak can come from a variable that no running code reads. In V8, closures created in the same function share one context object. If a long-lived closure, say an interval callback, keeps that context alive, a large array that only a finished closure used stays in memory as well.

What the November update adds

The November 2026 DevTools update (20 October) says the Memory panel now detects unused closure variables that remain retained in V8 execution contexts. Take a heap snapshot and it flags these dead context fields, ranked by how much memory they hold.

Sources

I post short notes like this on LinkedIn.

Cream card: "The leak is a variable nothing reads." Heap snapshots now flag dead context fields.

Have an Angular app that needs a senior hand?

Tell me about your app and what is slowing your team down. We go through it on a call and you leave with concrete next steps.