“use strict”; var schedule; var util = require(“./util”); var noAsyncScheduler = function() {
throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/m3OTXk\u000a");
}; if (util.isNode && typeof MutationObserver === “undefined”) {
var GlobalSetImmediate = global.setImmediate; var ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function(fn) { GlobalSetImmediate.call(global, fn); } : function(fn) { ProcessNextTick.call(process, fn); };
} else if ((typeof MutationObserver !== “undefined”) &&
!(typeof window !== "undefined" && window.navigator && window.navigator.standalone)) { schedule = function(fn) { var div = document.createElement("div"); var observer = new MutationObserver(fn); observer.observe(div, {attributes: true}); return function() { div.classList.toggle("foo"); }; }; schedule.isStatic = true;
} else if (typeof setImmediate !== “undefined”) {
schedule = function (fn) { setImmediate(fn); };
} else if (typeof setTimeout !== “undefined”) {
schedule = function (fn) { setTimeout(fn, 0); };
} else {
schedule = noAsyncScheduler;
} module.exports = schedule;