in lib/fake_async.dart [231:243]
void _fireTimersWhile(bool Function(FakeTimer timer) predicate) {
flushMicrotasks();
for (;;) {
if (_timers.isEmpty) break;
var timer = minBy(_timers, (FakeTimer timer) => timer._nextCall)!;
if (!predicate(timer)) break;
_elapseTo(timer._nextCall);
timer._fire();
flushMicrotasks();
}
}