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