Фейковые часы для тестирования таймеров
Напишите createFakeClock(start), где start — начальное время в миллисекундах (по умолчанию 0). Верните объект:
now()— текущее фейковое время;setTimeout(fn, ms)— планирует вызовfnчерезmsот текущего времени, возвращает id;clearTimeout(id)— отменяет таймер;advance(ms)— сдвигает время наmsи вызывает все таймеры, чей срок наступил, в порядке срока, а при равном сроке — в порядке создания. Во время вызоваfnметодnow()возвращает срок этого таймера. Таймеры, созданные внутриfn, тоже срабатывают в этомadvance, если их срок укладывается. Отрицательныйms—Error.
заготовка решения
function createFakeClock(start = 0) {
// ваш код
return undefined;
}