Newer
Older
CVSS_3.0_GUI / dist / CVSS_3.0_Calc-1.0.0-linux-x64 / node_modules / nwjs-builder-phoenix / node_modules / dir-compare / node_modules / bluebird / js / release / schedule.js
root on 7 May 2019 1 KB Initial commit
  1. "use strict";
  2. var util = require("./util");
  3. var schedule;
  4. var noAsyncScheduler = function() {
  5. throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a");
  6. };
  7. var NativePromise = util.getNativePromise();
  8. if (util.isNode && typeof MutationObserver === "undefined") {
  9. var GlobalSetImmediate = global.setImmediate;
  10. var ProcessNextTick = process.nextTick;
  11. schedule = util.isRecentNode
  12. ? function(fn) { GlobalSetImmediate.call(global, fn); }
  13. : function(fn) { ProcessNextTick.call(process, fn); };
  14. } else if (typeof NativePromise === "function") {
  15. var nativePromise = NativePromise.resolve();
  16. schedule = function(fn) {
  17. nativePromise.then(fn);
  18. };
  19. } else if ((typeof MutationObserver !== "undefined") &&
  20. !(typeof window !== "undefined" &&
  21. window.navigator &&
  22. window.navigator.standalone)) {
  23. schedule = (function() {
  24. var div = document.createElement("div");
  25. var opts = {attributes: true};
  26. var toggleScheduled = false;
  27. var div2 = document.createElement("div");
  28. var o2 = new MutationObserver(function() {
  29. div.classList.toggle("foo");
  30. toggleScheduled = false;
  31. });
  32. o2.observe(div2, opts);
  33.  
  34. var scheduleToggle = function() {
  35. if (toggleScheduled) return;
  36. toggleScheduled = true;
  37. div2.classList.toggle("foo");
  38. };
  39.  
  40. return function schedule(fn) {
  41. var o = new MutationObserver(function() {
  42. o.disconnect();
  43. fn();
  44. });
  45. o.observe(div, opts);
  46. scheduleToggle();
  47. };
  48. })();
  49. } else if (typeof setImmediate !== "undefined") {
  50. schedule = function (fn) {
  51. setImmediate(fn);
  52. };
  53. } else if (typeof setTimeout !== "undefined") {
  54. schedule = function (fn) {
  55. setTimeout(fn, 0);
  56. };
  57. } else {
  58. schedule = noAsyncScheduler;
  59. }
  60. module.exports = schedule;
Buy Me A Coffee