diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js index 8515ace759..e6d5608daa 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js @@ -3,3 +3,5 @@ export {foo, bar}; export {foo as bar}; export {foo as default}; export {foo as default, bar}; +export function foo() {} +export function foo2(bar) {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js index e332163eba..c276f757f9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js @@ -17,6 +17,14 @@ System.register([], function (_export) { _export("default", foo); _export("bar", bar); + + function foo() {} + + _export("foo", foo); + + function foo2(bar) {} + + _export("foo2", foo2); } }; -}); \ No newline at end of file +}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js index 6e57f93648..e619811b41 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js @@ -13,8 +13,6 @@ System.register(["./evens"], function (_export) { _export("nextOdd", nextOdd); - _export("n", n); - _export("p", p = 5); _export("p", p); @@ -32,4 +30,4 @@ System.register(["./evens"], function (_export) { _export("isOdd", isOdd); } }; -}); \ No newline at end of file +}); diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js index 3fa6e8c303..bb9ca779f4 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js @@ -50,7 +50,7 @@ export default function ({ types: t }) { return { inherits: require("babel-plugin-transform-strict-mode"), - + visitor: { Program: { exit(path) { @@ -136,7 +136,13 @@ export default function ({ types: t }) { path.replaceWith(declar); let nodes = []; - for (let name in declar.getBindingIdentifiers()) { + let bindingIdentifiers; + if (path.isFunction()) { + bindingIdentifiers = { [declar.node.id.name]: declar.node.id }; + } else { + bindingIdentifiers = declar.getBindingIdentifiers(); + } + for (let name in bindingIdentifiers) { addExportName(name, name); nodes.push(buildExportCall(name, t.identifier(name))); }