anchor.diff:        subscriptions = _mouseOutSubscriptions;
       }
       if(subscriptions.containsKey(element.hashCode)) {
  +      _logger.fine("cancelling $event for element ${element.hashCode}");
         subscriptions[element.hashCode].cancel();
       }
       subscriptions.remove(element.hashCode);
  
positive.code:     _dragOutStreamController.add(new DragEvent(this, _currentTarget, event, event.currentTarget));
    }
    void _mouseMoveHandler(MouseEvent event) {
      // do actual start in case we were pending before
      _pendingToDrag();
  
  
negative.code:   StreamSubscription _mouseUpSubscription;
    set autoStop(bool a) {
      if(_autoStop != a) {
        _logger.finer("changing autoStop to $a");
        _autoStop = a;
        if(a) {
          // register up handler or resume existing
          if(_mouseUpSubscription == null) {
            _logger.finest("adding mouse up event to document");
            _mouseUpSubscription = document.onMouseUp.listen(_mouseUp);
          } else {
            _logger.finest("resuming mouse up event on document");
            _mouseUpSubscription.resume();
          }
        } else {
          // pause up handler
          _logger.finest("pausing mouse up event on document");
          _mouseUpSubscription.pause();
        }
      }
  