12345678910111213141516171819202122232425262728293031323334353637383940 |
- "use strict";
- var schedule;
- var noAsyncScheduler = function() {
- throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/m3OTXk\u000a");
- };
- if (require("./util.js").isNode) {
- var version = process.versions.node.split(".").map(Number);
- schedule = (version[0] === 0 && version[1] > 10) || (version[0] > 0)
- ? function(fn) { global.setImmediate(fn); } : process.nextTick;
- if (!schedule) {
- if (typeof setImmediate !== "undefined") {
- schedule = setImmediate;
- } else if (typeof setTimeout !== "undefined") {
- schedule = setTimeout;
- } else {
- schedule = noAsyncScheduler;
- }
- }
- } else if (typeof MutationObserver !== "undefined") {
- 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;
|