anchor.diff:     * options as [setSelection].
      */
     void setSelections(Iterable<Span> ranges, {int primary, Map options}) {
  -    callArgs('setSelections', [new JsArray.from(ranges.map((Span range) {
  -      return new JsObject.jsify({
  -        'anchor': range.anchor.toProxy(),
  -        'head': range.head?.toProxy()
  -      });
  -    })), primary, options]);
  +    callArgs('setSelections', [new JsArray.from(ranges.map((Span range) =>
  +        range.toProxy())), primary, options]);
     }
   
     /**
  
positive.code:    */
    void replaceSelections(Iterable<String> replacement, {String select}) {
      callArgs('replaceSelections', select != null ?
          [new JsObject.jsify(replacement), select] :
          [new JsObject.jsify(replacement)]);
    }
  
    /**
  
negative.code:       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;
  
  