Extract polyfill loading into single module (#3421)
This commit is contained in:
parent
76fa9d2488
commit
b42bdd80e8
3 changed files with 44 additions and 39 deletions
|
@ -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
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue