| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | var scope = (typeof global !== "undefined" && global) ||            (typeof self !== "undefined" && self) ||            window;var apply = Function.prototype.apply;// DOM APIs, for completenessexports.setTimeout = function() {  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);};exports.setInterval = function() {  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);};exports.clearTimeout =exports.clearInterval = function(timeout) {  if (timeout) {    timeout.close();  }};function Timeout(id, clearFn) {  this._id = id;  this._clearFn = clearFn;}Timeout.prototype.unref = Timeout.prototype.ref = function() {};Timeout.prototype.close = function() {  this._clearFn.call(scope, this._id);};// Does not start the time, just sets up the members needed.exports.enroll = function(item, msecs) {  clearTimeout(item._idleTimeoutId);  item._idleTimeout = msecs;};exports.unenroll = function(item) {  clearTimeout(item._idleTimeoutId);  item._idleTimeout = -1;};exports._unrefActive = exports.active = function(item) {  clearTimeout(item._idleTimeoutId);  var msecs = item._idleTimeout;  if (msecs >= 0) {    item._idleTimeoutId = setTimeout(function onTimeout() {      if (item._onTimeout)        item._onTimeout();    }, msecs);  }};// setimmediate attaches itself to the global objectrequire("setimmediate");// On some exotic environments, it's not clear which object `setimmediate` was// able to install onto.  Search each possibility in the same order as the// `setimmediate` library.exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||                       (typeof global !== "undefined" && global.setImmediate) ||                       (this && this.setImmediate);exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||                         (typeof global !== "undefined" && global.clearImmediate) ||                         (this && this.clearImmediate);
 |