From 1e1019abbda66da830970c1f7215fd8216404f85 Mon Sep 17 00:00:00 2001
From: Joe Haddad <timer150@gmail.com>
Date: Mon, 1 Oct 2018 11:26:29 -0400
Subject: [PATCH] Polyfill error overlay for IE9 support (#5198)

* Polyfill for IE9 support

* Turn off performance option in webpack
---
 packages/react-error-overlay/package.json      |  1 +
 .../react-error-overlay/src/iframeScript.js    |  2 +-
 .../src/utils/pollyfills.js                    | 18 ------------------
 .../webpack.config.iframe.js                   |  1 +
 4 files changed, 3 insertions(+), 19 deletions(-)
 delete mode 100644 packages/react-error-overlay/src/utils/pollyfills.js

diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json
index a00c0d232..bdba0aa20 100644
--- a/packages/react-error-overlay/package.json
+++ b/packages/react-error-overlay/package.json
@@ -55,6 +55,7 @@
     "promise": "8.0.2",
     "raw-loader": "^0.5.1",
     "react": "^16.3.2",
+    "react-app-polyfill": "^0.0.0",
     "react-dom": "^16.3.2",
     "rimraf": "^2.6.2",
     "settle-promise": "1.0.0",
diff --git a/packages/react-error-overlay/src/iframeScript.js b/packages/react-error-overlay/src/iframeScript.js
index 3da820264..011172b5d 100644
--- a/packages/react-error-overlay/src/iframeScript.js
+++ b/packages/react-error-overlay/src/iframeScript.js
@@ -5,7 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 
-import './utils/pollyfills.js';
+import 'react-app-polyfill/ie9';
 import React from 'react';
 import ReactDOM from 'react-dom';
 import CompileErrorContainer from './containers/CompileErrorContainer';
diff --git a/packages/react-error-overlay/src/utils/pollyfills.js b/packages/react-error-overlay/src/utils/pollyfills.js
deleted file mode 100644
index ddd5aeb96..000000000
--- a/packages/react-error-overlay/src/utils/pollyfills.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-if (typeof Promise === 'undefined') {
-  // Rejection tracking prevents a common issue where React gets into an
-  // inconsistent state due to an error, but it gets swallowed by a Promise,
-  // and the user has no idea what causes React's erratic future behavior.
-  require('promise/lib/rejection-tracking').enable();
-  window.Promise = require('promise/lib/es6-extensions.js');
-}
-
-// Object.assign() is commonly used with React.
-// It will use the native implementation if it's present and isn't buggy.
-Object.assign = require('object-assign');
diff --git a/packages/react-error-overlay/webpack.config.iframe.js b/packages/react-error-overlay/webpack.config.iframe.js
index 7e8784eb0..ac5b6dcd4 100644
--- a/packages/react-error-overlay/webpack.config.iframe.js
+++ b/packages/react-error-overlay/webpack.config.iframe.js
@@ -76,4 +76,5 @@ module.exports = {
       __REACT_DEVTOOLS_GLOBAL_HOOK__: '({})',
     }),
   ],
+  performance: false,
 };
-- 
GitLab