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(); }
function x() { return x(); }
(define (foo) (foo))
(foo)
The main problem is still that Chrome and Firefox don't support tail call elimination. Babel (6to5) and Traceur do.