anchor.diff:  
     /// When dragging stops, unsubscribe from monitoring dragging events except
     /// the starting one.
  -  void dragEnd(MouseEvent e) {
  -    assert(_dragSubscr != null && _dragEndSubscr != null);
  +  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.
  -    _dragSubscr.cancel();
  -    _dragSubscr = null;
  -    _dragEndSubscr.cancel();
  -    _dragEndSubscr = null;
  +    _trackSubscr.cancel();
  +    _trackSubscr = null;
  +    _trackEndSubscr.cancel();
  +    _trackEndSubscr = null;
   
       classes.remove('active');
     }
  
positive.code: 
    /// When dragging starts, cache the target's size and temporarily subscribe
    /// to necessary events to track dragging.
    void dragStart(MouseEvent e) {
      // Make active regardless of [locked], to appear responsive.
      classes.add('active');
  
  
negative.code:   static final _sizeRe = new RegExp("([0-9]+)(\.[0-9]+)?px");
  
    /// Temporary subsciptions to event streams, active only during dragging.
    StreamSubscription<MouseEvent> _trackSubscr;
    StreamSubscription<MouseEvent> _trackEndSubscr;
  
    /// Constructor.
    SparkSplitter.created() : super.created() {
  