JSFoo 2016

Tackling speed and performance for JavaScript

Rico Sta. Cruz


Inside a JS compiler

Submitted Aug 30, 2016

Hi! I’m the author of js2coffee, a JavaScript to CoffeeScript compiler, among many other JS projects. I had a lot of fun writing a JavaScript compiler (or “transpiler” to be more specific), I learned a lot, and would love to share the story of building it at JSFoo.


  1. What is a compiler?
    A short recap on the components of a compiler today explaining tokenizers, parsers, and generators.

  2. About the JS AST
    Let’s look at a brief history touching Mozilla’s Narcissus project, as well as the emergence of the estree spec used today by Esprima, Babel, Acorn, and many other tools.

  3. JavaScript transpiling
    I’ll explain the first iteration of js2coffee, the problems that plagued it, and how it was solved by Babel, Traceur, and js2coffee 2.0.

  4. The future
    Given the emergence of new developments like estree and es6, I’ll share my thoughts on what this means for the future of JavaScript.


An open mind

Speaker bio

Rico Sta. Cruz is the web developer/designer behind many popular open source JavaScript libraries in use today. He is one of the top contributors at GitHub, host of JSConf Asia 2013, and the head organizer of the Philippine JavaScript community Manila.js.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more