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