46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'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);
 | 
						|
    });
 | 
						|
  }
 | 
						|
}
 | 
						|
 |