continuum

A JavaScript (ES6) bytecode virtual machine written in JavaScript

Continuum - A JavaScript Virtual Machine Built in JavaScript

Continuum is a JavaScript virtual machine built in JavaScript. It assembles bytecode from sourcecode and executes it an ES6 runtime environment. The code of the VM is written in ES3 level JavaScript, which means it can run in browsers as old as IE6. (though currently it's only been tested in IE9+ and there's probably some kinks to work out in older IE's).

ES6 is still an unfinished specification and is still a moving target

Usage

Documentation coming soon.

For now use the debugger interface at http://benvie.github.com/continuum.

Compatibility

Continuum probably works in every modern engine, but has not been tested.

Currently known to work in:

  • Chrome 23+
  • Firefox 15+
  • IE9+

Will soon work in:

  • IE6-8

ES6 Implementation Status

  • destructuring assignment
  • destructuring arguments
  • spread array initializer
  • spread arguments
  • spread destructuring
  • rest parameters
  • classes and super
  • is and isnt operators
  • arrow functions
  • block scope
  • new Math functions
  • new Object functions
  • new String functions
  • concise object literal method syntax
  • proto (not as special accessor on Object.prototype yet though)
  • Proxy and Reflect
  • Map, Set, WeakMap
  • Iterators and for..of
  • Tail call optimization
  • Templates
  • Comprhensions
  • Generators
  • Private Names
  • Partial implementation of Modules
  • Proper implementation of Modules
  • Binary data api

TODO

  • Much work on optimizations
  • Serializable state for saving applications while they run
  • Expanded debugger and eventually full dev environment built around continuum
  • Move more runtime semantics to bytecode
  • Bootstrap the runtime on an even simpler bytecode interpreter