setInterval(() => {
for (let i = 0; i < 10000; i++) {
new Promise(() => {});
}
}, 8000);
new Promise(() => {});
порождает цикличную ссылку, которую "сборщик мусора" не имеет право удалить и начинает раздуваться "куча" (heap) как на дрожжах.