diff --git a/packages/babel-plugin-proposal-optional-chaining/package.json b/packages/babel-plugin-proposal-optional-chaining/package.json index 7880f87160..08c9b31938 100644 --- a/packages/babel-plugin-proposal-optional-chaining/package.json +++ b/packages/babel-plugin-proposal-optional-chaining/package.json @@ -17,6 +17,7 @@ }, "devDependencies": { "@babel/core": "7.0.0-beta.44", - "@babel/helper-plugin-test-runner": "7.0.0-beta.44" + "@babel/helper-plugin-test-runner": "7.0.0-beta.44", + "@babel/plugin-transform-block-scoping": "7.0.0-beta.44" } } diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/input.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/input.js new file mode 100644 index 0000000000..572ebf951c --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/input.js @@ -0,0 +1,7 @@ +{ + const foo = 1; +} + +{ + const foo = ({})?.foo; +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/options.json b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/options.json new file mode 100644 index 0000000000..3b8c11875f --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["proposal-optional-chaining", "transform-block-scoping"] +} diff --git a/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/output.js b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/output.js new file mode 100644 index 0000000000..1d046f5045 --- /dev/null +++ b/packages/babel-plugin-proposal-optional-chaining/test/fixtures/regression/7642/output.js @@ -0,0 +1,8 @@ +{ + var foo = 1; +} +{ + var _ref; + + var _foo = (_ref = {}) === null || _ref === void 0 ? void 0 : _ref.foo; +} diff --git a/packages/babel-types/src/validators/isReferenced.js b/packages/babel-types/src/validators/isReferenced.js index e9519862a4..1944665e9d 100644 --- a/packages/babel-types/src/validators/isReferenced.js +++ b/packages/babel-types/src/validators/isReferenced.js @@ -14,6 +14,7 @@ export default function isReferenced(node: Object, parent: Object): boolean { // no: parent.NODE case "MemberExpression": case "JSXMemberExpression": + case "OptionalMemberExpression": if (parent.property === node && parent.computed) { return true; } else if (parent.object === node) {