There's also a lot of new syntax though, which does have high costs in cases like generators, and shipping the regenerator runtime because you need your code to run everywhere.
To my knowledge they have extended syntax and added modes, but not actually made any breaking changes.
A mode was a way to avoid making breaking changes.
What I missed from my comment is not just about the engines in use, but also that all old spec confirming JavaScript should still run, in all new environments.
That is backwards compatibility.
Modern browsers will say 12, old browsers (IE 8 and down) will say 10.
They also changed to a (more) deterministic ordering of object keys and I wonder how much software behaved differently / broke as a consequence...
My "favourite" JS quirk is some of the IE versions where it would break if you called console.log without the console open, as it was undefined.
So many quirks, I think I may have slightly overstated the compatibility element.
They also changed to (at least more) deterministic ordering of object keys and I wonder how much code worked
But there's so much poorly written JS on the web that there is a chance!