This is not ambiguous, because that supposed ambiguity is used to prevent some combination of operators appearing without parentheses. Mathematically speaking the JS precedence relation is a partial order, unlike many other languages using a total order. I believe JS has made a correct choice here and a partially ordered precedence should be used more.