diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs b/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs new file mode 100644 index 000000000000..fde48c31e2f4 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/input.mjs @@ -0,0 +1,7 @@ +// https://github.com/babel/babel/issues/9266 + +export function x() { + return "YES"; +} + +export { x as someFunction } from './lib2.js' diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/options.json b/packages/babel-traverse/test/fixtures/rename/re-export/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs b/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs new file mode 100644 index 000000000000..5dd557e07457 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/output.mjs @@ -0,0 +1,7 @@ +// https://github.com/babel/babel/issues/9266 +function a() { + return "YES"; +} + +export { a as x }; +export { x as someFunction } from './lib2.js'; diff --git a/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js b/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js new file mode 100644 index 000000000000..8ff77a2c5dd2 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/re-export/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + Function(path) { + path.scope.rename("x", "a"); + } + } + }; +} diff --git a/packages/babel-traverse/test/scope.js b/packages/babel-traverse/test/scope.js index 106c9631e647..129609705b71 100644 --- a/packages/babel-traverse/test/scope.js +++ b/packages/babel-traverse/test/scope.js @@ -351,6 +351,13 @@ describe("scope", () => { expect(path.scope.generateUid("Cls")).toBe("_Cls2"); }); + + it("re-exports are not references", () => { + const path = getPath("export { x } from 'y'", { + sourceType: "module", + }); + expect(path.scope.hasGlobal("x")).toBe(false); + }); }); describe("duplicate bindings", () => {