diff --git a/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js b/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js index bd80b5af9f82..ffe73bf8d59b 100644 --- a/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js +++ b/packages/babel-preset-env/src/polyfills/corejs2/usage-plugin.js @@ -107,7 +107,7 @@ export default function( if (isNamespaced(path.get("object"))) return; let evaluatedPropType = object.name; - let propertyName = property.name; + let propertyName = ""; let instanceType = ""; if (node.computed) { @@ -119,6 +119,8 @@ export default function( propertyName = result.value; } } + } else { + propertyName = property.name; } if (path.scope.getBindingIdentifier(object.name)) { diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/input.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/input.mjs new file mode 100644 index 000000000000..279b65c0b53e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/input.mjs @@ -0,0 +1,5 @@ +Object['values'](); // include +[]['map'](); // include + +Object[keys](); // don't include +[][filter](); // don't include diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/options.json b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/options.json new file mode 100644 index 000000000000..fe3e4d6cf9c9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "useBuiltIns": "usage", + "corejs": 2, + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/output.mjs b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/output.mjs new file mode 100644 index 000000000000..8ce9547c189d --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/output.mjs @@ -0,0 +1,13 @@ +import "core-js/modules/es6.array.map"; +import "core-js/modules/web.dom.iterable"; +import "core-js/modules/es6.array.iterator"; +import "core-js/modules/es6.object.to-string"; +import "core-js/modules/es7.object.values"; +Object['values'](); // include + +[]['map'](); // include + +Object[keys](); // don't include + +[][filter](); // don't include +