about summary refs log tree commit diff
path: root/app/javascript/packs
diff options
context:
space:
mode:
authorNolan Lawson <nolan@nolanlawson.com>2017-05-30 06:11:15 -0700
committerEugen Rochko <eugen@zeonfederated.com>2017-05-30 15:11:15 +0200
commitb42bdd80e8a25f0ea5d121431265b428a34d1a65 (patch)
tree1e6cc6b07e9842924d5c704a79cf236a4c42d672 /app/javascript/packs
parent76fa9d24882784343476b93769c920bf83e75c2a (diff)
Extract polyfill loading into single module (#3421)
Diffstat (limited to 'app/javascript/packs')
-rw-r--r--app/javascript/packs/application.js34
-rw-r--r--app/javascript/packs/public.js13
2 files changed, 8 insertions, 39 deletions
diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
index be40726c6..8932dc513 100644
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -1,32 +1,6 @@
 import main from '../mastodon/main';
+import loadPolyfills from '../mastodon/load_polyfills';
 
-const needsBasePolyfills = !(
-  window.Intl &&
-  Object.assign &&
-  Number.isNaN &&
-  window.Symbol &&
-  Array.prototype.includes
-);
-
-const needsExtraPolyfills = !(
-  window.IntersectionObserver &&
-  window.requestIdleCallback
-);
-
-// Latest version of Firefox and Safari do not have IntersectionObserver.
-// Edge does not have requestIdleCallback.
-// This avoids shipping them all the polyfills.
-if (needsBasePolyfills) {
-  Promise.all([
-    import(/* webpackChunkName: "base_polyfills" */ '../mastodon/base_polyfills'),
-    import(/* webpackChunkName: "extra_polyfills" */ '../mastodon/extra_polyfills'),
-  ]).then(main).catch(e => {
-    console.error(e); // eslint-disable-line no-console
-  });
-} else if (needsExtraPolyfills) {
-  import(/* webpackChunkName: "extra_polyfills" */ '../mastodon/extra_polyfills').then(main).catch(e => {
-    console.error(e); // eslint-disable-line no-console
-  });
-} else {
-  main();
-}
+loadPolyfills().then(main).catch(e => {
+  console.error(e); // eslint-disable-line no-console
+});
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 9f71b6dc5..69c942f34 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -3,6 +3,7 @@ import { getLocale } from 'mastodon/locales';
 import { length } from 'stringz';
 import IntlRelativeFormat from 'intl-relativeformat';
 import { delegate } from 'rails-ujs';
+import loadPolyfills from '../mastodon/load_polyfills';
 
 require.context('../images/', true);
 
@@ -85,12 +86,6 @@ function main() {
   });
 }
 
-if (!window.Intl) {
-  import(/* webpackChunkName: "base_polyfills" */ 'mastodon/base_polyfills').then(() => {
-    main();
-  }).catch(error => {
-    console.log(error); // eslint-disable-line no-console
-  });
-} else {
-  main();
-}
+loadPolyfills().then(main).catch(error => {
+  console.log(error); // eslint-disable-line no-console
+});