regenerator

Source transformer enabling ECMAScript 6 generator functions in JavaScript-of-today.

Github stars Tracking Chart

regenerator Build Status

This package implements a fully-functional source transformation that
takes the syntax for generators/yield from ECMAScript 2015 or ES2015 and Asynchronous Iteration proposal 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_modules
git clone git://github.com/facebook/regenerator.git
cd regenerator
npm 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.
regenerator src lib # Transform every .js file in src and output to lib.

Programmatic usage:

var es5Source = require("regenerator").compile(es6Source).code;
var es5SourceWithRuntime = require("regenerator").compile(es6Source, {
  includeRuntime: true
}).code;

AST transformation:

var recast = require("recast");
var ast = recast.parse(es6Source);
ast = require("regenerator").transform(ast);
var es5Source = recast.print(ast);

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
.

Main metrics

Overview
Name With Ownerfacebook/regenerator
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2013-10-05 22:37:03
Pushed At2024-02-29 19:04:34
Last Commit At
Release Count205
Last Release Nameregenerator-runtime@0.14.1 (Posted on )
First Release Namev0.1.2 (Posted on )
用户参与
Stargazers Count3.8k
Watchers Count84
Fork Count1.1k
Commits Count1.1k
Has Issues Enabled
Issues Count269
Issue Open Count63
Pull Requests Count199
Pull Requests Open Count18
Pull Requests Close Count231
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private