| 'use strict'; | 
|   | 
| if (typeof process === 'undefined' || | 
|     !process.version || | 
|     process.version.indexOf('v0.') === 0 || | 
|     process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { | 
|   module.exports = { nextTick: nextTick }; | 
| } else { | 
|   module.exports = process | 
| } | 
|   | 
| function nextTick(fn, arg1, arg2, arg3) { | 
|   if (typeof fn !== 'function') { | 
|     throw new TypeError('"callback" argument must be a function'); | 
|   } | 
|   var len = arguments.length; | 
|   var args, i; | 
|   switch (len) { | 
|   case 0: | 
|   case 1: | 
|     return process.nextTick(fn); | 
|   case 2: | 
|     return process.nextTick(function afterTickOne() { | 
|       fn.call(null, arg1); | 
|     }); | 
|   case 3: | 
|     return process.nextTick(function afterTickTwo() { | 
|       fn.call(null, arg1, arg2); | 
|     }); | 
|   case 4: | 
|     return process.nextTick(function afterTickThree() { | 
|       fn.call(null, arg1, arg2, arg3); | 
|     }); | 
|   default: | 
|     args = new Array(len - 1); | 
|     i = 0; | 
|     while (i < args.length) { | 
|       args[i++] = arguments[i]; | 
|     } | 
|     return process.nextTick(function afterTick() { | 
|       fn.apply(null, args); | 
|     }); | 
|   } | 
| } |