You can change the function below! (But don't change the name.) Once you've finished editing, click outside the box to re-eval().
Enter timeout and hit enter:
What's going on: We call setPreciseTimeout in a loop. setPreciseTimeout(callback, last+ms) where _last_ is the last time the callback ran. (Your function has it in scope.) Your function can call too_long_by to tell the tester that it woke up late. The argument is the number of milliseconds late we were.