anchor.diff:  
     Queue<Function> _microTasks = new Queue();
   
  -  Map<int, _FakeTimer> _timers = {};
  -  var _nextTimerId = 1;
  +  Set<_FakeTimer> _timers = new Set<_FakeTimer>();
     bool _waitingForTimer = false;
   
  -  _createTimer(Duration duration, Function callback, bool isPeriodic) {
  -    var id = _nextTimerId++;
  -    return _timers[id] =
  -        new _FakeTimer._(duration, callback, isPeriodic, this, id);
  +  Timer _createTimer(Duration duration, Function callback, bool isPeriodic) {
  +    var timer = new _FakeTimer._(duration, callback, isPeriodic, this);
  +    _timers.add(timer);
  +    return timer;
     }
   
     _FakeTimer _getNextTimer() {
  -    return min(_timers.values.where((timer) =>
  +    return min(_timers.where((timer) =>
           timer._nextCall.millisecondsSinceEpoch <= _now.millisecondsSinceEpoch ||
           (_elapsingTo != null &&
            timer._nextCall.millisecondsSinceEpoch <=
  
positive.code:       timer._nextCall = timer._nextCall.add(timer._duration);
      } else {
        timer._callback();
        _timers.remove(timer._id);
      }
    }
  
  
negative.code:     }
    }
  
    _cancelTimer(_FakeTimer timer) => _timers.remove(timer);
  
  }
  
  class _FakeTimer implements Timer {
  
    final Duration _duration;
    final Function _callback;
    final bool _isPeriodic;
  