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]
 | |
| } |