стек вызовов функций, есть в любом отладчике
суть в том, что foo не вызывает сама себя, начиная со второго раза ее вызывает система (браузер)
а первый вызов происходит как результат возникновения события, либо из обработчика вызывается (не знаю как у тебя реализовано)