Как сказал ds [.code], setTimeout создает ответвление от основного выполнения программы, так что в этом коде, по сути, не выполняется Repl(), т.к window.close() срабатывает на полсекунды раньше первого Repl().
К сожалению, в javascript нет реализаций функций остановки выполнения основной программы, по типу sleep или wait.
Как решение, можно запускать эту функцию в setInterval и считать кол-во вызовов, либо разницу во времени.
|