From f195daa092ae2cbdf3d5c31c99fc50653f6e275e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Fri, 1 Mar 2019 00:09:49 +0100 Subject: [PATCH] Don't add params of anonymous exported function decls to the outer scope (#9613) * Don't add params of anonymous exported function decls to the outer scope * Test --- .../src/index.js | 5 +---- .../test/fixtures/regression/issue-9611/input.mjs | 3 +++ .../test/fixtures/regression/issue-9611/options.json | 3 +++ .../test/fixtures/regression/issue-9611/output.js | 12 ++++++++++++ packages/babel-traverse/src/scope/index.js | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/input.mjs create mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/options.json create mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/output.js diff --git a/packages/babel-helper-split-export-declaration/src/index.js b/packages/babel-helper-split-export-declaration/src/index.js index ffbf52243a..c591f87463 100644 --- a/packages/babel-helper-split-export-declaration/src/index.js +++ b/packages/babel-helper-split-export-declaration/src/index.js @@ -49,10 +49,7 @@ export default function splitExportDeclaration(exportDeclaration) { exportDeclaration.replaceWith(updatedDeclaration); if (needBindingRegistration) { - scope.registerBinding( - isClassDeclaration ? "let" : "var", - exportDeclaration, - ); + scope.registerDeclaration(exportDeclaration); } return exportDeclaration; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/input.mjs b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/input.mjs new file mode 100644 index 0000000000..cdc221254f --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/input.mjs @@ -0,0 +1,3 @@ +import x from './x'; + +export default function(x) {} \ No newline at end of file diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/options.json new file mode 100644 index 0000000000..81e5ce1243 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-modules-commonjs"] +} diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/output.js new file mode 100644 index 0000000000..d1b46e901e --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/regression/issue-9611/output.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +var _x = _interopRequireDefault(require("./x")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _default(x) {} diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index 2976cff173..375d5827b9 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -518,7 +518,7 @@ export default class Scope { } const parent = this.getProgramParent(); - const ids = path.getBindingIdentifiers(true); + const ids = path.getOuterBindingIdentifiers(true); for (const name of Object.keys(ids)) { for (const id of (ids[name]: Array)) {