2017-05-11 05:26:06 -04:00
|
|
|
import main from '../mastodon/main';
|
|
|
|
|
2017-05-24 11:55:00 -04: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([
|
|
|
|
import('../mastodon/base_polyfills'),
|
|
|
|
import('../mastodon/extra_polyfills'),
|
|
|
|
]).then(main).catch(e => {
|
|
|
|
console.error(e); // eslint-disable-line no-console
|
|
|
|
});
|
|
|
|
} else if (needsExtraPolyfills) {
|
|
|
|
import('../mastodon/extra_polyfills').then(main).catch(e => {
|
2017-05-20 11:31:47 -04:00
|
|
|
console.error(e); // eslint-disable-line no-console
|
2017-05-16 20:59:43 -04:00
|
|
|
});
|
2017-05-11 05:26:06 -04:00
|
|
|
} else {
|
|
|
|
main();
|
2017-05-02 20:04:16 -04:00
|
|
|
}
|