Don't polyfill if evaluation is not confident (#10397)
This commit is contained in:
parent
2e7bea4a6a
commit
5c859b1117
@ -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)) {
|
||||
|
||||
5
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/input.mjs
vendored
Normal file
5
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/input.mjs
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
Object['values'](); // include
|
||||
[]['map'](); // include
|
||||
|
||||
Object[keys](); // don't include
|
||||
[][filter](); // don't include
|
||||
12
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/options.json
vendored
Normal file
12
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/options.json
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
[
|
||||
"../../../../lib",
|
||||
{
|
||||
"useBuiltIns": "usage",
|
||||
"corejs": 2,
|
||||
"modules": false
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
13
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/output.mjs
vendored
Normal file
13
packages/babel-preset-env/test/fixtures/corejs2/usage-evaluated-not-confident/output.mjs
vendored
Normal file
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user