| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | 
							- // shim for using process in browser
 
- var process = module.exports = {};
 
- // cached from whatever global is present so that test runners that stub it
 
- // don't break things.  But we need to wrap it in a try catch in case it is
 
- // wrapped in strict mode code which doesn't define any globals.  It's inside a
 
- // function because try/catches deoptimize in certain engines.
 
- var cachedSetTimeout;
 
- var cachedClearTimeout;
 
- function defaultSetTimout() {
 
-     throw new Error('setTimeout has not been defined');
 
- }
 
- function defaultClearTimeout () {
 
-     throw new Error('clearTimeout has not been defined');
 
- }
 
- (function () {
 
-     try {
 
-         if (typeof setTimeout === 'function') {
 
-             cachedSetTimeout = setTimeout;
 
-         } else {
 
-             cachedSetTimeout = defaultSetTimout;
 
-         }
 
-     } catch (e) {
 
-         cachedSetTimeout = defaultSetTimout;
 
-     }
 
-     try {
 
-         if (typeof clearTimeout === 'function') {
 
-             cachedClearTimeout = clearTimeout;
 
-         } else {
 
-             cachedClearTimeout = defaultClearTimeout;
 
-         }
 
-     } catch (e) {
 
-         cachedClearTimeout = defaultClearTimeout;
 
-     }
 
- } ())
 
- function runTimeout(fun) {
 
-     if (cachedSetTimeout === setTimeout) {
 
-         //normal enviroments in sane situations
 
-         return setTimeout(fun, 0);
 
-     }
 
-     // if setTimeout wasn't available but was latter defined
 
-     if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
 
-         cachedSetTimeout = setTimeout;
 
-         return setTimeout(fun, 0);
 
-     }
 
-     try {
 
-         // when when somebody has screwed with setTimeout but no I.E. maddness
 
-         return cachedSetTimeout(fun, 0);
 
-     } catch(e){
 
-         try {
 
-             // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
 
-             return cachedSetTimeout.call(null, fun, 0);
 
-         } catch(e){
 
-             // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
 
-             return cachedSetTimeout.call(this, fun, 0);
 
-         }
 
-     }
 
- }
 
- function runClearTimeout(marker) {
 
-     if (cachedClearTimeout === clearTimeout) {
 
-         //normal enviroments in sane situations
 
-         return clearTimeout(marker);
 
-     }
 
-     // if clearTimeout wasn't available but was latter defined
 
-     if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
 
-         cachedClearTimeout = clearTimeout;
 
-         return clearTimeout(marker);
 
-     }
 
-     try {
 
-         // when when somebody has screwed with setTimeout but no I.E. maddness
 
-         return cachedClearTimeout(marker);
 
-     } catch (e){
 
-         try {
 
-             // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
 
-             return cachedClearTimeout.call(null, marker);
 
-         } catch (e){
 
-             // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
 
-             // Some versions of I.E. have different rules for clearTimeout vs setTimeout
 
-             return cachedClearTimeout.call(this, marker);
 
-         }
 
-     }
 
- }
 
- var queue = [];
 
- var draining = false;
 
- var currentQueue;
 
- var queueIndex = -1;
 
- function cleanUpNextTick() {
 
-     if (!draining || !currentQueue) {
 
-         return;
 
-     }
 
-     draining = false;
 
-     if (currentQueue.length) {
 
-         queue = currentQueue.concat(queue);
 
-     } else {
 
-         queueIndex = -1;
 
-     }
 
-     if (queue.length) {
 
-         drainQueue();
 
-     }
 
- }
 
- function drainQueue() {
 
-     if (draining) {
 
-         return;
 
-     }
 
-     var timeout = runTimeout(cleanUpNextTick);
 
-     draining = true;
 
-     var len = queue.length;
 
-     while(len) {
 
-         currentQueue = queue;
 
-         queue = [];
 
-         while (++queueIndex < len) {
 
-             if (currentQueue) {
 
-                 currentQueue[queueIndex].run();
 
-             }
 
-         }
 
-         queueIndex = -1;
 
-         len = queue.length;
 
-     }
 
-     currentQueue = null;
 
-     draining = false;
 
-     runClearTimeout(timeout);
 
- }
 
- process.nextTick = function (fun) {
 
-     var args = new Array(arguments.length - 1);
 
-     if (arguments.length > 1) {
 
-         for (var i = 1; i < arguments.length; i++) {
 
-             args[i - 1] = arguments[i];
 
-         }
 
-     }
 
-     queue.push(new Item(fun, args));
 
-     if (queue.length === 1 && !draining) {
 
-         runTimeout(drainQueue);
 
-     }
 
- };
 
- // v8 likes predictible objects
 
- function Item(fun, array) {
 
-     this.fun = fun;
 
-     this.array = array;
 
- }
 
- Item.prototype.run = function () {
 
-     this.fun.apply(null, this.array);
 
- };
 
- process.title = 'browser';
 
- process.browser = true;
 
- process.env = {};
 
- process.argv = [];
 
- process.version = ''; // empty string to avoid regexp issues
 
- process.versions = {};
 
- function noop() {}
 
- process.on = noop;
 
- process.addListener = noop;
 
- process.once = noop;
 
- process.off = noop;
 
- process.removeListener = noop;
 
- process.removeAllListeners = noop;
 
- process.emit = noop;
 
- process.prependListener = noop;
 
- process.prependOnceListener = noop;
 
- process.listeners = function (name) { return [] }
 
- process.binding = function (name) {
 
-     throw new Error('process.binding is not supported');
 
- };
 
- process.cwd = function () { return '/' };
 
- process.chdir = function (dir) {
 
-     throw new Error('process.chdir is not supported');
 
- };
 
- process.umask = function() { return 0; };
 
 
  |