Lastest ES6 draft (rev 14) now available

Allen Wirfs-Brock allen at wirfs-brock.com
Fri Mar 8 18:46:54 PST 2013


On Mar 8, 2013, at 4:15 PM, Brandon Benvie wrote:

> ...

> Classes in general aren't straight transpilable to ES6. Not faithfully. Part of their contract is that you can use them to extend builtins, for example. I'm sure there are other little details as well.

Actually, subclass built-ins isn't tied to using class declarations.  It is more closely tied to extensions to the new operator (the default [[Construct]] internal method) so that JS code has more control over the allocation step via the @@create methods.  You probably can't directly shim that but you could transpile it into equivalent semantics.  You can also use Dunder proto and other  hacka to hijack built-in array (and other exotic object) instances and return them from @@create methods  with arbitrary [[Prototype]] values.

Class declaration themselves don't really create any object structures that you can't create using ES5 techniques plus Dunder proto.  One thing it does that you can't accomplish in ES5 is create functions (for methods) aren't constructable.  Also supporting super would require a transpiler.

Allen







> It is possible to transpile all of ES6 to ES3 though if you're willing to write a runtime and convert all operators to function calls that use the runtime to implement the delta between ES6 and ES3.
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss



More information about the es-discuss mailing list