kobezzza,
короче, не буду лить воды. Я проверил в ноде на следующем коде:
Код:
|
fs=require("fs")
write=function(){
fs.writeFileSync("./counter.txt", counter)
}
fu=function(){counter++; write(); fu()}
counter=0
fu()
path.js:163
resolvedTail = normalizeArray(resolvedTail.split(/[\\\/]+/).filter(f),
^
RangeError: Maximum call stack size exceeded |
Эта функция 100% содержит хвосторекурсивный вызов. Если бы оптимизация была, этот код выполнялся бы бесконечно. Как видишь, никаких эвалов и прочих Function тут нет. Выполнение остановились на 25104
Попробуй на своей модной новейшей ноде, потом расскажешь. А пока я засчитываю тебе слив. В JS нет оптимизации хвостовой рекурсии.