From 1b280bdc9015d8ad423a9b2607a6f8e4d10e97ee Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Sat, 28 May 2022 13:35:21 +0800 Subject: [PATCH] fix --- .../babel-plugin-transform-new-target/src/index.ts | 1 + .../general/function-duplicate-name/input.js | 12 +++++++----- .../general/function-duplicate-name/output.js | 12 +++++++----- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/babel-plugin-transform-new-target/src/index.ts b/packages/babel-plugin-transform-new-target/src/index.ts index ca96a61c1475..aba243360ea4 100644 --- a/packages/babel-plugin-transform-new-target/src/index.ts +++ b/packages/babel-plugin-transform-new-target/src/index.ts @@ -53,6 +53,7 @@ export default declare(api => { // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow let scope = path.scope; while ( + scope !== func.parentPath.scope && scope?.hasBinding(node.id.name) && !scope.bindingIdentifierEquals(node.id.name, node.id) ) { diff --git a/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/input.js b/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/input.js index 023cc33d683c..795d867a237b 100644 --- a/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/input.js +++ b/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/input.js @@ -1,10 +1,12 @@ function Foo() { - var Foo = new.target; -} + function Foo() { + var Foo = new.target; + } -Foo.prototype.test = function() { - var Foo = new.target; -}; + Foo.prototype.test = function() { + var Foo = new.target; + }; +} var Bar = function() { var Bar = new.target; diff --git a/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/output.js b/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/output.js index a7ae0bf16022..2cc238626347 100644 --- a/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/output.js +++ b/packages/babel-plugin-transform-new-target/test/fixtures/general/function-duplicate-name/output.js @@ -1,10 +1,12 @@ function Foo() { - var _Foo = this instanceof Foo ? this.constructor : void 0; -} + function Foo() { + var _Foo = this instanceof Foo ? this.constructor : void 0; + } -Foo.prototype.test = function _target() { - var Foo = this instanceof _target ? this.constructor : void 0; -}; + Foo.prototype.test = function _target() { + var Foo = this instanceof _target ? this.constructor : void 0; + }; +} var Bar = function _target2() { var Bar = this instanceof _target2 ? this.constructor : void 0;