From afcfba20752b36c95b18973440f52010e0f17840 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sun, 13 Dec 2015 15:34:47 -0800 Subject: [PATCH] Only rename outer function bindings on conflict - fixes T6781 --- .../test/fixtures/function-name/function-collision/actual.js | 4 ++++ .../fixtures/function-name/function-collision/expected.js | 4 ++++ packages/babel-traverse/src/scope/lib/renamer.js | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/actual.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/actual.js index 7f00f96e17..4365f6e727 100644 --- a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/actual.js +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/actual.js @@ -16,4 +16,8 @@ function f() { b; } }; + + function commit(b) { + b(); + } }); diff --git a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/expected.js b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/expected.js index 974eed70f6..ac73489abe 100644 --- a/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/expected.js +++ b/packages/babel-plugin-transform-es2015-function-name/test/fixtures/function-name/function-collision/expected.js @@ -16,4 +16,8 @@ function _f() { _b; } }; + + function commit(b) { + b(); + } }); diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index 6c5fddc8dd..bf89b3f10f 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -15,7 +15,7 @@ let renameVisitor = { }, "AssignmentExpression|Declaration"(path, state) { - let ids = path.getBindingIdentifiers(); + let ids = path.getOuterBindingIdentifiers(); for (let name in ids) { if (name === state.oldName) ids[name].name = state.newName;