/** * Start new timer * Example: timer = new it_timer({ object:this, method:"timer", timeout:100}); * * @param p.object Object to call method in when timer fires * @param p.method String with method name to call in object * @param p.timeout Timeout in milliseconds * @param p.continuous One-shot or continuous timer, default is one-shot * @return timer id (deprecated, use method stop() instead) */ function it_timer(p) { this.func = p.continuous ? "Interval" : "Timeout"; return this.timer = window["set" + this.func](function() { p.object[p.method](p) }, p.timeout); } it_timer.prototype = { stop: function() { if (this.timer) { window["clear" + this.func](this.timer); this.timer = null; } } /* NO COMMA */ } /** * Global helper function to benchmark javascript * @parameter label Message label like "start" or "end" * @paramter print Whether to output timerlog via ED() and clear it (optional) */ function it_timerlog(label, print) { if (window.it_timerlog_active) { var end = new Date().getTime(); if (typeof window.it_timernow != "undefined") { var start = window.it_timernow; if (window.it_timerlogmsg != "") window.it_timerlogmsg += ", "; window.it_timerlogmsg += label + ":" + (end - start); } else window.it_timerlogmsg = ""; window.it_timernow = end; if (print) { ED("timerlog: " + window.it_timerlogmsg); window.it_timerlogmsg = ""; } } } it_timerlog(""); // Set start time