regenerator
This package implements a fully-functional source transformation that
takes the proposed syntax for generators/yield
from future versions of
JS (ECMAScript6 or ES6, experimentally implemented in Node.js v0.11) and
spits out efficient JS-of-today (ES5) that behaves the same way.
A small runtime library (less than 1KB compressed) is required to provide the
wrapGenerator
function. You can install it either as a CommonJS module
or as a standalone .js file, whichever you prefer.
Installation
From NPM:
npm install -g regenerator
From GitHub:
cd path/to/node_modulesgit clone git://github.com/facebook/regenerator.gitcd regeneratornpm install .npm test
Usage
You have several options for using this module.
Simplest usage:
regenerator es6.js > es5.js # Just the transform. regenerator --include-runtime es6.js > es5.js # Add the runtime too.
Programmatic usage:
var es5Source = es6Source;var es5SourceWithRuntime = es6Source includeRuntime: true ;
AST transformation:
var recast = ;var ast = recast;ast = ;var es5Source = recast;
How can you get involved?
The easiest way to get involved is to look for buggy examples using the sandbox, and when you find something strange just click the "report a bug" link (the new issue form will be populated automatically with the problematic code).
Alternatively, you can fork the repository, create some failing tests cases in test/tests.es6.js, and send pull requests for me to fix.
If you're feeling especially brave, you are more than welcome to dive into the transformer code and fix the bug(s) yourself, but I must warn you that the code could really benefit from better implementation comments.