anchor.diff:        head = new Position.fromProxy(obj['head']),
         anchor = new Position.fromProxy(obj['anchor']);
   
  +  JsObject toProxy() =>
  +      jsify({'head': head.toProxy(), 'anchor': anchor.toProxy()});
  +
     operator==(other) => other is Span &&
         head == other.head && anchor == other.anchor;
   
  
positive.code:    */
    void replaceSelections(Iterable<String> replacement, {String select}) {
      callArgs('replaceSelections', select != null ?
          [new JsObject.jsify(replacement), select] :
          [new JsObject.jsify(replacement)]);
    }
  
    /**
  
negative.code:    * options as [setSelection].
     */
    void setSelections(Iterable<Span> ranges, {int primary, Map options}) {
      callArgs('setSelections', [new JsArray.from(ranges.map((Span range) =>
          range.toProxy())), primary, options]);
    }
  
    /**
  