@baldur BTW I never understood the whole Liskov substitution thing until this post. It's not just a problem for built-ins, but also web component libraries that allow subclassing. Any change to the superclass is effectively a breaking change unless the subclass automatically gets the new behavior somehow (e.g. super.connectedCallback).
@nolan @baldur This was always true! We wanted to add traits or some other factoring mechanism to allow for decomposition, but TC39 could barely do intrinsic subclassing w/ `class` syntax in a ~timely way.