From fb4125a816f6cc55f608be111939dc7ceccee118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Mon, 23 Dec 2019 08:11:29 -0500 Subject: [PATCH] fix: renameVisitor should skip when a pattern is a scope --- packages/babel-traverse/src/scope/lib/renamer.js | 3 ++- .../test/fixtures/rename/parameter-default-1/input.js | 7 +++++++ .../fixtures/rename/parameter-default-1/options.json | 3 +++ .../fixtures/rename/parameter-default-1/output.js | 6 ++++++ .../fixtures/rename/parameter-default-1/plugin.js | 9 +++++++++ .../fixtures/rename/parameter-default-10/input.js | 5 +++++ .../fixtures/rename/parameter-default-10/options.json | 3 +++ .../fixtures/rename/parameter-default-10/output.js | 11 +++++++++++ .../fixtures/rename/parameter-default-10/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-2/input.js | 5 +++++ .../fixtures/rename/parameter-default-2/options.json | 3 +++ .../fixtures/rename/parameter-default-2/output.js | 5 +++++ .../fixtures/rename/parameter-default-2/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-3/input.js | 6 ++++++ .../fixtures/rename/parameter-default-3/options.json | 3 +++ .../fixtures/rename/parameter-default-3/output.js | 6 ++++++ .../fixtures/rename/parameter-default-3/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-4/input.js | 8 ++++++++ .../fixtures/rename/parameter-default-4/options.json | 3 +++ .../fixtures/rename/parameter-default-4/output.js | 8 ++++++++ .../fixtures/rename/parameter-default-4/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-5/input.js | 8 ++++++++ .../fixtures/rename/parameter-default-5/options.json | 3 +++ .../fixtures/rename/parameter-default-5/output.js | 8 ++++++++ .../fixtures/rename/parameter-default-5/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-6/input.js | 5 +++++ .../fixtures/rename/parameter-default-6/options.json | 3 +++ .../fixtures/rename/parameter-default-6/output.js | 5 +++++ .../fixtures/rename/parameter-default-6/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-7/input.js | 5 +++++ .../fixtures/rename/parameter-default-7/options.json | 3 +++ .../fixtures/rename/parameter-default-7/output.js | 5 +++++ .../fixtures/rename/parameter-default-7/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-8/input.js | 5 +++++ .../fixtures/rename/parameter-default-8/options.json | 3 +++ .../fixtures/rename/parameter-default-8/output.js | 5 +++++ .../fixtures/rename/parameter-default-8/plugin.js | 9 +++++++++ .../test/fixtures/rename/parameter-default-9/input.js | 5 +++++ .../fixtures/rename/parameter-default-9/options.json | 3 +++ .../fixtures/rename/parameter-default-9/output.js | 5 +++++ .../fixtures/rename/parameter-default-9/plugin.js | 9 +++++++++ 41 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-1/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-1/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-1/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-1/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-10/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-10/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-10/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-10/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-2/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-2/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-2/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-2/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-3/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-3/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-3/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-3/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-4/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-4/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-4/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-4/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-5/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-5/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-5/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-5/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-6/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-6/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-6/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-6/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-7/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-7/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-7/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-7/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-8/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-8/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-8/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-8/plugin.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-9/input.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-9/options.json create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-9/output.js create mode 100644 packages/babel-traverse/test/fixtures/rename/parameter-default-9/plugin.js diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index cdfd90819681..98c16a2e1863 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -9,8 +9,9 @@ const renameVisitor = { } }, - Scope(path, state) { + "Pattern|Scope"(path, state) { if ( + path.isScope() && !path.scope.bindingIdentifierEquals( state.oldName, state.binding.identifier, diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-1/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/input.js new file mode 100644 index 000000000000..c40f808feb63 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/input.js @@ -0,0 +1,7 @@ +let a = "outside"; + +function f(g = () => a) { + let a = "inside"; + return g(); +} + diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-1/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-1/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/output.js new file mode 100644 index 000000000000..32d258e83c15 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/output.js @@ -0,0 +1,6 @@ +let a = "outside"; + +function f(g = () => a) { + let z = "inside"; + return g(); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-1/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-1/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-10/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/input.js new file mode 100644 index 000000000000..60898eb184b6 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function r({ a: b }, { [a]: { c } = a }) { + g(a); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-10/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-10/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/output.js new file mode 100644 index 000000000000..91af3aed8340 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/output.js @@ -0,0 +1,11 @@ +let z = "outside"; + +function r({ + a: b +}, { + [z]: { + c + } = z +}) { + g(z); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-10/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-10/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-2/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/input.js new file mode 100644 index 000000000000..f80651d80616 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function h(a, g = () => a) { + return g(); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-2/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-2/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/output.js new file mode 100644 index 000000000000..dd64606a5b19 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/output.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function h(z, g = () => z) { + return g(); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-2/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-2/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-3/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/input.js new file mode 100644 index 000000000000..a6a4bdd4c336 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/input.js @@ -0,0 +1,6 @@ +let a = "outside"; + +function j(g = a) { + let a = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-3/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-3/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/output.js new file mode 100644 index 000000000000..a5cb0dab0cc3 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/output.js @@ -0,0 +1,6 @@ +let a = "outside"; + +function j(g = a) { + let z = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-3/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-3/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-4/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/input.js new file mode 100644 index 000000000000..0f7ddb008ef1 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/input.js @@ -0,0 +1,8 @@ +let a = "outside"; + +function k([{ + g = a +}]) { + let a = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-4/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-4/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/output.js new file mode 100644 index 000000000000..65ab1aa82f5f --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/output.js @@ -0,0 +1,8 @@ +let a = "outside"; + +function k([{ + g = a +}]) { + let z = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-4/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-4/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-5/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/input.js new file mode 100644 index 000000000000..9586b93c5fcb --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/input.js @@ -0,0 +1,8 @@ +let a = "outside"; + +function f([{ + [a]: g +}]) { + let a = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-5/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-5/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/output.js new file mode 100644 index 000000000000..f703a83d601b --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/output.js @@ -0,0 +1,8 @@ +let a = "outside"; + +function f([{ + [a]: g +}]) { + let z = "inside"; + return g; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-5/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-5/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-6/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/input.js new file mode 100644 index 000000000000..d33571e9a053 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function n(g = (a = a) => {}) { + let a = "inside"; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-6/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-6/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/output.js new file mode 100644 index 000000000000..917b0bb1c749 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/output.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function n(g = (a = a) => {}) { + let z = "inside"; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-6/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-6/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-7/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/input.js new file mode 100644 index 000000000000..273324bf46df --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function n(a, g = (a = a) => {}) { + a = "inside"; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-7/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-7/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/output.js new file mode 100644 index 000000000000..5d6b37398318 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/output.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function n(z, g = (a = a) => {}) { + z = "inside"; +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-7/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-7/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-8/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/input.js new file mode 100644 index 000000000000..3349776fcb77 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function q(a, g = (b = a) => b) { + g(a); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-8/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-8/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/output.js new file mode 100644 index 000000000000..3894a8a76152 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/output.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function q(z, g = (b = z) => b) { + g(z); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-8/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-8/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +}; diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-9/input.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/input.js new file mode 100644 index 000000000000..4a57005f1db1 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/input.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function r(a, g = (a, b = a) => a) { + g(a); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-9/options.json b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-9/output.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/output.js new file mode 100644 index 000000000000..886bfcd11375 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/output.js @@ -0,0 +1,5 @@ +let a = "outside"; + +function r(z, g = (a, b = a) => a) { + g(z); +} diff --git a/packages/babel-traverse/test/fixtures/rename/parameter-default-9/plugin.js b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/plugin.js new file mode 100644 index 000000000000..830481588123 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/parameter-default-9/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + FunctionDeclaration(path) { + path.scope.rename("a", "z"); + } + } + }; +};