2017-05-11 19:26:06 +10:00
|
|
|
import main from '../mastodon/main';
|
|
|
|
|
2017-05-25 01:55:00 +10:00
|
|
|
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([
|
2017-05-25 11:30:29 +10:00
|
|
|
import(/* webpackChunkName: "base_polyfills" */ '../mastodon/base_polyfills'),
|
|
|
|
import(/* webpackChunkName: "extra_polyfills" */ '../mastodon/extra_polyfills'),
|
2017-05-25 01:55:00 +10:00
|
|
|
]).then(main).catch(e => {
|
|
|
|
console.error(e); // eslint-disable-line no-console
|
|
|
|
});
|
|
|
|
} else if (needsExtraPolyfills) {
|
2017-05-25 11:30:29 +10:00
|
|
|
import(/* webpackChunkName: "extra_polyfills" */ '../mastodon/extra_polyfills').then(main).catch(e => {
|
2017-05-21 01:31:47 +10:00
|
|
|
console.error(e); // eslint-disable-line no-console
|
2017-05-17 10:59:43 +10:00
|
|
|
});
|
2017-05-11 19:26:06 +10:00
|
|
|
} else {
|
|
|
|
main();
|
2017-05-03 10:04:16 +10:00
|
|
|
}
|