Unify coreAliasing, externalRuntime and externalRegenerator

Merge all three transformers into the `selfContained` transformer,
as discussed in Gitter.  Name may not be final.
This commit is contained in:
Aluísio Augusto Silva Gonçalves
2015-01-18 21:15:30 -02:00
parent 8d288c01ca
commit c81cc5cda0
26 changed files with 42 additions and 86 deletions

View File

@@ -94,9 +94,7 @@ _.each({
_moduleFormatter: require("./transformers/_module-formatter"),
typeofSymbol: require("./transformers/optional-typeof-symbol"),
externalRuntime: require("./transformers/optional-external-runtime"),
coreAliasing: require("./transformers/optional-core-aliasing"),
externalRegenerator: require("./transformers/optional-external-regenerator-runtime"),
selfContained: require("./transformers/optional-self-contained"),
undefinedToVoid: require("./transformers/optional-undefined-to-void"),
// spec

View File

@@ -1,16 +0,0 @@
var t = require("../../types");
exports.optional = true;
exports.ast = {
enter: function (ast, file) {
file._regeneratorId = file.addImport("6to5-runtime/regenerator", "regeneratorRuntime");
}
};
exports.MemberExpression = function (node, parent, scope, context, file) {
var obj = node.object;
var prop = node.property;
if (!t.isReferenced(node, parent) || !t.isReferenced(obj, node)) return;
if (obj.name === "regeneratorRuntime") return t.memberExpression(file._regeneratorId, prop);
};

View File

@@ -1,10 +0,0 @@
exports.optional = true;
// In theory, it would be more appropriate to do this in `manipulateOptions`,
// but we need an identifier for the import and we can't get that before the
// AST is built.
exports.ast = {
enter: function (ast, file) {
file.opts.runtime = file.addImport("6to5-runtime/6to5", "to5Runtime").name;
}
};

View File

@@ -23,7 +23,9 @@ exports.optional = true;
exports.ast = {
enter: function (ast, file) {
file.opts.runtime = file.addImport("6to5-runtime/6to5", "to5Runtime").name;
file._coreId = file.addImport("6to5-runtime/core-js", "core");
file._regeneratorId = file.addImport("6to5-runtime/regenerator", "regeneratorRuntime");
},
exit: function (ast, file) {
@@ -67,3 +69,10 @@ exports.ast = {
});
}
};
exports.MemberExpression = function (node, parent, scope, context, file) {
var obj = node.object;
var prop = node.property;
if (!t.isReferenced(node, parent) || !t.isReferenced(obj, node)) return;
if (obj.name === "regeneratorRuntime") return t.memberExpression(file._regeneratorId, prop);
};