anchor.diff:        // the entire document; otherwise, once/if the cursor leaves the boundary
         // of our element, the events will stop firing, leaving us in a permanent
         // "sticky" dragging state.
  -      _dragSubscr = document.onMouseMove.listen(drag);
  -      _dragEndSubscr = document.onMouseUp.listen(dragEnd);
  +      _trackSubscr = document.onMouseMove.listen(track);
  +      _trackEndSubscr = document.onMouseUp.listen(trackEnd);
       }
     }
   
     /// While dragging, update the target's size based on the mouse movement.
  -  void drag(MouseEvent e) {
  +  void track(MouseEvent e) {
       // Recheck [locked], in case it's been changed externally in mid-flight.
       if (!locked) {
         _updateTargetSize(_isHorizontal ? e.movement.y : e.movement.x);
  
positive.code:   static final _sizeRe = new RegExp("([0-9]+)(\.[0-9]+)?px");
  
    /// Temporary subsciptions to event streams, active only during dragging.
    StreamSubscription<MouseEvent> _dragSubscr;
    StreamSubscription<MouseEvent> _dragEndSubscr;
  
    /// Constructor.
    SparkSplitter.created() : super.created() {
  
negative.code: 
    /// When dragging stops, unsubscribe from monitoring dragging events except
    /// the starting one.
    void trackEnd(MouseEvent e) {
      assert(_trackSubscr != null && _trackEndSubscr != null);
      // Do this regardless of [locked]. The only case [locked] can be true here
      // is when it's been changed externally in mid-flight. If it's already true
      // when onMouseDown is fired, these subsciptions (and this event handler!)
      // are not activated in the first place.
      _trackSubscr.cancel();
      _trackSubscr = null;
      _trackEndSubscr.cancel();
      _trackEndSubscr = null;
  
      classes.remove('active');
    }
  