Platinum Partner
css,javascript,ecmascript.next

Google’s Traceur: compile ECMAScript.next to JavaScript on the fly

Google’s Traceur allows you to use ECMAScript.next features right now: Write ECMAScript.next code and use a special script type. Then the first script you load is Traceur which ensures that all your new code is compiled to JavaScript on the fly.

Getting started

<html>
  <head>
    <script src="http://traceur-compiler.googlecode.com/.../traceur.js"
        type="text/javascript"></script> 
    <script src="http://traceur-compiler.googlecode.com/.../bootstrap.js"
        type="text/javascript"></script>
    <script type="text/traceur">
        // Your ECMAScript.next code goes here
    </script>
  </head>
  ...
</html>


Supported features

Highlights (details: see language features):

  • Inheritance: classes, traits
  • Modules
  • Iterators, for-each loop, generators, deferred functions
  • Block-scoped let bindings
  • Destructuring assignment
  • Parameter handling: default values, rest parameters, spread operator


Caveats

Brendan Eich mentioned Traceur in his JSConf.US presentation. And he was unhappy about a few details. You should also read Alex Russell’s response to his complaints.

  • The project raises concerns about openwashing: Is Google’s actual agenda behind this open source project to control where ECMAScript.next is going? Probably not, but the following points set a tone that is slightly off.
  • Traceur has been created in secret, without involving TC39, and then presented for maximum “wow” effect at JSConf (Eich calls this “delayed open source” which can be a means of control). In contrast, Mozilla’s Narcissus has always been developed in the open, to foster discussion with the community.
  • Some features are different from current ES.next proposals. This risks forking the community.
  • The JSConf Traceur slides are Chrome-only, neither (mobile) Safari nor Firefox works. Alex Russell’s explanation: “As for the slides, that looks to be a bug in Traceur support for FF which we’re still sorting through.” But the problem exists on Safari, too, which does not bode well for cross-browser compatibility.

Let’s hope these are just initial issues, because Traceur is a cool project. This kind of on-the-fly compiling is the way to ensure a smooth transition from ECMAScript 5 to ECMAScript.next.

Related reading

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}