code: function h(selector, properties) {
      var node = parseSelector(selector, defaultTagName)
      var children = Array.prototype.slice.call(arguments, 2)
      var property
  
      if (properties && isChildren(properties, node)) {
        children.unshift(properties)
        properties = null
      }
  
      if (properties) {
        for (property in properties) {
          addProperty(node.properties, property, properties[property])
        }
      }
  
      addChild(node.children, children)
  
      if (node.tagName === 'template') {
        node.content = {type: 'root', children: node.children}
        node.children = []
      }
  
      return node
    }
docs: /* Hyperscript compatible DSL for creating virtual HAST trees.