For many languages like JavaScript, tail-call optimization is usually not implemented.
However, actually, ECMAScript implementations require proper tail call accroding to here. That is said a JS interpreter need to do tail call optimization to support PTC. Though many implementations don't really implement it.
The "usually" here is not really "usually", for example, TCO's removal from v8 is by design, and Chakra didn't support it due to ABI problems.
In the notes of benchmark, it is said
However, actually, ECMAScript implementations require proper tail call accroding to here. That is said a JS interpreter need to do tail call optimization to support PTC. Though many implementations don't really implement it.
The "usually" here is not really "usually", for example, TCO's removal from v8 is by design, and Chakra didn't support it due to ABI problems.