include("mjsunit"); function onLoad () { assertInstanceof(setTimeout, Function); var starttime = new Date; setTimeout(function () { var endtime = new Date; var diff = endtime - starttime; if (diff < 0) diff = -diff; assertTrue(900 < diff || diff < 1100); }, 1000); // this timer shouldn't execute var id = setTimeout(function () { assertTrue(false); }, 500); clearTimeout(id); var count = 0; setInterval(function () { count += 1; var endtime = new Date; var diff = endtime - starttime; if (diff < 0) diff = -diff; puts(diff); var t = count * 1000; assertTrue(t - 100 < diff || diff < t + 100); assertTrue(count <= 3); if (count == 3) clearInterval(this); }, 1000); }