index.js
 1  module.exports = process.hrtime || hrtime
 2  
 3  // polyfil for window.performance.now
 4  var performance = global.performance || {}
 5  var performanceNow =
 6    performance.now        ||
 7    performance.mozNow     ||
 8    performance.msNow      ||
 9    performance.oNow       ||
10    performance.webkitNow  ||
11    function(){ return (new Date()).getTime() }
12  
13  // generate timestamp or delta
14  // see http://nodejs.org/api/process.html#process_process_hrtime
15  function hrtime(previousTimestamp){
16    var clocktime = performanceNow.call(performance)*1e-3
17    var seconds = Math.floor(clocktime)
18    var nanoseconds = Math.floor((clocktime%1)*1e9)
19    if (previousTimestamp) {
20      seconds = seconds - previousTimestamp[0]
21      nanoseconds = nanoseconds - previousTimestamp[1]
22      if (nanoseconds<0) {
23        seconds--
24        nanoseconds += 1e9
25      }
26    }
27    return [seconds,nanoseconds]
28  }