'use strict'; const binding = internalBinding('performance'); const { milestones, getTimeOrigin, } = binding; // TODO(joyeecheung): we may want to warn about access to // this during snapshot building. let timeOrigin = getTimeOrigin(); function now() { const hr = process.hrtime(); return (hr[0] * 1000 + hr[1] / 1e6) - timeOrigin; } function getMilestoneTimestamp(milestoneIdx) { const ns = milestones[milestoneIdx]; if (ns === -1) return ns; return ns / 1e6 - timeOrigin; } function refreshTimeOrigin() { timeOrigin = getTimeOrigin(); } module.exports = { now, getMilestoneTimestamp, refreshTimeOrigin };