diff options
author | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
commit | 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch) | |
tree | 75be5fba4368472fb11c8015aee026b2b9a71888 /includes/external/school/node_modules/w3c-hr-time/lib/performance.js | |
parent | 8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff) | |
download | pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2 pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip |
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'includes/external/school/node_modules/w3c-hr-time/lib/performance.js')
-rw-r--r-- | includes/external/school/node_modules/w3c-hr-time/lib/performance.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/includes/external/school/node_modules/w3c-hr-time/lib/performance.js b/includes/external/school/node_modules/w3c-hr-time/lib/performance.js new file mode 100644 index 0000000..4bcfbc3 --- /dev/null +++ b/includes/external/school/node_modules/w3c-hr-time/lib/performance.js @@ -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 }; |