diff --git a/src/babel/transformation/transformers/internal/modules.js b/src/babel/transformation/transformers/internal/modules.js index 69de42f4d5..50ecd3a7a8 100644 --- a/src/babel/transformation/transformers/internal/modules.js +++ b/src/babel/transformation/transformers/internal/modules.js @@ -50,7 +50,12 @@ export function ExportDeclaration(node, parent, scope) { return [getDeclar(), node]; } } else { - if (t.isFunctionDeclaration(declar)) { + if (t.isClassDeclaration(declar)) { + // export class Foo {} + node.specifiers = [t.importSpecifier(declar.id, declar.id)]; + node.declaration = null; + return [getDeclar(), node]; + } else if (t.isFunctionDeclaration(declar)) { // export function Foo() {} node.specifiers = [t.importSpecifier(declar.id, declar.id)]; node.declaration = null; diff --git a/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js index bd6d12e3f6..b5f5c1538f 100644 --- a/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-amd/exports-variable/expected.js @@ -26,7 +26,9 @@ define(["exports"], function (exports) { function foo7() {} - var foo8 = exports.foo8 = function foo8() { + var foo8 = function foo8() { _classCallCheck(this, foo8); }; -}); \ No newline at end of file + + exports.foo8 = foo8; +}); diff --git a/test/fixtures/transformation/es6-modules-common/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-common/exports-variable/expected.js index 0b2cbf18e7..b468b9bc5d 100644 --- a/test/fixtures/transformation/es6-modules-common/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-common/exports-variable/expected.js @@ -25,6 +25,8 @@ exports.foo6 = foo6; function foo7() {} -var foo8 = exports.foo8 = function foo8() { +var foo8 = function foo8() { _classCallCheck(this, foo8); -}; \ No newline at end of file +}; + +exports.foo8 = foo8; diff --git a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js index 8626db3270..5006e12bbf 100644 --- a/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-system/exports-variable/expected.js @@ -34,11 +34,13 @@ System.register([], function (_export) { _export("foo6", foo6); - foo8 = _export("foo8", function foo8() { + foo8 = function foo8() { _classCallCheck(this, foo8); - }); + }; + + _export("foo8", foo8); _export("foo3", foo3 = 5); } }; -}); \ No newline at end of file +}); diff --git a/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js index 49eca85aba..0f1a05c14d 100644 --- a/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js +++ b/test/fixtures/transformation/es6-modules-umd/exports-variable/expected.js @@ -32,7 +32,9 @@ function foo7() {} - var foo8 = exports.foo8 = function foo8() { + var foo8 = function foo8() { _classCallCheck(this, foo8); }; -}); \ No newline at end of file + + exports.foo8 = foo8; +});