docs: function Component(node, defaultNodeName, wrapDocument)
  {
          this[BOUND_LISTEN_FUNCTIONS] = [];
          this[DOCUMENT] = null;
          this[OUTER_NODE] = null;
          this[INNER_NODE] = null;
  
          if (node.isDOMVComponent)
          {
                  node = node.outerNode;
          }
  
          if (node.nodeType === void 123 ||
              node.nodeType === domv.NodeType.DOCUMENT_TYPE)
          {
                  throw new domv.Exception(Error('The node parameter passed to the domv.Component constructor is not really a node, or it is an unsupported node type'));
          }
  
          if (node.nodeType === domv.NodeType.DOCUMENT)
          {
                  this.document = node;
          }
          else
          {
                  this.document = node.ownerDocument;
          }
  
          if (this.isCreationConstructor(node, wrapDocument))
          {
                  node = domv.create(this.document, defaultNodeName || 'div');
          }
  
          this.innerNode = node;
          this.outerNode = node;
  }