anchor.diff:  
     void fastForward(Duration offset) {
       if (_useParentZone) {
  -      throw new StateError("Can only fast forward once.");
  +      throw new StateError("Cannot fast forward if switched to parent zone.");
       }
       if (offset.inMicroseconds < 0) {
         throw new ArgumentError('Cannot fast forward with negative duration');
  
positive.code:   }
  
    ZoneSpecification get _zoneSpec => new ZoneSpecification(
            createTimer: (_, parent, zone, Duration duration, Function callback) {
          return _createTimer(parent, zone, duration, callback, false);
        }, createPeriodicTimer:
                (_, parent, zone, Duration duration, Function callback) {
          return _createTimer(parent, zone, duration, callback, true);
        }, scheduleMicrotask: (_, parent, zone, Function microtask) {
          if (_useParentZone) {
            parent.scheduleMicrotask(microtask);
          } else {
            _microtasks.add(microtask);
          }
        });
  
    _runTimersUntil(Duration elapsingTo) {
      var next;
  
negative.code:       } else {
          _zone.parent.createTimer(t.nextCall - _elapsed, t.callback);
        }
        _timers.remove(t);
      }
    }
  
    _hasTimer(timer) => _timers.contains(timer);
  