anchor.diff:        });
       };
     }
  -  
  -  // Create an overwrite object that implements overwrite mode on the input element 
  +
  +  // Create an overwrite object that implements overwrite mode on the input element
     OverwriteElement(TextAreaElement this._element) {
       // create a stream controller for the element
       _streamController = new StreamController<OverwriteEvent>();
  -    
  +
       // create element for determining text width
       _widthEl = new PreElement()
         // set style elements to make invisible
  
positive.code:     // On paste, remove enough characters to make room for the text that will be pasted
      _pasteSub = _element.onPaste.listen(_changeEventFunction((Event e) {
        // remove enough characters to make room for pasted text
        _element.setRangeText("", _element.selectionStart, _element.selectionStart + e.clipboardData.getData("Text").length, "start");
      }));
      
      // On cut, add in enough spaces to compensate for the text that will be removed
      _cutSub = _element.onCut.listen(_changeEventFunction((Event e) {
        // create a string of spaces the same length as the text that will be cut
  
negative.code:       _pressSub.pause();
      }
    }
  
    // Pad the contents of the input element to make the contents as wide as the element
    void _updateWidth() {
  
      // copy font style from element
      _widthEl.style.font = _element.getComputedStyle().font;
      // put element value in hidden element
  