diff --git a/packages/babel-preset-env/src/built-in-definitions.js b/packages/babel-preset-env/src/built-in-definitions.js index 121ffc84f8..bcad0d8651 100644 --- a/packages/babel-preset-env/src/built-in-definitions.js +++ b/packages/babel-preset-env/src/built-in-definitions.js @@ -46,6 +46,7 @@ export const definitions = { every: ["es6.array.is-array"], fill: ["es6.array.fill"], filter: ["es6.array.filter"], + finally: ["es7.promise.finally"], find: ["es6.array.find"], findIndex: ["es6.array.find-index"], fixed: ["es6.string.fixed"], diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs new file mode 100644 index 0000000000..bb634febe9 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/input.mjs @@ -0,0 +1,4 @@ +var p = Promise.resolve(0); +p.finally(() => { + alert("OK"); +}); diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json new file mode 100644 index 0000000000..eeb3ed89dd --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/options.json @@ -0,0 +1,14 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "targets": { + "browsers": ["ie > 10"] + }, + "useBuiltIns": "usage", + "modules": false + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs new file mode 100644 index 0000000000..966401f6c6 --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/promise-finally/output.mjs @@ -0,0 +1,6 @@ +import "core-js/modules/es7.promise.finally"; +import "core-js/modules/es6.promise"; +var p = Promise.resolve(0); +p.finally(function () { + alert("OK"); +});