cjs/hyper/render.js
function upgrade(template) {
  const type = OWNER_SVG_ELEMENT in this ? 'svg' : 'html';
  const tagger = new Tagger(type);
  bewitched.set(this, {tagger, template: template});
  this.textContent = '';
  this.appendChild(tagger.apply(null, arguments));
}
function upgrade(template) {
  const type = OWNER_SVG_ELEMENT in this ? 'svg' : 'html';
  const tagger = new Tagger(type);
  bewitched.set(this, {tagger, template: template});
  this.textContent = '';
  this.appendChild(tagger.apply(null, arguments));
}
function upgrade ( template ) { const type = OWNER_SVG_ELEMENT in this ? 'svg' : 'html' ; const tagger = new Tagger ( type ) ; bewitched . set ( this , { tagger , template : template } ) ; this . textContent = '' ; this . appendChild ( tagger . apply ( null , arguments ) ) ; }
an upgrade is in charge of collecting template info, parse it once, if unknown, to map all interpolations as single DOM callbacks, relate such template to the current context, and render it after cleaning the context up
an upgrade is in charge of collecting template info parse it once if unknown to map all interpolations as single DOM callbacks relate such template to the current context and render it after cleaning the context up