Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I tried to create an infinite loop in Firefox and got a "InternalError: too much recursion". Then when I tried it in Chrome I got "Uncaught RangeError: Maximum call stack size exceeded".

function x() { return x(); }



I think you misunderstood "now". It's "now" as in ES6/ES2015, not ES5 which the browsers are running by default.


That's still expected?


It's a recursive tail call. It should run forever, like the following Scheme code.

(define (foo) (foo))

(foo)


Ah, right, yes I get what you mean.

The main problem is still that Chrome and Firefox don't support tail call elimination. Babel (6to5) and Traceur do.


They don't. They support an optimization for self recursive calls but not general tail call elimination.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: