From 80fed5f3952ca1f1348e6fdfa5440cb0c5b296fd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 31 Mar 2015 01:27:43 +1100 Subject: [PATCH] take into consideration default export specifiers in common module formatter - fixes #1071 --- src/babel/transformation/modules/_default.js | 2 +- src/babel/transformation/modules/amd.js | 4 ++++ .../transformation/es6.modules-amd/exports-default/actual.js | 1 + .../es6.modules-amd/exports-default/expected.js | 1 + .../es6.modules-common/exports-default/actual.js | 1 + .../es6.modules-common/exports-default/expected.js | 1 + .../transformation/es6.modules-umd/exports-default/actual.js | 1 + .../es6.modules-umd/exports-default/expected.js | 1 + 8 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/babel/transformation/modules/_default.js b/src/babel/transformation/modules/_default.js index b0864376b4..cdcf45a616 100644 --- a/src/babel/transformation/modules/_default.js +++ b/src/babel/transformation/modules/_default.js @@ -63,7 +63,7 @@ var exportsVisitor = traverse.explode({ } if (!t.isExportDefaultDeclaration(node)) { - var onlyDefault = node.specifiers && t.isExportDefaultSpecifier(node.specifiers[0]) && node.specifiers.length === 1; + var onlyDefault = node.specifiers && node.specifiers.length === 1 && t.isSpecifierDefault(node.specifiers[0]); if (!onlyDefault) { formatter.hasNonDefaultExports = true; } diff --git a/src/babel/transformation/modules/amd.js b/src/babel/transformation/modules/amd.js index 595a0011c0..69192815ff 100644 --- a/src/babel/transformation/modules/amd.js +++ b/src/babel/transformation/modules/amd.js @@ -91,6 +91,10 @@ export default class AMDFormatter extends DefaultFormatter { ])); } + exportSpecifier() { + CommonFormatter.prototype.exportSpecifier.apply(this, arguments); + } + exportDeclaration(node) { if (this.doDefaultExportInterop(node)) { this.passModuleArg = true; diff --git a/test/core/fixtures/transformation/es6.modules-amd/exports-default/actual.js b/test/core/fixtures/transformation/es6.modules-amd/exports-default/actual.js index 62923e5c15..74f2130fdf 100644 --- a/test/core/fixtures/transformation/es6.modules-amd/exports-default/actual.js +++ b/test/core/fixtures/transformation/es6.modules-amd/exports-default/actual.js @@ -6,3 +6,4 @@ export default function () {} export default class {} export default function foo () {} export default class Foo {} +export { foo as default }; diff --git a/test/core/fixtures/transformation/es6.modules-amd/exports-default/expected.js b/test/core/fixtures/transformation/es6.modules-amd/exports-default/expected.js index c5662089c9..3dfc0ccccd 100644 --- a/test/core/fixtures/transformation/es6.modules-amd/exports-default/expected.js +++ b/test/core/fixtures/transformation/es6.modules-amd/exports-default/expected.js @@ -28,4 +28,5 @@ define(["exports", "module"], function (exports, module) { }; module.exports = Foo; + module.exports = foo; }); diff --git a/test/core/fixtures/transformation/es6.modules-common/exports-default/actual.js b/test/core/fixtures/transformation/es6.modules-common/exports-default/actual.js index 62923e5c15..74f2130fdf 100644 --- a/test/core/fixtures/transformation/es6.modules-common/exports-default/actual.js +++ b/test/core/fixtures/transformation/es6.modules-common/exports-default/actual.js @@ -6,3 +6,4 @@ export default function () {} export default class {} export default function foo () {} export default class Foo {} +export { foo as default }; diff --git a/test/core/fixtures/transformation/es6.modules-common/exports-default/expected.js b/test/core/fixtures/transformation/es6.modules-common/exports-default/expected.js index e76142bd92..ca9e402df3 100644 --- a/test/core/fixtures/transformation/es6.modules-common/exports-default/expected.js +++ b/test/core/fixtures/transformation/es6.modules-common/exports-default/expected.js @@ -27,3 +27,4 @@ var Foo = function Foo() { }; module.exports = Foo; +module.exports = foo; diff --git a/test/core/fixtures/transformation/es6.modules-umd/exports-default/actual.js b/test/core/fixtures/transformation/es6.modules-umd/exports-default/actual.js index 62923e5c15..74f2130fdf 100644 --- a/test/core/fixtures/transformation/es6.modules-umd/exports-default/actual.js +++ b/test/core/fixtures/transformation/es6.modules-umd/exports-default/actual.js @@ -6,3 +6,4 @@ export default function () {} export default class {} export default function foo () {} export default class Foo {} +export { foo as default }; diff --git a/test/core/fixtures/transformation/es6.modules-umd/exports-default/expected.js b/test/core/fixtures/transformation/es6.modules-umd/exports-default/expected.js index 6dcb9dc68f..f861e51989 100644 --- a/test/core/fixtures/transformation/es6.modules-umd/exports-default/expected.js +++ b/test/core/fixtures/transformation/es6.modules-umd/exports-default/expected.js @@ -34,4 +34,5 @@ }; module.exports = Foo; + module.exports = foo; });