Ответ
Event Loop — это часть среды выполнения (runtime), а не движка JavaScript.
Движок (например, V8) выполняет синхронный код и управляет стеком вызовов (Call Stack).
Среда выполнения (браузер, Node.js) предоставляет Web APIs (или Node APIs), очередь микрозадач (Microtask Queue) и очередь макрозадач (Task Queue). Event Loop координирует их работу, проверяя, когда стек пуст, и перемещая задачи из очередей в стек.
Пример:
console.log('Start');
setTimeout(() => console.log('Timeout'), 0);
Promise.resolve().then(() => console.log('Promise'));
console.log('End');
Вывод:
Start
End
Promise
Timeout
Здесь setTimeout (макрозадача) и Promise (микрозадача) обрабатываются Event Loop'ом.