babel/lib/6to5/transformation/transformers/optional-external-regenerator-runtime.js
Aluísio Augusto Silva Gonçalves d4cc8fefd1 Add transformer to import regeneratorRuntime from a module
Thanks to facebook/regenerator#167 Regenerator's runtime can be now
required as a module (though not in an easily self-containable way).
This transformer, together with `coreAliasing` and `externalRuntime`,
allows users to ditch a runtime dependency on `6to5`/`6to5-core` to
depend directly on `core-js` and `regenerator`.
2015-01-18 17:33:56 -02:00

17 lines
510 B
JavaScript

var t = require("../../types");
exports.optional = true;
exports.ast = {
enter: function (ast, file) {
file._regeneratorId = file.addImport("regenerator/runtime-module", "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);
};