diff --git a/packages/babel-polyfill-provider-corejs3/src/index.js b/packages/babel-polyfill-provider-corejs3/src/index.js index 6c3a76df..1162743d 100644 --- a/packages/babel-polyfill-provider-corejs3/src/index.js +++ b/packages/babel-polyfill-provider-corejs3/src/index.js @@ -124,6 +124,15 @@ export default (( }, usagePure(meta, utils, path) { + const isNamespaced = path => { + if (!path.node) return false; + const binding = path.scope.getBinding(path.node.name); + if (!binding) return false; + return binding.path.isImportNamespaceSpecifier(); + }; + + if (isNamespaced(path.get("object"))) return false; + if (meta.kind === "in") { if (meta.key === "Symbol.iterator") { path.replaceWith( diff --git a/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/input.mjs b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/input.mjs new file mode 100644 index 00000000..7962c3d2 --- /dev/null +++ b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/input.mjs @@ -0,0 +1,2 @@ +import * as bar from "bar"; +bar.map(); diff --git a/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/options.json b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/options.json new file mode 100644 index 00000000..a00d7e0c --- /dev/null +++ b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/options.json @@ -0,0 +1,11 @@ +{ + "plugins": [ + [ + "@babel/plugin-inject-polyfills", + { + "method": "usage-pure", + "providers": ["@@/corejs3"] + } + ] + ] +} \ No newline at end of file diff --git a/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/output.mjs b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/output.mjs new file mode 100644 index 00000000..7962c3d2 --- /dev/null +++ b/packages/babel-polyfill-provider-corejs3/test/fixtures/usage-pure/modules-namespaced/output.mjs @@ -0,0 +1,2 @@ +import * as bar from "bar"; +bar.map();