Thanks for writing it! Reading the source was an easy intro to babel for me when I was writing a trampoline-based TCO plugin.
Chrome has removed support for tail recursion (it was briefly enabled). Does anybody know if there are plans to reenable it? Or are they still lobbying for an explicit keyword approach?
No. Last I heard, they were trying to remove proper tail calls from the spec completely. Safari, I believe, is the only browser where it is currently implemented.
Why? I recall when ES6 first came out, Crockford gave a talk on the good and bad of it. He hated that classes were brought into the language, but was super bullish on tail calls, saying it was the most important new feature.
You’re going to have to ask the Chrome and Firefox teams about that. I’m guessing there’s performance issues—perhaps every function invocation needs to check if it’s a proper tail call?