code: function mount$1(root, tagName, opts, ctx) {
        var impl = __TAG_IMPL[tagName];
        var implClass = __TAG_IMPL[tagName].class;
        var context = ctx || (implClass ? create(implClass.prototype) : {});
        // cache the inner HTML to fix #855
        var innerHTML = root._innerHTML = root._innerHTML || root.innerHTML;
        var conf = extend({ root: root, opts: opts, context: context }, { parent: opts ? opts.parent : null });
        var tag;
  
        if (impl && root) { tag = createTag(impl, conf, innerHTML); }
  
        if (tag && tag.mount) {
          tag.mount(true);
          // add this tag to the virtualDom variable
          if (!contains(__TAGS_CACHE, tag)) { __TAGS_CACHE.push(tag); }
        }
  
        return tag
      }
docs: Mount a tag creating new Tag instance
  @param   { Object } root - dom node where the tag will be mounted
  @param   { String } tagName - name of the riot tag we want to mount
  @param   { Object } opts - options to pass to the Tag instance
  @param   { Object } ctx - optional context that will be used to extend an existing class ( used in riot.Tag )
  @returns { Tag } a new Tag instance