Strange Loop

September 26-28 2018

Stifel Theatre

St. Louis, MO

Continuum: A JS (ES6) VM Written in JS (ES3)

Continuum is an ECMAScript 6 (draft) virtual machine written in ECMAScript 3. In this talk we'll go through an overview of what Continuum does, how it works, and why it's useful.

Continuum maintains compatibility with all popularly used JS engines in use today (IE8, modern browsers, Node.js). While Continuum isn't efficient enough to use in production code, we will explore how it is useful for quickly experimenting with new language features, try new ways of debugging and visualization, and a view of the ECMAScript specification as implemented in terms of itself.

We will walk through the lifetime of a line of JavaScript code: parsing the source code, compilation to bytecode, linking between modules, and interpreting the bytecode in an ES6 runtime environment using a stack machine. We will see how Continuum relies on the host engine for some functionality such as memory management, but still implements nearly the entire ES6 specification in idiomatic JavaScript.

Finally, we will visit the JavaScript standard library in Continuum. The stdlib is self-hosted, having been written in ES6, and comprises approximately 30% of Continuum's code. We will look at a few of the implementations of JavaScript builtin classes such as Array, Function, Map, and Object.

Brandon Benvie

Mozilla

Brandon Benvie is a Developer Tools Engineer at Mozilla working on the Firefox devtools. He has long focused on making tools and libraries for developers and has an obsession for using colors to convey information.