> picked up most of the ML featureset
It really hasn't. In this very post he had to use a visitor to work around the fact that switch isn't an expression.
JavaScript's support for iterators is also weirdly shit. It has `.map()` but that only works on arrays. You can't map an iterator!