Question: After reading the article [Removing Babel's Stage Presets](https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets) by `babel`, I still not fully understand how to add a proposal from, for example, `stage-3` ([flatMap](https://github.com/tc39/proposal-flatMap)) to `.babelrc`.

As far as I understand, because `flatMap` can be written in ES5, then I need a polyfill and not a plugin. I installed `@babel/polyfill` under --save-dev but the browser still tells me that this method doesn't exist. I guess that `@babel/polyfill` doesn't cover experimental features.

Answer: 
flatMap was removed from @babel/polyfill for babel 7. You need to include it directly from core-js, like 

```
import "core-js/fn/array/flat-map";

```

Or if you want all of the polyfills that babel 6 used to include:

```
import "core-js/shim";

```

See: <https://github.com/babel/babel/pull/8440> (or more directly, the [relevant section](https://babeljs.io/docs/en/v7-migration#remove-proposal-polyfills-in-babel-polyfill-https-githubcom-babel-babel-issues-8416) of the v7 upgrade guide)

(Also, don't worry about having to add a new package: you already have core-js in your dependency tree; that's where babel/polyfill gets [the rest of its Stage 4+ polyfills](https://github.com/babel/babel/blob/d9149aa2f3fb45f309e2d500de4017bad1046459/packages/babel-polyfill/src/index.js))
With core.js 3.x use the following import:

```
import "core-js/features/array/flat-map";

```