The semantics of JS classes are still different in enough subtle ways: constructors and constructor subclassing, (lack of) object properties, hoisting, etc. That is on top of the new keywords, new function syntax, etc. All that needs to be mapped onto the model of &quot;classical&quot; Javascript in order to completely understand the language. There are enough gotchas there to disqualify JS classes from being simply sugar.