import {Timer, now} from "./timer.js"; export default function(callback, delay, time) { var t = new Timer, total = delay; if (delay == null) return t.restart(callback, delay, time), t; t._restart = t.restart; t.restart = function(callback, delay, time) { delay = +delay, time = time == null ? now() : +time; t._restart(function tick(elapsed) { elapsed += total; t._restart(tick, total += delay, time); callback(elapsed); }, delay, time); } t.restart(callback, delay, time); return t; }