From 1bbe52a0221e5bf527ac92c9bd366fc72cc2484a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 16 Mar 2015 01:44:10 +1100 Subject: [PATCH] split up module class declarations - fixes #1021 --- src/babel/transformation/transformers/internal/modules.js | 7 ++++++- .../es6-modules-amd/exports-variable/expected.js | 6 ++++-- .../es6-modules-common/exports-variable/expected.js | 6 ++++-- .../es6-modules-system/exports-variable/expected.js | 8 +++++--- .../es6-modules-umd/exports-variable/expected.js | 6 ++++-- 5 files changed, 23 insertions(+), 10 deletions(-) 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; +});