From 0fe715e9db637dbb0474add594475f65cd073983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 25 Sep 2020 16:39:00 -0400 Subject: [PATCH] fix: push exported variable when hoisting export declared names --- .../babel-plugin-transform-modules-systemjs/src/index.js | 8 +++++--- .../test/fixtures/systemjs/export-named-3/output.mjs | 2 +- .../test/fixtures/systemjs/export-named-4/output.mjs | 2 +- .../test/fixtures/systemjs/export-named-5/output.mjs | 2 +- .../fixtures/systemjs/hoist-function-exports/output.mjs | 5 +---- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/babel-plugin-transform-modules-systemjs/src/index.js b/packages/babel-plugin-transform-modules-systemjs/src/index.js index 3431c5f45e6b..56e9001428b1 100644 --- a/packages/babel-plugin-transform-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-modules-systemjs/src/index.js @@ -506,9 +506,11 @@ export default declare((api, options) => { path, (id, name, hasInit) => { variableIds.push(id); - if (!hasInit) { - exportNames.push(name); - exportValues.push(scope.buildUndefinedNode()); + if (!hasInit && name in exportMap) { + for (const exported of exportMap[name]) { + exportNames.push(exported); + exportValues.push(scope.buildUndefinedNode()); + } } }, null, diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-3/output.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-3/output.mjs index d613ff78b938..da63f53c4e82 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-3/output.mjs +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-3/output.mjs @@ -3,7 +3,7 @@ System.register([], function (_export, _context) { var foo; - _export("foo", void 0); + _export("bar", void 0); return { setters: [], diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-4/output.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-4/output.mjs index d613ff78b938..7a2331821852 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-4/output.mjs +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-4/output.mjs @@ -3,7 +3,7 @@ System.register([], function (_export, _context) { var foo; - _export("foo", void 0); + _export("default", void 0); return { setters: [], diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-5/output.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-5/output.mjs index bed82c28410d..fe897f693b93 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-5/output.mjs +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/export-named-5/output.mjs @@ -4,7 +4,7 @@ System.register([], function (_export, _context) { var foo, bar; _export({ - foo: void 0, + default: void 0, bar: void 0 }); diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/output.mjs b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/output.mjs index 61759df89e08..7530d72c22a1 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/output.mjs +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/hoist-function-exports/output.mjs @@ -7,10 +7,7 @@ System.register(["./evens"], function (_export, _context) { return _export("p", p = isEven(n) ? n + 1 : n + 2); } - _export({ - nextOdd: nextOdd, - a: void 0 - }); + _export("nextOdd", nextOdd); return { setters: [function (_evens) {