Jan 4, 2021
What I was implying is that OOP is fully supported in JS through Single inheritance.
Your points (except for abstract classes) are not related directly to OOP.
Besides, Class is, as you correctly point out, a sugar syntax for prototype inheritance.
But a Class is prototype for an Object, so actually there is no difference between prototype inheritance and "classic" inheritance.
There are, however, differences in how JS implements the "new" operator, how the keyword "this" works and the typical syntax of OOP languages.