anchor.diff:   */
   abstract class ContentCapable {
     List<Element> get elements;
  +
  +  /**
  +   * Gets inner html.
  +   */
  +  String get html {
  +    StringBuffer ret = new StringBuffer();
  +
  +    if (elements.length > 0) {
  +      List<Node> nodes = elements[0].childNodes;
  +
  +      nodes.forEach((Node node) {
  +        ret.write(node2str(node));
  +      });
  +    }
  +
  +    return ret.toString();
  +  }
  +
  +  /**
  +   * Sets inner html.
  +   */
  +  void set html(Object value) {
  +    empty();
  +    elements.forEach((Element element) {
  +      element.appendHtml(value.toString(),
  +          treeSanitizer: new NullTreeSanitizer());
  +    });
  +  }
  +
  +  /**
  +   * Gets inner text.
  +   */
  +  String get text {
  +    HtmlUnescape decoder = new HtmlUnescape();
  +    return elements.length > 0 ? decoder.convert(elements[0].text) : '';
  +  }
  +
  +  /**
  +   * Sets inner text.
  +   */
  +  void set text(Object value) {
  +    HtmlEscape encoder = new HtmlEscape();
  +    empty();
  +    elements.forEach((Element element) {
  +      element.text = encoder.convert(value.toString());
  +    });
  +  }
   
     /**
      * Appends content.
  
positive.code:           treeSanitizer: new NullTreeSanitizer());
      });
    }
  
    /**
     * Sets inner html.
     */
    void set html(Object value) {
      empty();
      elements.forEach((Element element) {
        element.appendHtml(value.toString(),
            treeSanitizer: new NullTreeSanitizer());
      });
    }
  
    /**
     * Sets inner text.
     */
    void set text(Object value) {
      HtmlEscape encoder = new HtmlEscape();
      empty();
      elements.forEach((Element element) {
        element.text = encoder.convert(value.toString());
      });
    }
  }
  
negative.code:   }
  
    /**
     * Prepends content.
     */
    void prepend(Object obj) {
  