-
Notifications
You must be signed in to change notification settings - Fork 108
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: return fake version for
performance.timeOrigin
(#515)
* fix: return fake version for `performance.timeOrigin` Fixes #514 * Simplify implementation * Update comment --------- Co-authored-by: Carl-Erik Kopseng <[email protected]>
- Loading branch information
Showing
2 changed files
with
13 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,6 @@ if (typeof require === "function" && typeof module === "object") { | |
|
||
/** | ||
* Queues a function to be called during a browser's idle periods | ||
* | ||
* @callback RequestIdleCallback | ||
* @param {function(IdleDeadline)} callback | ||
* @param {{timeout: number}} options - an options object | ||
|
@@ -106,7 +105,6 @@ if (typeof require === "function" && typeof module === "object") { | |
|
||
/** | ||
* Configuration object for the `install` method. | ||
* | ||
* @typedef {object} Config | ||
* @property {number|Date} [now] a number (in milliseconds) or a Date object (default epoch) | ||
* @property {string[]} [toFake] names of the methods that should be faked. | ||
|
@@ -120,7 +118,6 @@ if (typeof require === "function" && typeof module === "object") { | |
/* eslint-disable jsdoc/require-property-description */ | ||
/** | ||
* The internal structure to describe a scheduled fake timer | ||
* | ||
* @typedef {object} Timer | ||
* @property {Function} func | ||
* @property {*[]} args | ||
|
@@ -134,7 +131,6 @@ if (typeof require === "function" && typeof module === "object") { | |
|
||
/** | ||
* A Node timer | ||
* | ||
* @typedef {object} NodeImmediate | ||
* @property {function(): boolean} hasRef | ||
* @property {function(): NodeImmediate} ref | ||
|
@@ -146,7 +142,6 @@ if (typeof require === "function" && typeof module === "object") { | |
|
||
/** | ||
* Mocks available features in the specified global namespace. | ||
* | ||
* @param {*} _global Namespace to mock (e.g. `window`) | ||
* @returns {FakeTimers} | ||
*/ | ||
|
@@ -276,7 +271,6 @@ function withGlobal(_global) { | |
* Parse strings like "01:10:00" (meaning 1 hour, 10 minutes, 0 seconds) into | ||
* number of milliseconds. This is used to support human-readable strings passed | ||
* to clock.tick() | ||
* | ||
* @param {string} str | ||
* @returns {number} | ||
*/ | ||
|
@@ -312,7 +306,6 @@ function withGlobal(_global) { | |
|
||
/** | ||
* Get the decimal part of the millisecond value as nanoseconds | ||
* | ||
* @param {number} msFloat the number of milliseconds | ||
* @returns {number} an integer number of nanoseconds in the range [0,1e6) | ||
* | ||
|
@@ -329,7 +322,6 @@ function withGlobal(_global) { | |
|
||
/** | ||
* Used to grok the `now` parameter to createClock. | ||
* | ||
* @param {Date|number} epoch the system time | ||
* @returns {number} | ||
*/ | ||
|
@@ -483,7 +475,6 @@ function withGlobal(_global) { | |
/** | ||
* A normal Class constructor cannot be called without `new`, but Date can, so we need | ||
* to wrap it in a Proxy in order to ensure this functionality of Date is kept intact | ||
* | ||
* @type {ClockDate} | ||
*/ | ||
const ClockDateProxy = new Proxy(ClockDate, { | ||
|
@@ -510,7 +501,6 @@ function withGlobal(_global) { | |
* Most of the properties are the original native ones, | ||
* but we need to take control of those that have a | ||
* dependency on the current clock. | ||
* | ||
* @returns {object} the partly fake Intl implementation | ||
*/ | ||
function createIntl() { | ||
|
@@ -683,7 +673,6 @@ function withGlobal(_global) { | |
/* eslint consistent-return: "off" */ | ||
/** | ||
Check warning on line 674 in src/fake-timers-src.js GitHub Actions / lint
|
||
* Timer comparitor | ||
* | ||
* @param {Timer} a | ||
* @param {Timer} b | ||
* @returns {number} | ||
|
@@ -815,7 +804,6 @@ function withGlobal(_global) { | |
|
||
/** | ||
Check warning on line 805 in src/fake-timers-src.js GitHub Actions / lint
|
||
* Gets clear handler name for a given timer type | ||
* | ||
* @param {string} ttype | ||
*/ | ||
function getClearHandler(ttype) { | ||
|
@@ -827,7 +815,6 @@ function withGlobal(_global) { | |
|
||
/** | ||
Check warning on line 816 in src/fake-timers-src.js GitHub Actions / lint
|
||
* Gets schedule handler name for a given timer type | ||
* | ||
* @param {string} ttype | ||
*/ | ||
function getScheduleHandler(ttype) { | ||
|
@@ -1183,13 +1170,11 @@ function withGlobal(_global) { | |
|
||
/** | ||
* A high resolution timestamp in milliseconds. | ||
* | ||
* @typedef {number} DOMHighResTimeStamp | ||
*/ | ||
|
||
/** | ||
* performance.now() | ||
* | ||
* @returns {DOMHighResTimeStamp} | ||
*/ | ||
function fakePerformanceNow() { | ||
|
@@ -1848,6 +1833,9 @@ function withGlobal(_global) { | |
new FakePerformanceEntry(name, "mark", 0, 0); | ||
clock.performance.measure = (name) => | ||
new FakePerformanceEntry(name, "measure", 0, 100); | ||
// `timeOrigin` should return the time of when the Window session started | ||
// (or the Worker was installed) | ||
clock.performance.timeOrigin = getEpoch(config.now); | ||
} else if ((config.toFake || []).includes("performance")) { | ||
return handleMissingTimer("performance"); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters