Proper tail calls were added to the JS standard, but most implementations don't provide it. V8 even built it then removed it!
The concern is worse developer experience. An opt-in syntax has been proposed (cf loop/recur in Clojure) but no consensus.
https://www.mgmarlow.com/words/2021-03-27-proper-tail-calls-js/
miniblog.
Related Posts
Are there any developer experience advantages for `x := 1` over `let x = 1`?
A `let` keyword probably improves parsing error behaviour, and makes declarations more visible.
:= is more concise though.
I travelled recently with six electronic devices, and every single one used USB-C for charging. It was wonderful, and not an experience I've had before.
Today I learnt that A* doesn't work for an arbitrary non-planar graph, you need additional structure:
https://stackoverflow.com/q/26568552/509706
This matches my experience with difftastic so far. The graph is non-planar and my best heuristic only matches Dijkstra perf in typical cases.