anchor.diff:            new List<int>.filled(_element.selectionEnd - _element.selectionStart, " ".codeUnitAt(0))
         );
         // add a string of spaces after the string that will be cut
  -      _element.setRangeText(fillString, _element.selectionEnd, _element.selectionEnd);
  +      _element.setRangeText(fillString, start: _element.selectionEnd, end: _element.selectionEnd);
       }));
  -    
  +
       // On key down, add spaces for every character deleted on backspace and delete key
       _downSub = _element.onKeyDown.listen(_changeEventFunction((KeyboardEvent e) {
         // if start and end are equal, there is no selection
  -      if(_element.selectionStart == _element.selectionEnd) { 
  +      if(_element.selectionStart == _element.selectionEnd) {
           if(e.which == 8) {
             // don't do anything if cursor is at the end
             if(_element.selectionStart != 0) {
  
positive.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
  
negative.code:       });
      };
    }
  
    // 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
  