| 12345678910111213141516171819202122232425262728293031323334353637 |
- import { mocker } from './base';
- let time = 0;
- let timers = [];
- function tick(delta) {
- time += delta;
- let scheduledTimers = [];
- const filterTimer = ({ fn, ts, args }) => {
- if (time >= ts) {
- fn(...args);
- return false;
- }
- return true;
- };
- while (timers.length) {
- const processTimers = timers;
- timers = [];
- scheduledTimers = scheduledTimers.concat(processTimers.filter(filterTimer));
- }
- timers = scheduledTimers;
- }
- function now() {
- return time;
- }
- function setTimeout(fn, delta, ...args) {
- timers.push({ fn, ts: time + delta, args });
- return timers.length;
- }
- global.performance = { now };
- global.Date.now = now;
- global.setTimeout = setTimeout;
- mocker.clock = { tick };
|