| Index: runtime/lib/timer_impl.dart
|
| diff --git a/runtime/lib/timer_impl.dart b/runtime/lib/timer_impl.dart
|
| index 9a2d3ffbc1ac31eb29c984055da603f0cf609805..8c0a670abdfdaedafdb94b18d33dc589c7e4e2fa 100644
|
| --- a/runtime/lib/timer_impl.dart
|
| +++ b/runtime/lib/timer_impl.dart
|
| @@ -348,8 +348,9 @@ class _Timer implements Timer {
|
| // callbacks will be enqueued now and notified in the next spin at the
|
| // earliest.
|
| _handlingCallbacks = true;
|
| + var i = 0;
|
| try {
|
| - for (var i = 0; i < pendingTimers.length; i++) {
|
| + for (; i < pendingTimers.length; i++) {
|
| // Next pending timer.
|
| var timer = pendingTimers[i];
|
| timer._indexOrNext = null;
|
| @@ -378,6 +379,12 @@ class _Timer implements Timer {
|
| }
|
| } finally {
|
| _handlingCallbacks = false;
|
| + // Re-queue timers we didn't get to.
|
| + for (i++; i < pendingTimers.length; i++) {
|
| + var timer = pendingTimers[i];
|
| + timer._enqueue();
|
| + }
|
| + _notifyEventHandler();
|
| }
|
| }
|
|
|
|
|