in lib/fake_async.dart [129:140]
void elapse(Duration duration) {
if (duration.inMicroseconds < 0) {
throw ArgumentError.value(duration, 'duration', 'may not be negative');
} else if (_elapsingTo != null) {
throw StateError('Cannot elapse until previous elapse is complete.');
}
_elapsingTo = _elapsed + duration;
_fireTimersWhile((next) => next._nextCall <= _elapsingTo!);
_elapseTo(_elapsingTo!);
_elapsingTo = null;
}