code: function mountTo(root, tagName, opts, ctx) {
    var impl = __TAG_IMPL[tagName],
      implClass = __TAG_IMPL[tagName].class,
      tag = ctx || (implClass ? Object.create(implClass.prototype) : {}),
      // cache the inner HTML to fix #855
      innerHTML = root._innerHTML = root._innerHTML || root.innerHTML;
  
    var conf = extend({ root: root, opts: opts }, { parent: opts ? opts.parent : null });
  
    if (impl && root) { Tag$1.apply(tag, [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