diff --git a/lib/6to5/transformation/transformers/internal/modules-split.js b/lib/6to5/transformation/transformers/internal/modules-split.js index 36d9701dc7..3610bebe93 100644 --- a/lib/6to5/transformation/transformers/internal/modules-split.js +++ b/lib/6to5/transformation/transformers/internal/modules-split.js @@ -2,13 +2,20 @@ var t = require("../../../types"); -exports.ExportDeclaration = function (node) { +exports.ExportDeclaration = function (node, parent, scope) { var declar = node.declaration; if (node.default) { if (t.isClassDeclaration(declar)) { node.declaration = declar.id; return [declar, node]; + } else if (t.isClassExpression(declar)) { + var temp = scope.generateUidIdentifier("default"); + declar = t.variableDeclaration("var", [ + t.variableDeclarator(temp, declar) + ]); + node.declaration = temp; + return [declar, node]; } } else { if (t.isFunctionDeclaration(declar)) { diff --git a/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js index 709bd70d0d..502245b6a1 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-default/expected.js @@ -8,8 +8,9 @@ define(["exports", "module"], function (exports, module) { module.exports = foo; module.exports = function () {}; - module.exports = function () {}; + var _default = function _default() {}; + module.exports = _default; function foo() {} var Foo = function Foo() {}; diff --git a/test/fixtures/transformation/es6-modules-common/exports-default/expected.js b/test/fixtures/transformation/es6-modules-common/exports-default/expected.js index 605e9e6dfb..d5c084b553 100644 --- a/test/fixtures/transformation/es6-modules-common/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-common/exports-default/expected.js @@ -7,8 +7,9 @@ module.exports = []; module.exports = foo; module.exports = function () {}; -module.exports = function () {}; +var _default = function _default() {}; +module.exports = _default; function foo() {} var Foo = function Foo() {}; diff --git a/test/fixtures/transformation/es6-modules-ignore/exports-default/expected.js b/test/fixtures/transformation/es6-modules-ignore/exports-default/expected.js index 1d90cd2139..2484b584b3 100644 --- a/test/fixtures/transformation/es6-modules-ignore/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-ignore/exports-default/expected.js @@ -1,4 +1,6 @@ "use strict"; +var _default = function _default() {}; + function foo() {} var Foo = function Foo() {}; \ No newline at end of file diff --git a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js index bf1e155301..88a37c3f83 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-default/expected.js @@ -1,7 +1,7 @@ System.register([], function (_export) { "use strict"; - var Foo; + var _default, Foo; _export("default", foo); function foo() {} @@ -18,7 +18,9 @@ System.register([], function (_export) { _export("default", function () {}); - _export("default", function () {}); + _default = function _default() {}; + + _export("default", _default); Foo = function Foo() {}; diff --git a/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js index fe13124f13..cd21b0b58b 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-default/expected.js @@ -14,8 +14,9 @@ module.exports = foo; module.exports = function () {}; - module.exports = function () {}; + var _default = function _default() {}; + module.exports = _default; function foo() {} var Foo = function Foo() {}; diff --git a/test/fixtures/transformation/self-contained/regenerator-runtime/actual.js b/test/fixtures/transformation/self-contained/.regenerator-runtime/actual.js similarity index 100% rename from test/fixtures/transformation/self-contained/regenerator-runtime/actual.js rename to test/fixtures/transformation/self-contained/.regenerator-runtime/actual.js diff --git a/test/fixtures/transformation/self-contained/regenerator-runtime/expected.js b/test/fixtures/transformation/self-contained/.regenerator-runtime/expected.js similarity index 100% rename from test/fixtures/transformation/self-contained/regenerator-runtime/expected.js rename to test/fixtures/transformation/self-contained/.regenerator-runtime/expected.js