Example of problematic code
class MyDialog extends OO.ui.ProcessDialog { } MyDialog.static.name = 'MyDialog'; console.log(OO.ui.ProcessDialog.static.name); // => Surprise: "MyDialog"
What and why it's incompatible
OO.inheritClass does more than a class extends does: it additionally sets prototype chains on the static object on the constructor, and a super property to the parent class.
Consequently, by using ES6 class extends, the static object and super property will not work properly. (Note: this is different to the super keyword in ES6 classes!)
What to do
To make this compatible it is likely for us to introduce breaking changes. Either moving static properties to the constructor directly or create another wrapper around class extends (e.g. let MyClass = OO.finalizeInheritance(class extends OO.SomeClass{ ... })?)