mirror of
https://github.com/cachix/install-nix-action.git
synced 2025-05-14 19:57:15 +00:00
v6
This commit is contained in:
parent
cd5893b2c6
commit
70742d22d9
6774 changed files with 1602535 additions and 1 deletions
53
node_modules/w3c-hr-time/lib/performance.js
generated
vendored
Normal file
53
node_modules/w3c-hr-time/lib/performance.js
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
"use strict";
|
||||
|
||||
// Actual implementation of the Performance class.
|
||||
|
||||
const clockIsAccurate = require("./clock-is-accurate");
|
||||
const calculateClockOffset = require("./calculate-clock-offset");
|
||||
const { hrtime, toMS } = require("./utils");
|
||||
|
||||
const kTimeOrigin = Symbol("time origin");
|
||||
const kTimeOriginTimestamp = Symbol("time origin timestamp");
|
||||
|
||||
class Performance {
|
||||
constructor() {
|
||||
// Time origin.
|
||||
const timeOrigin = hrtime();
|
||||
this[kTimeOrigin] = timeOrigin;
|
||||
|
||||
if (clockIsAccurate) {
|
||||
// Let |t1| be the DOMHighResTimeStamp representing the high resolution Unix time at which the global monotonic
|
||||
// clock is zero. This has to be calculated for every Performance object to account for clock drifts.
|
||||
const t1 = calculateClockOffset();
|
||||
|
||||
// Let |t2| be the DOMHighResTimeStamp representing the high resolution time value of the global monotonic clock
|
||||
// at global's time origin.
|
||||
const t2 = toMS(timeOrigin);
|
||||
|
||||
// Return the sum of |t1| and |t2|.
|
||||
this[kTimeOriginTimestamp] = t1 + t2;
|
||||
} else {
|
||||
// Clock isn't accurate enough. Use millisecond accuracy per spec.
|
||||
const cur = Date.now();
|
||||
this[kTimeOriginTimestamp] = cur;
|
||||
}
|
||||
}
|
||||
|
||||
// The timeOrigin getter actually returns the time origin timestamp, not the raw time origin.
|
||||
get timeOrigin() {
|
||||
return this[kTimeOriginTimestamp];
|
||||
}
|
||||
|
||||
now() {
|
||||
const diff = toMS(hrtime(this[kTimeOrigin]));
|
||||
return clockIsAccurate ? diff : Math.round(diff);
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
return {
|
||||
timeOrigin: this.timeOrigin
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { Performance };
|
Loading…
Add table
Add a link
Reference in a new issue