anchor.diff:      for (var i = 0; i < milliseconds; i++) {
         var tickTime = ++_time;
         runAsync(() {
  -        List<StreamController> controllers = _subscriptions.toList();
  -        for (StreamController controller in controllers) {
  -          if (_subscriptions.contains(controller)) {
  -            controller.add(tickTime);
  -          }
  -        }
  +        _multiplexController.add(tickTime);
         });
       }
     }
  
positive.code:   int get time => _time;
    int _time = 0;
  
    /// Collection of controllers of all subscribed listeners.
    ///
    /// [StreamController] is not overriding [Object.operator==], so this is
    /// effectively an identity map.
    Set<StreamController> _subscriptions = new Set<StreamController>();
  
    Clock._();
  
    /// The stream of millisecond ticks of the clock.
    Stream<int> get onTick {
      StreamController<int> controller;
      controller = new StreamController<int>(
          onListen: () {
            _subscriptions.add(controller);
          },
          onCancel: () {
            _subscriptions.remove(controller);
          });
      return controller.stream;
    }
  
  
    /// Advances the clock forward by [milliseconds]. This works like synchronous
    /// code that takes [milliseconds] to execute; any [Timer]s that are scheduled
  
negative.code:   /// code runs before the next tick.
    void run() {
      pumpEventQueue().then((_) {
        if (!_multiplexController.hasListener) return;
        tick();
        return run();
      });
  