add generators support via regenerator
This commit is contained in:
@@ -91,6 +91,7 @@ File.prototype.transform = function (ast) {
|
||||
var result = util.generate(ast, opts);
|
||||
|
||||
if (this.shebang) {
|
||||
// add back shebang
|
||||
result.code = this.shebang + result.code;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
require("es6-symbol/implement");
|
||||
require("es6-shim");
|
||||
global.regeneratorRuntime = require("regenerator/runtime");
|
||||
|
||||
@@ -30,6 +30,7 @@ transform.test = function (task, assert) {
|
||||
actualCode = recast.prettyPrint(actualAst).code;
|
||||
|
||||
if (exec) {
|
||||
require("./polyfill");
|
||||
var fn = new Function("assert", actualCode);
|
||||
fn(assert);
|
||||
}
|
||||
@@ -79,12 +80,12 @@ transform.transformers = {
|
||||
templateLiterals: require("./transformers/template-literals"),
|
||||
propertyMethodAssignment: require("./transformers/property-method-assignment"),
|
||||
defaultParameters: require("./transformers/default-parameters"),
|
||||
generators: require("./transformers/generators"),
|
||||
letScoping: require("./transformers/let-scoping"),
|
||||
restParameters: require("./transformers/rest-parameters"),
|
||||
destructuring: require("./transformers/destructuring"),
|
||||
forOf: require("./transformers/for-of"),
|
||||
unicodeRegex: require("./transformers/unicode-regex"),
|
||||
generators: require("./transformers/generators"),
|
||||
|
||||
_aliasFunctions: require("./transformers/_alias-functions")
|
||||
};
|
||||
|
||||
@@ -9,10 +9,14 @@ function Transformer(key, transformer) {
|
||||
}
|
||||
|
||||
Transformer.normalise = function (transformer) {
|
||||
_.each(transformer, function (fns, type) {
|
||||
if (_.isFunction(fns)) fns = { enter: fns };
|
||||
transformer[type] = fns;
|
||||
});
|
||||
if (_.isFunction(transformer)) {
|
||||
transformer = { ast: transformer };
|
||||
} else {
|
||||
_.each(transformer, function (fns, type) {
|
||||
if (_.isFunction(fns)) fns = { enter: fns };
|
||||
transformer[type] = fns;
|
||||
});
|
||||
}
|
||||
return transformer;
|
||||
};
|
||||
|
||||
@@ -20,6 +24,11 @@ Transformer.prototype.transform = function (file) {
|
||||
if (!this.canRun(file)) return;
|
||||
|
||||
var transformer = this.transformer;
|
||||
var ast = file.ast;
|
||||
|
||||
if (transformer.ast) {
|
||||
transformer.ast(ast);
|
||||
}
|
||||
|
||||
var build = function (exit) {
|
||||
return function (node, parent) {
|
||||
@@ -43,7 +52,7 @@ Transformer.prototype.transform = function (file) {
|
||||
};
|
||||
};
|
||||
|
||||
traverse(file.ast, {
|
||||
traverse(ast, {
|
||||
enter: build(),
|
||||
exit: build(true)
|
||||
});
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
var regenerator = require("regenerator");
|
||||
|
||||
module.exports = regenerator.transform;
|
||||
|
||||
Reference in New Issue
Block a user