diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index 4fb0a5fa180c..b15285e29caf 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -20,7 +20,8 @@ const renameVisitor = { } }, - "AssignmentExpression|Declaration"(path, state) { + "AssignmentExpression|Declaration|VariableDeclarator"(path, state) { + if (path.isVariableDeclaration()) return; const ids = path.getOuterBindingIdentifiers(); for (const name in ids) { diff --git a/packages/babel-traverse/test/fixtures/rename/function-body-declaration/input.js b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/input.js new file mode 100644 index 000000000000..7ab6bdb1f2fd --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/input.js @@ -0,0 +1,7 @@ +function c(b) { + var a = b + 1, + a = a + 1, + a = a + 1; + + return a; +} diff --git a/packages/babel-traverse/test/fixtures/rename/function-body-declaration/options.json b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/options.json new file mode 100644 index 000000000000..14af0e5feac8 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["./plugin"] +} diff --git a/packages/babel-traverse/test/fixtures/rename/function-body-declaration/output.js b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/output.js new file mode 100644 index 000000000000..66584088b24c --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/output.js @@ -0,0 +1,7 @@ +function c(b) { + var _a = b + 1, + _a = _a + 1, + _a = _a + 1; + + return _a; +} diff --git a/packages/babel-traverse/test/fixtures/rename/function-body-declaration/plugin.js b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/plugin.js new file mode 100644 index 000000000000..660e360ace48 --- /dev/null +++ b/packages/babel-traverse/test/fixtures/rename/function-body-declaration/plugin.js @@ -0,0 +1,9 @@ +module.exports = function() { + return { + visitor: { + Scope(path) { + path.scope.rename("a", "_a"); + } + } + }; +}