33 lines
833 B
JavaScript
33 lines
833 B
JavaScript
import main from '../mastodon/main';
|
|
|
|
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 => {
|
|
console.error(e); // eslint-disable-line no-console
|
|
});
|
|
} else {
|
|
main();
|
|
}
|