<h2 dir="auto">Bug Report</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I would like to work on a fix!</li>
</ul>

<p dir="auto"><strong>Current Behavior</strong><br>
Upgrading from <code class="notranslate">babel-preset-env</code> (and other babel libraries) from 7.7.4 to 7.7.5 starts including too many transformations. PR here - this adds 10% size to our app. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="539435652" data-permission-text="Title is private" data-url="https://github.com/DestinyItemManager/DIM/issues/4814" data-hovercard-type="pull_request" data-hovercard-url="/DestinyItemManager/DIM/pull/4814/hovercard" href="https://github.com/DestinyItemManager/DIM/pull/4814">DestinyItemManager/DIM#4814</a></p>
<p dir="auto">Our babel config: <a href="https://github.com/DestinyItemManager/DIM/blob/master/babel.config.js">https://github.com/DestinyItemManager/DIM/blob/master/babel.config.js</a></p>
<p dir="auto">Our browserslist config is:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="  &quot;browserslist&quot;: [
    &quot;last 2 Chrome versions&quot;,
    &quot;last 2 ChromeAndroid versions&quot;,
    &quot;last 2 FirefoxAndroid versions&quot;,
    &quot;last 2 Firefox versions&quot;,
    &quot;Firefox ESR&quot;,
    &quot;last 2 Safari versions&quot;,
    &quot;iOS &gt;= 11&quot;,
    &quot;last 2 Edge versions&quot;,
    &quot;last 2 Opera versions&quot;,
    &quot;unreleased versions&quot;
  ],"><pre class="notranslate"><code class="notranslate">  "browserslist": [
    "last 2 Chrome versions",
    "last 2 ChromeAndroid versions",
    "last 2 FirefoxAndroid versions",
    "last 2 Firefox versions",
    "Firefox ESR",
    "last 2 Safari versions",
    "iOS &gt;= 11",
    "last 2 Edge versions",
    "last 2 Opera versions",
    "unreleased versions"
  ],
</code></pre></div>
<p dir="auto">Using 7.7.4, debug ouput:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="@babel/preset-env: `DEBUG` option

Using targets:
{
  &quot;chrome&quot;: &quot;77&quot;,
  &quot;edge&quot;: &quot;17&quot;,
  &quot;firefox&quot;: &quot;68&quot;,
  &quot;ios&quot;: &quot;11&quot;,
  &quot;opera&quot;: &quot;63&quot;,
  &quot;safari&quot;: &quot;12.1&quot;
}

Using modules transform: false

Using plugins:
  transform-template-literals { &quot;ios&quot;:&quot;11&quot;, &quot;safari&quot;:&quot;12.1&quot; }
  transform-function-name { &quot;edge&quot;:&quot;17&quot; }
  transform-dotall-regex { &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  transform-unicode-regex { &quot;ios&quot;:&quot;11&quot; }
  transform-parameters { &quot;edge&quot;:&quot;17&quot; }
  proposal-async-generator-functions { &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-object-rest-spread { &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-unicode-property-regex { &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-json-strings { &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-optional-catch-binding { &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  transform-named-capturing-groups-regex { &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  syntax-dynamic-import { &quot;chrome&quot;:&quot;77&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot;, &quot;opera&quot;:&quot;63&quot;, &quot;safari&quot;:&quot;12.1&quot; }"><pre class="notranslate"><code class="notranslate">@babel/preset-env: `DEBUG` option

Using targets:
{
  "chrome": "77",
  "edge": "17",
  "firefox": "68",
  "ios": "11",
  "opera": "63",
  "safari": "12.1"
}

Using modules transform: false

Using plugins:
  transform-template-literals { "ios":"11", "safari":"12.1" }
  transform-function-name { "edge":"17" }
  transform-dotall-regex { "edge":"17", "firefox":"68", "ios":"11" }
  transform-unicode-regex { "ios":"11" }
  transform-parameters { "edge":"17" }
  proposal-async-generator-functions { "edge":"17", "ios":"11" }
  proposal-object-rest-spread { "edge":"17", "ios":"11" }
  proposal-unicode-property-regex { "edge":"17", "firefox":"68", "ios":"11" }
  proposal-json-strings { "edge":"17", "ios":"11" }
  proposal-optional-catch-binding { "edge":"17", "ios":"11" }
  transform-named-capturing-groups-regex { "edge":"17", "firefox":"68", "ios":"11" }
  syntax-dynamic-import { "chrome":"77", "edge":"17", "firefox":"68", "ios":"11", "opera":"63", "safari":"12.1" }
</code></pre></div>
<p dir="auto">Using 7.7.5, debug ouput:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="@babel/preset-env: `DEBUG` option

Using targets:
{
  &quot;android&quot;: &quot;79&quot;,
  &quot;chrome&quot;: &quot;77&quot;,
  &quot;edge&quot;: &quot;17&quot;,
  &quot;firefox&quot;: &quot;68&quot;,
  &quot;ios&quot;: &quot;11&quot;,
  &quot;opera&quot;: &quot;63&quot;,
  &quot;safari&quot;: &quot;12.1&quot;
}

Using modules transform: false

Using plugins:
  transform-template-literals { &quot;android&quot;:&quot;79&quot;, &quot;ios&quot;:&quot;11&quot;, &quot;safari&quot;:&quot;12.1&quot; }
  transform-literals { &quot;android&quot;:&quot;79&quot; }
  transform-function-name { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot; }
  transform-arrow-functions { &quot;android&quot;:&quot;79&quot; }
  transform-block-scoped-functions { &quot;android&quot;:&quot;79&quot; }
  transform-classes { &quot;android&quot;:&quot;79&quot; }
  transform-object-super { &quot;android&quot;:&quot;79&quot; }
  transform-shorthand-properties { &quot;android&quot;:&quot;79&quot; }
  transform-duplicate-keys { &quot;android&quot;:&quot;79&quot; }
  transform-computed-properties { &quot;android&quot;:&quot;79&quot; }
  transform-for-of { &quot;android&quot;:&quot;79&quot; }
  transform-sticky-regex { &quot;android&quot;:&quot;79&quot; }
  transform-dotall-regex { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  transform-unicode-regex { &quot;android&quot;:&quot;79&quot;, &quot;ios&quot;:&quot;11&quot; }
  transform-spread { &quot;android&quot;:&quot;79&quot; }
  transform-parameters { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot; }
  transform-destructuring { &quot;android&quot;:&quot;79&quot; }
  transform-block-scoping { &quot;android&quot;:&quot;79&quot; }
  transform-new-target { &quot;android&quot;:&quot;79&quot; }
  transform-regenerator { &quot;android&quot;:&quot;79&quot; }
  transform-exponentiation-operator { &quot;android&quot;:&quot;79&quot; }
  transform-async-to-generator { &quot;android&quot;:&quot;79&quot; }
  proposal-async-generator-functions { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-object-rest-spread { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-unicode-property-regex { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-json-strings { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  proposal-optional-catch-binding { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;ios&quot;:&quot;11&quot; }
  transform-named-capturing-groups-regex { &quot;android&quot;:&quot;79&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot; }
  syntax-dynamic-import { &quot;android&quot;:&quot;79&quot;, &quot;chrome&quot;:&quot;77&quot;, &quot;edge&quot;:&quot;17&quot;, &quot;firefox&quot;:&quot;68&quot;, &quot;ios&quot;:&quot;11&quot;, &quot;opera&quot;:&quot;63&quot;, &quot;safari&quot;:&quot;12.1&quot; }"><pre class="notranslate"><code class="notranslate">@babel/preset-env: `DEBUG` option

Using targets:
{
  "android": "79",
  "chrome": "77",
  "edge": "17",
  "firefox": "68",
  "ios": "11",
  "opera": "63",
  "safari": "12.1"
}

Using modules transform: false

Using plugins:
  transform-template-literals { "android":"79", "ios":"11", "safari":"12.1" }
  transform-literals { "android":"79" }
  transform-function-name { "android":"79", "edge":"17" }
  transform-arrow-functions { "android":"79" }
  transform-block-scoped-functions { "android":"79" }
  transform-classes { "android":"79" }
  transform-object-super { "android":"79" }
  transform-shorthand-properties { "android":"79" }
  transform-duplicate-keys { "android":"79" }
  transform-computed-properties { "android":"79" }
  transform-for-of { "android":"79" }
  transform-sticky-regex { "android":"79" }
  transform-dotall-regex { "android":"79", "edge":"17", "firefox":"68", "ios":"11" }
  transform-unicode-regex { "android":"79", "ios":"11" }
  transform-spread { "android":"79" }
  transform-parameters { "android":"79", "edge":"17" }
  transform-destructuring { "android":"79" }
  transform-block-scoping { "android":"79" }
  transform-new-target { "android":"79" }
  transform-regenerator { "android":"79" }
  transform-exponentiation-operator { "android":"79" }
  transform-async-to-generator { "android":"79" }
  proposal-async-generator-functions { "android":"79", "edge":"17", "ios":"11" }
  proposal-object-rest-spread { "android":"79", "edge":"17", "ios":"11" }
  proposal-unicode-property-regex { "android":"79", "edge":"17", "firefox":"68", "ios":"11" }
  proposal-json-strings { "android":"79", "edge":"17", "ios":"11" }
  proposal-optional-catch-binding { "android":"79", "edge":"17", "ios":"11" }
  transform-named-capturing-groups-regex { "android":"79", "edge":"17", "firefox":"68", "ios":"11" }
  syntax-dynamic-import { "android":"79", "chrome":"77", "edge":"17", "firefox":"68", "ios":"11", "opera":"63", "safari":"12.1" }
</code></pre></div>
<p dir="auto"><strong>Input Code</strong></p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="539435652" data-permission-text="Title is private" data-url="https://github.com/DestinyItemManager/DIM/issues/4814" data-hovercard-type="pull_request" data-hovercard-url="/DestinyItemManager/DIM/pull/4814/hovercard" href="https://github.com/DestinyItemManager/DIM/pull/4814">DestinyItemManager/DIM#4814</a><br>
Our babel config: <a href="https://github.com/DestinyItemManager/DIM/blob/master/babel.config.js">https://github.com/DestinyItemManager/DIM/blob/master/babel.config.js</a></p>
<p dir="auto"><strong>Expected behavior/code</strong></p>
<p dir="auto">I would expect that the transforms wouldn't change between versions, especially minor versions, and that we'd continue only transpiling what's necessary for the browsers in our browserslist config.</p>
<p dir="auto"><strong>Babel Configuration (babel.config.js, .babelrc, package.json#babel, cli command, .eslintrc)</strong></p>
<ul dir="auto">
<li>Filename: <code class="notranslate">babel.config.js</code></li>
</ul>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="module.exports = function(api) {
  const isProduction = api.env('production');
  const plugins = [
    'lodash',
    'babel-plugin-optimize-clsx',
    '@babel/plugin-syntax-dynamic-import',
    ['@babel/plugin-proposal-optional-chaining', { loose: true }],
    ['@babel/plugin-proposal-nullish-coalescing-operator', { loose: true }],
    [
      '@babel/plugin-transform-runtime',
      {
        useESModules: true
      }
    ],
    [
      'transform-imports',
      {
        '@fortawesome/free-brands-svg-icons': {
          transform: (member) =&gt; `@fortawesome/free-brands-svg-icons/${member}`,
          preventFullImport: true,
          skipDefaultConversion: true
        },
        '@fortawesome/free-solid-svg-icons': {
          transform: (member) =&gt; `@fortawesome/free-solid-svg-icons/${member}`,
          preventFullImport: true,
          skipDefaultConversion: true
        },
        '@fortawesome/free-regular-svg-icons': {
          transform: (member) =&gt; `@fortawesome/free-regular-svg-icons/${member}`,
          preventFullImport: true,
          skipDefaultConversion: true
        }
      }
    ]
  ];

  if (isProduction) {
    plugins.push(
      '@babel/plugin-transform-react-constant-elements',
      '@babel/plugin-transform-react-inline-elements'
    );
  } else {
    plugins.push('react-hot-loader/babel');
  }

  return {
    presets: [
      [
        '@babel/preset-env',
        {
          modules: false,
          loose: true,
          useBuiltIns: 'usage',
          corejs: 3,
          shippedProposals: true
        }
      ],
      ['@babel/preset-react', { useBuiltIns: true, loose: true, corejs: 3 }]
    ],
    plugins
  };
};"><pre class="notranslate"><span class="pl-smi">module</span><span class="pl-kos">.</span><span class="pl-en">exports</span> <span class="pl-c1">=</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">api</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">const</span> <span class="pl-s1">isProduction</span> <span class="pl-c1">=</span> <span class="pl-s1">api</span><span class="pl-kos">.</span><span class="pl-en">env</span><span class="pl-kos">(</span><span class="pl-s">'production'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-k">const</span> <span class="pl-s1">plugins</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span>
    <span class="pl-s">'lodash'</span><span class="pl-kos">,</span>
    <span class="pl-s">'babel-plugin-optimize-clsx'</span><span class="pl-kos">,</span>
    <span class="pl-s">'@babel/plugin-syntax-dynamic-import'</span><span class="pl-kos">,</span>
    <span class="pl-kos">[</span><span class="pl-s">'@babel/plugin-proposal-optional-chaining'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">loose</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-kos">[</span><span class="pl-s">'@babel/plugin-proposal-nullish-coalescing-operator'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">loose</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-kos">[</span>
      <span class="pl-s">'@babel/plugin-transform-runtime'</span><span class="pl-kos">,</span>
      <span class="pl-kos">{</span>
        <span class="pl-c1">useESModules</span>: <span class="pl-c1">true</span>
      <span class="pl-kos">}</span>
    <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-kos">[</span>
      <span class="pl-s">'transform-imports'</span><span class="pl-kos">,</span>
      <span class="pl-kos">{</span>
        <span class="pl-s">'@fortawesome/free-brands-svg-icons'</span>: <span class="pl-kos">{</span>
          <span class="pl-en">transform</span>: <span class="pl-kos">(</span><span class="pl-s1">member</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s">`@fortawesome/free-brands-svg-icons/<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">member</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">,</span>
          <span class="pl-c1">preventFullImport</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
          <span class="pl-c1">skipDefaultConversion</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span><span class="pl-kos">,</span>
        <span class="pl-s">'@fortawesome/free-solid-svg-icons'</span>: <span class="pl-kos">{</span>
          <span class="pl-en">transform</span>: <span class="pl-kos">(</span><span class="pl-s1">member</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s">`@fortawesome/free-solid-svg-icons/<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">member</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">,</span>
          <span class="pl-c1">preventFullImport</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
          <span class="pl-c1">skipDefaultConversion</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span><span class="pl-kos">,</span>
        <span class="pl-s">'@fortawesome/free-regular-svg-icons'</span>: <span class="pl-kos">{</span>
          <span class="pl-en">transform</span>: <span class="pl-kos">(</span><span class="pl-s1">member</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s">`@fortawesome/free-regular-svg-icons/<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">member</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">,</span>
          <span class="pl-c1">preventFullImport</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
          <span class="pl-c1">skipDefaultConversion</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span>
      <span class="pl-kos">}</span>
    <span class="pl-kos">]</span>
  <span class="pl-kos">]</span><span class="pl-kos">;</span>

  <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">isProduction</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-s1">plugins</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span>
      <span class="pl-s">'@babel/plugin-transform-react-constant-elements'</span><span class="pl-kos">,</span>
      <span class="pl-s">'@babel/plugin-transform-react-inline-elements'</span>
    <span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span> <span class="pl-k">else</span> <span class="pl-kos">{</span>
    <span class="pl-s1">plugins</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span><span class="pl-s">'react-hot-loader/babel'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span>

  <span class="pl-k">return</span> <span class="pl-kos">{</span>
    <span class="pl-c1">presets</span>: <span class="pl-kos">[</span>
      <span class="pl-kos">[</span>
        <span class="pl-s">'@babel/preset-env'</span><span class="pl-kos">,</span>
        <span class="pl-kos">{</span>
          <span class="pl-c1">modules</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span>
          <span class="pl-c1">loose</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
          <span class="pl-c1">useBuiltIns</span>: <span class="pl-s">'usage'</span><span class="pl-kos">,</span>
          <span class="pl-c1">corejs</span>: <span class="pl-c1">3</span><span class="pl-kos">,</span>
          <span class="pl-c1">shippedProposals</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span>
      <span class="pl-kos">]</span><span class="pl-kos">,</span>
      <span class="pl-kos">[</span><span class="pl-s">'@babel/preset-react'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">useBuiltIns</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span> <span class="pl-c1">loose</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span> <span class="pl-c1">corejs</span>: <span class="pl-c1">3</span> <span class="pl-kos">}</span><span class="pl-kos">]</span>
    <span class="pl-kos">]</span><span class="pl-kos">,</span>
    plugins
  <span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Environment</strong></p>

<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="System:
    OS: macOS Mojave 10.14.6
  Binaries:
    Node: 13.1.0 - /usr/local/bin/node
    Yarn: 1.19.1 - /usr/local/bin/yarn
    npm: 6.12.1 - /usr/local/bin/npm
  npmPackages:
    @babel/core: ^7.0.0 =&gt; 7.7.7
    @babel/plugin-proposal-nullish-coalescing-operator: ^7.4.4 =&gt; 7.7.4
    @babel/plugin-proposal-object-rest-spread: ^7.0.0 =&gt; 7.7.7
    @babel/plugin-proposal-optional-chaining: ^7.6.0 =&gt; 7.7.5
    @babel/plugin-syntax-dynamic-import: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-react-constant-elements: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-react-inline-elements: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-runtime: ^7.1.0 =&gt; 7.7.6
    @babel/preset-env: ^7.3.1 =&gt; 7.7.7
    @babel/preset-react: ^7.0.0 =&gt; 7.7.4
    @babel/runtime: ^7.1.2 =&gt; 7.7.7
    babel-loader: ^8.0.2 =&gt; 8.0.6
    babel-plugin-lodash: ^3.3.2 =&gt; 3.3.4
    babel-plugin-optimize-clsx: ^2.5.0 =&gt; 2.5.0
    babel-plugin-transform-imports: ^2.0.0 =&gt; 2.0.0
    eslint: ^6.0.1 =&gt; 6.8.0
    jest: ^24.9.0 =&gt; 24.9.0
    webpack: ^4.5.0 =&gt; 4.41.5"><pre class="notranslate"><code class="notranslate">System:
    OS: macOS Mojave 10.14.6
  Binaries:
    Node: 13.1.0 - /usr/local/bin/node
    Yarn: 1.19.1 - /usr/local/bin/yarn
    npm: 6.12.1 - /usr/local/bin/npm
  npmPackages:
    @babel/core: ^7.0.0 =&gt; 7.7.7
    @babel/plugin-proposal-nullish-coalescing-operator: ^7.4.4 =&gt; 7.7.4
    @babel/plugin-proposal-object-rest-spread: ^7.0.0 =&gt; 7.7.7
    @babel/plugin-proposal-optional-chaining: ^7.6.0 =&gt; 7.7.5
    @babel/plugin-syntax-dynamic-import: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-react-constant-elements: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-react-inline-elements: ^7.0.0 =&gt; 7.7.4
    @babel/plugin-transform-runtime: ^7.1.0 =&gt; 7.7.6
    @babel/preset-env: ^7.3.1 =&gt; 7.7.7
    @babel/preset-react: ^7.0.0 =&gt; 7.7.4
    @babel/runtime: ^7.1.2 =&gt; 7.7.7
    babel-loader: ^8.0.2 =&gt; 8.0.6
    babel-plugin-lodash: ^3.3.2 =&gt; 3.3.4
    babel-plugin-optimize-clsx: ^2.5.0 =&gt; 2.5.0
    babel-plugin-transform-imports: ^2.0.0 =&gt; 2.0.0
    eslint: ^6.0.1 =&gt; 6.8.0
    jest: ^24.9.0 =&gt; 24.9.0
    webpack: ^4.5.0 =&gt; 4.41.5
</code></pre></div>
<p dir="auto"><strong>Possible Solution</strong></p>

<p dir="auto">It appears that the issue is that babel-preset-env now considers <code class="notranslate">android: 79</code> to be one of the browsers on our list, and is including transforms for it as a result (and thus including most of the es5 translations). I'm not sure why it's doing this - running <code class="notranslate">npx browserslist</code> gives me:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="and_chr 78
and_ff 68
chrome 81
chrome 80
chrome 79
chrome 78
chrome 77
edge 76
edge 18
edge 17
firefox 73
firefox 72
firefox 71
firefox 70
firefox 68
ios_saf 13.3
ios_saf 13.2
ios_saf 13.0-13.1
ios_saf 12.2-12.4
ios_saf 12.0-12.1
ios_saf 11.3-11.4
ios_saf 11.0-11.2
opera 64
opera 63
safari 13
safari 12.1
safari TP"><pre class="notranslate"><code class="notranslate">and_chr 78
and_ff 68
chrome 81
chrome 80
chrome 79
chrome 78
chrome 77
edge 76
edge 18
edge 17
firefox 73
firefox 72
firefox 71
firefox 70
firefox 68
ios_saf 13.3
ios_saf 13.2
ios_saf 13.0-13.1
ios_saf 12.2-12.4
ios_saf 12.0-12.1
ios_saf 11.3-11.4
ios_saf 11.0-11.2
opera 64
opera 63
safari 13
safari 12.1
safari TP
</code></pre></div>
<p dir="auto">Perhaps whatever mapping there is between browserslist and preset-env is misidentifying the android bits of the config. What's weird is the android-specific browsers in that list aren't at version 79 - only Chrome is.</p>
<h2 dir="auto">Bug Report</h2>

<p dir="auto"><strong>Current Behavior</strong><br>
The following snippet is transpiled</p>
<p dir="auto"><strong>Input Code</strong></p>
<ul dir="auto">
<li>REPL or Repo link if applicable: <a href="https://babeljs.io/repl#?browsers=Android%20%3E%3D%2052&amp;build=&amp;builtIns=false&amp;spec=false&amp;loose=false&amp;code_lz=MYGwhgzhAECC0G8C-Q&amp;debug=false&amp;forceAllTransforms=false&amp;shippedProposals=false&amp;circleciRepo=&amp;evaluate=false&amp;fileSize=false&amp;timeTravel=false&amp;sourceType=module&amp;lineWrap=true&amp;presets=env&amp;prettier=false&amp;targets=&amp;version=7.7.4&amp;externalPlugins=" rel="nofollow">https://babeljs.io/repl#?browsers=Android%20%3E%3D%2052&amp;build=&amp;builtIns=false&amp;spec=false&amp;loose=false&amp;code_lz=MYGwhgzhAECC0G8C-Q&amp;debug=false&amp;forceAllTransforms=false&amp;shippedProposals=false&amp;circleciRepo=&amp;evaluate=false&amp;fileSize=false&amp;timeTravel=false&amp;sourceType=module&amp;lineWrap=true&amp;presets=env&amp;prettier=false&amp;targets=&amp;version=7.7.4&amp;externalPlugins=</a></li>
</ul>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="class A {};"><pre class="notranslate"><span class="pl-k">class</span> <span class="pl-v">A</span> <span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Expected behavior/code</strong><br>
It is not transpiled on <code class="notranslate">Chrome &gt;= 52</code>, so it should not be transpiled when <code class="notranslate">Android &gt;= 52</code>, which shares the same language features support with Chrome.</p>
<p dir="auto"><strong>Babel Configuration (babel.config.js, .babelrc, package.json#babel, cli command, .eslintrc)</strong></p>
<ul dir="auto">
<li>Filename: <code class="notranslate">babel.config.js</code></li>
</ul>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;presets&quot;: [&quot;@babel/env&quot;, { &quot;targets&quot;: &quot;Android &gt;= 52&quot; }]
}"><pre class="notranslate">{
  <span class="pl-ent">"presets"</span>: [<span class="pl-s"><span class="pl-pds">"</span>@babel/env<span class="pl-pds">"</span></span>, { <span class="pl-ent">"targets"</span>: <span class="pl-s"><span class="pl-pds">"</span>Android &gt;= 52<span class="pl-pds">"</span></span> }]
}</pre></div>
<p dir="auto"><strong>Environment</strong><br>
REPL</p>