docs: function(transaction, context) {
      var prefix = '';
      if (this._tag === 'listing' ||
          this._tag === 'pre' ||
          this._tag === 'textarea') {
        // Add an initial newline because browsers ignore the first newline in
        // a <listing>, <pre>, or <textarea> as an "authoring convenience" -- see
        // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody.
        prefix = '\n';
      }
  
      var props = this._currentElement.props;
  
      // Intentional use of != to avoid catching zero/false.
      var innerHTML = props.dangerouslySetInnerHTML;
      if (innerHTML != null) {
        if (innerHTML.__html != null) {
          return prefix + innerHTML.__html;
        }
      } else {
        var contentToUse =
          CONTENT_TYPES[typeof props.children] ? props.children : null;
        var childrenToUse = contentToUse != null ? null : props.children;
        if (contentToUse != null) {
          return prefix + escapeTextContentForBrowser(contentToUse);
        } else if (childrenToUse != null) {
          var mountImages = this.mountChildren(
            childrenToUse,
            transaction,
            context
          );
          return prefix + mountImages.join('');
        }
      }
      return prefix;
    }