From 8cafd8f820f9da752235074a17db405718fc7e60 Mon Sep 17 00:00:00 2001 From: Gerald Date: Thu, 5 Mar 2020 22:29:31 +0800 Subject: [PATCH] fix(transform-destructuring): update scope info after replacing --- .../babel-plugin-transform-destructuring/src/index.js | 1 + .../test/fixtures/regression/11210/input.mjs | 5 +++++ .../test/fixtures/regression/11210/options.json | 7 +++++++ .../test/fixtures/regression/11210/output.mjs | 11 +++++++++++ 4 files changed, 24 insertions(+) create mode 100644 packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/input.mjs create mode 100644 packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/options.json create mode 100644 packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/output.mjs diff --git a/packages/babel-plugin-transform-destructuring/src/index.js b/packages/babel-plugin-transform-destructuring/src/index.js index 04cb37b4af..714e5f5afb 100644 --- a/packages/babel-plugin-transform-destructuring/src/index.js +++ b/packages/babel-plugin-transform-destructuring/src/index.js @@ -599,6 +599,7 @@ export default declare((api, options) => { } path.replaceWithMultiple(nodes); + path.scope.crawl(); }, VariableDeclaration(path) { diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/input.mjs b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/input.mjs new file mode 100644 index 0000000000..6ce63b1771 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/input.mjs @@ -0,0 +1,5 @@ +export default class A { + handle = value => { + ({ value } = {}); + } +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/options.json b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/options.json new file mode 100644 index 0000000000..33010297d1 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + "proposal-class-properties", + "transform-parameters", + "transform-destructuring" + ] +} diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/output.mjs b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/output.mjs new file mode 100644 index 0000000000..031ed5b8a4 --- /dev/null +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/regression/11210/output.mjs @@ -0,0 +1,11 @@ +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +export default class A { + constructor() { + _defineProperty(this, "handle", value => { + var _ref = {}; + value = _ref.value; + }); + } + +}