Aby dodać do odpowiedzi tutaj, może to również zależeć od funkcji związanych z rekurencją. Na przykład, po prostu dodając kilka parametrów do funkcji może zmienić wynik:
var i=0;
function inc() {
i++;
inc();
}
inc();
daje mi 20923, ale
var i=0;
function inc(j, k, l) {
i++;
inc(l, k, j);
}
inc(1, 2, 3);
donosi 13949 (testowane w konsoli w Chromium 39). Firefox 34 daje odpowiednio 25085 i 13572.
Dodanie bloku try/catch wokół ciała zerowej argumentacji inc()
daje 11413 klatek w Chromium i 13161 w Firefoksie. Zarówno 3 argumenty, jak i blok try/catch, 8967 w przeglądarce Chrome i 7517 w Firefoksie.
Moim dowodem jest to, że aplikacja działająca w pobliżu głębi stosu w przeglądarce może prawdopodobnie to wykombinować tylko na podstawie empirycznych pomiarów funkcji podobnych do używanych w aplikacji.
Porzuciłem to razem po bardzo szybkim przeczytaniu artykułu: http://jsfiddle.net/TdWTs/ – endemic
@endemic Dobra robota. Zrobiłem przeglądarkękopu dla tego problemu pod adresem http://adamrich.name/recursion.html. Jeśli uda nam się przekonać wiele osób do uruchomienia testu, możemy uzyskać aktualną tabelę limitów recusrion według przeglądarki i systemu operacyjnego. – Adam
Moje umiejętności czytania ze zrozumieniem wymagają więcej pracy ... całkowicie pominięto część, w której wykonano już test w przeglądarce Browserscope. Uruchomiłem to w kilku przeglądarkach, co zaskakujące, że Chrome ma najniższy limit! No cóż, współpracownik martwił się o kilkaset rekursywnych iteracji (wat), a więc i moje zainteresowanie odkryciem prawdy. – endemic