diff --git a/lib/6to5/transformation/modules/_default.js b/lib/6to5/transformation/modules/_default.js index 908180f1c3..4d3f6d3359 100644 --- a/lib/6to5/transformation/modules/_default.js +++ b/lib/6to5/transformation/modules/_default.js @@ -27,7 +27,7 @@ function DefaultFormatter(file) { } DefaultFormatter.prototype.doDefaultExportInterop = function (node) { - return node.default && !this.noInteropRequireExport && !this.hasNonDefaultExports; + return t.isSpecifierDefault(node) && !this.noInteropRequireExport && !this.hasNonDefaultExports; }; DefaultFormatter.prototype.bumpImportOccurences = function (node) { diff --git a/lib/6to5/transformation/modules/common.js b/lib/6to5/transformation/modules/common.js index f2ce247b56..2441385fe8 100644 --- a/lib/6to5/transformation/modules/common.js +++ b/lib/6to5/transformation/modules/common.js @@ -64,6 +64,17 @@ CommonJSFormatter.prototype.importDeclaration = function (node, nodes) { }, true)); }; +CommonJSFormatter.prototype.exportSpecifier = function (specifier, node, nodes) { + if (this.doDefaultExportInterop(node)) { + nodes.push(util.template("exports-default-assign", { + VALUE: t.getSpecifierId(specifier) + }, true)); + return; + } + + DefaultFormatter.prototype.exportSpecifier.apply(this, arguments); +}; + CommonJSFormatter.prototype.exportDeclaration = function (node, nodes) { if (this.doDefaultExportInterop(node)) { var declar = node.declaration; diff --git a/lib/6to5/types/index.js b/lib/6to5/types/index.js index 52545f04d6..1491d7cbb4 100644 --- a/lib/6to5/types/index.js +++ b/lib/6to5/types/index.js @@ -760,7 +760,7 @@ t.getSpecifierId = function (specifier) { */ t.isSpecifierDefault = function (specifier) { - return specifier.default || t.isIdentifier(specifier.id) && specifier.id.name === "default"; + return specifier.default || t.isIdentifier(specifier.id, { name: "default" }); }; toFastProperties(t);