code: function (node) {
      var tagName = jsxTagName(node.tagName);
      var attributes = [];
      for (var i = 0, count = node.attributes.length; i < count; i++) {
        attributes.push(this._getElementAttribute(node, node.attributes[i]));
      }
  
      if (tagName === 'textarea') {
        // Hax: textareas need their inner text moved to a "defaultValue" attribute.
        attributes.push('defaultValue={' + JSON.stringify(node.value) + '}');
      }
      if (tagName === 'style') {
        // Hax: style tag contents need to be dangerously set due to liberal curly brace usage
        attributes.push('dangerouslySetInnerHTML={{__html: ' + JSON.stringify(node.textContent) + ' }}');
      }
      if (tagName === 'pre') {
        this._inPreTag = true;
      }
  
      this.output += '<' + tagName;
      if (attributes.length > 0) {
        this.output += ' ' + attributes.join(' ');
      }
      if (!this._isSelfClosing(node)) {
        this.output += '>';
      }
    }
docs: Handles pre-visit behaviour for the specified element node
  
  @param {DOMElement} node