docs: function mount(selector, tagName, opts) {
        var tags = [];
        var elem, allTags;
  
        function pushTagsTo(root) {
          if (root.tagName) {
            var riotTag = getAttribute(root, IS_DIRECTIVE), tag;
  
            // have tagName? force riot-tag to be the same
            if (tagName && riotTag !== tagName) {
              riotTag = tagName;
              setAttribute(root, IS_DIRECTIVE, tagName);
            }
  
            tag = mount$1(root, riotTag || root.tagName.toLowerCase(), opts);
  
            if (tag)
              { tags.push(tag); }
          } else if (root.length)
            { each(root, pushTagsTo); } // assume nodeList
        }
  
        // inject styles into DOM
        styleManager.inject();
  
        if (isObject$1(tagName)) {
          opts = tagName;
          tagName = 0;
        }
  
        // crawl the DOM to find the tag
        if (isString(selector)) {
          selector = selector === '*' ?
            // select all registered tags
            // & tags found with the riot-tag attribute set
            allTags = query() :
            // or just the ones named like the selector
            selector + query(selector.split(/, */));
  
          // make sure to pass always a selector
          // to the querySelectorAll function
          elem = selector ? $$(selector) : [];
        }
        else
          // probably you have passed already a tag or a NodeList
          { elem = selector; }
  
        // select all the registered and mount them inside their root elements
        if (tagName === '*') {
          // get all custom tags
          tagName = allTags || query();
          // if the root els it's just a single tag
          if (elem.tagName)
            { elem = $$(tagName, elem); }
          else {
            // select all the children for all the different root elements
            var nodeList = [];
  
            each(elem, function (_el) { return nodeList.push($$(tagName, _el)); });
  
            elem = nodeList;
          }
          // get rid of the tagName
          tagName = 0;
        }
  
        pushTagsTo(elem);
  
        return tags
      }