GitXplorerGitXplorer
f

regenerator

public
3823 stars
1158 forks
84 issues

Commits

List of commits on branch main.
Verified
72fbbb7c626af01746f692041e0f04accdd90300

Bump @babel/runtime from 7.22.5 to 7.23.2 (#706)

ddependabot[bot] committed 9 months ago
Verified
56cf3ad6c613f896914a657a997e9ffd881ba012

Bump mocha from 10.1.0 to 10.2.0 (#685)

ddependabot[bot] committed 9 months ago
Verified
34f2fc1aef5721bb6ca0ebe383b27c13a6308ba3

Bump debug from 4.1.1 to 4.3.4 (#705)

ddependabot[bot] committed 9 months ago
Verified
1037417e5f6f8b3556b00a180c6e4376532336d2

Bump recast from 0.23.3 to 0.23.4 (#689)

ddependabot[bot] committed 9 months ago
Verified
d66afa43bce3c88343108a407d9eb17443d21399

Bump browserify-sign from 4.2.1 to 4.2.2 (#708)

ddependabot[bot] committed 9 months ago
Verified
50ed6aaee1a9b4d176e2255f8caba833d1dac31b

Fix yield * of falsy values (#711)

nnicolo-ribaudo committed 9 months ago

README

The README file for this repository.

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.