code: function () {
                  timesliceExhausted = false;
                  if (immediateYield) { return true; }
                  if (wwaTaskScheduledAtPriorityHigherThan(toWwaPriority(highWaterMark))) { return true; }
                  if (!!drainQueue.length) { return false; }
                  if (now() > end) {
                      timesliceExhausted = true;
                      return true;
                  }
                  return false;
              }
docs: Yielding policy  @TODO, should we have a different scheduler policy when the debugger is attached. Today if you break in user code we will generally yield immediately after that job due to the fact that any breakpoint will take longer than TIME_SLICE to process.