From bdd3ecf04a4001ddad2a41d62c2006d36b7b4259 Mon Sep 17 00:00:00 2001
From: Ian Schmitz <ianschmitz@gmail.com>
Date: Thu, 20 Feb 2020 13:04:01 -0800
Subject: [PATCH] Add optional chaining/nullish coalescing plugins

---
 packages/babel-preset-react-app/create.js    | 6 ++++++
 packages/babel-preset-react-app/package.json | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js
index d96c32c1a..4985ef49e 100644
--- a/packages/babel-preset-react-app/create.js
+++ b/packages/babel-preset-react-app/create.js
@@ -185,6 +185,12 @@ module.exports = function(api, opts, env) {
           removeImport: true,
         },
       ],
+      // Optional chaining and nullish coalescing are supported in @babel/preset-env,
+      // but not yet supported in webpack due to support missing from acorn.
+      // These can be removed once webpack has support.
+      // See https://github.com/facebook/create-react-app/issues/8445#issuecomment-588512250
+      require('@babel/plugin-proposal-optional-chaining').default,
+      require('@babel/plugin-proposal-nullish-coalescing-operator').default,
     ].filter(Boolean),
     overrides: [
       isFlowEnabled && {
diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json
index c24752790..ac15c049c 100644
--- a/packages/babel-preset-react-app/package.json
+++ b/packages/babel-preset-react-app/package.json
@@ -24,7 +24,9 @@
     "@babel/core": "7.8.4",
     "@babel/plugin-proposal-class-properties": "7.8.3",
     "@babel/plugin-proposal-decorators": "7.8.3",
+    "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3",
     "@babel/plugin-proposal-numeric-separator": "7.8.3",
+    "@babel/plugin-proposal-optional-chaining": "7.8.3",
     "@babel/plugin-transform-flow-strip-types": "7.8.3",
     "@babel/plugin-transform-react-display-name": "7.8.3",
     "@babel/plugin-transform-runtime": "7.8.3",
-- 
GitLab