Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81160 views
1
"use strict";
2
var schedule;
3
var util = require("./util");
4
var noAsyncScheduler = function() {
5
throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/m3OTXk\u000a");
6
};
7
if (util.isNode && typeof MutationObserver === "undefined") {
8
var GlobalSetImmediate = global.setImmediate;
9
var ProcessNextTick = process.nextTick;
10
schedule = util.isRecentNode
11
? function(fn) { GlobalSetImmediate.call(global, fn); }
12
: function(fn) { ProcessNextTick.call(process, fn); };
13
} else if (typeof MutationObserver !== "undefined") {
14
schedule = function(fn) {
15
var div = document.createElement("div");
16
var observer = new MutationObserver(fn);
17
observer.observe(div, {attributes: true});
18
return function() { div.classList.toggle("foo"); };
19
};
20
schedule.isStatic = true;
21
} else if (typeof setImmediate !== "undefined") {
22
schedule = function (fn) {
23
setImmediate(fn);
24
};
25
} else if (typeof setTimeout !== "undefined") {
26
schedule = function (fn) {
27
setTimeout(fn, 0);
28
};
29
} else {
30
schedule = noAsyncScheduler;
31
}
32
module.exports = schedule;
33
34