Yes. V8 and other JS compilers optimize tail calls, but it's not guaranteed by the standard. (i think IE doesn't, for example)
var a = function(x) { if (x == 0) return 'done'; return a(x-1); };
a(100000);
RangeError: Maximum call stack size exceeded
http://code.google.com/p/v8/issues/detail?id=457Guess it's time for me to stop relying on that behavior...