ES6 will support proper tail calls, whilst still offering reasonable tracebacks! https://webkit.org/blog/6240/ecmascript-6-proper-tail-calls-in-webkit/ (recursion is now more useful!)