diff --git a/packages/babel-helper-module-transforms/src/rewrite-live-references.js b/packages/babel-helper-module-transforms/src/rewrite-live-references.js index f665926decb2..95f1daadd158 100644 --- a/packages/babel-helper-module-transforms/src/rewrite-live-references.js +++ b/packages/babel-helper-module-transforms/src/rewrite-live-references.js @@ -182,7 +182,9 @@ const rewriteReferencesVisitor = { ref.loc = path.node.loc; if ( - path.parentPath.isCallExpression({ callee: path.node }) && + (path.parentPath.isCallExpression({ callee: path.node }) || + path.parentPath.isOptionalCallExpression({ callee: path.node }) || + path.parentPath.isTaggedTemplateExpression({ tag: path.node })) && t.isMemberExpression(ref) ) { path.replaceWith(t.sequenceExpression([t.numericLiteral(0), ref])); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/input.mjs b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/input.mjs index 5b84f44e6659..0195246aa49c 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/input.mjs +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/input.mjs @@ -7,3 +7,5 @@ foo; foo2; foo3; foo3(); +foo3``; +foo3?.(); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/output.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/output.js index 1c2bc5f8e059..445e5f55895c 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/output.js +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/output.js @@ -5,3 +5,5 @@ foo4.default; foo4.default; foo4.foo3; (0, foo4.foo3)(); +(0, foo4.foo3)``; +(0, foo4.foo3)?.(); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json index caedc022efa4..39f3a7421118 100644 --- a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/options.json @@ -2,6 +2,7 @@ "plugins": [ "external-helpers", "syntax-object-rest-spread", + "syntax-optional-chaining", [ "transform-modules-commonjs", { "strict": true, "mjsStrictNamespace": false }