28 lines
		
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | module.exports = process.hrtime || hrtime | ||
|  | 
 | ||
|  | // polyfil for window.performance.now
 | ||
|  | var performance = global.performance || {} | ||
|  | var performanceNow = | ||
|  |   performance.now        || | ||
|  |   performance.mozNow     || | ||
|  |   performance.msNow      || | ||
|  |   performance.oNow       || | ||
|  |   performance.webkitNow  || | ||
|  |   function(){ return (new Date()).getTime() } | ||
|  | 
 | ||
|  | // generate timestamp or delta
 | ||
|  | // see http://nodejs.org/api/process.html#process_process_hrtime
 | ||
|  | function hrtime(previousTimestamp){ | ||
|  |   var clocktime = performanceNow.call(performance)*1e-3 | ||
|  |   var seconds = Math.floor(clocktime) | ||
|  |   var nanoseconds = Math.floor((clocktime%1)*1e9) | ||
|  |   if (previousTimestamp) { | ||
|  |     seconds = seconds - previousTimestamp[0] | ||
|  |     nanoseconds = nanoseconds - previousTimestamp[1] | ||
|  |     if (nanoseconds<0) { | ||
|  |       seconds-- | ||
|  |       nanoseconds += 1e9 | ||
|  |     } | ||
|  |   } | ||
|  |   return [seconds,nanoseconds] | ||
|  | } |