Today I learned that AlpineJS 3.x uses queueMicrotask — and that that’s an API not supported in Firefox < 69 and Safari < 12.1 (see caniuse for full support information).
Luckily, this can easily be polyfilled:
if (typeof window.queueMicrotask !== "function") {
window.queueMicrotask = function (callback) {
Promise.resolve()
.then(callback)
.catch(e => setTimeout(() => { throw e; }));
};
}
Polyfilling queueMicrotask