Lets code dynamically change things that other code depends on. Including behavior in built-in object prototypes.
Has weird properties like "enumerable" on members of those prototypes, so that changing a property doesn't do the same thing as adding one... but the API for both is the same.
It's like the language is built to cause breaking changes. "Don't break the Web" indeed.
The root cause here is writing millions of lines of code in something that was originally just supposed to validate forms.