Idle — each interval tick retains a growing closure scope.
system / Context and Array growthArray instances accumulatesystem / Context or closure-related entries growA timer keeps firing and the callback closure holds onto every array it has ever created.
setInterval runs every 400ms, pushing large arrays into retained inside the callback scope. Without clearInterval, the closure never releases them.
// Fix: clear the interval on cleanup
const id = setInterval(() => { /* ... */ }, 400);
clearInterval(id);