code: function CreateHTMLNode(tag) {
      //jump table.
      switch (tag[0]) {
          case "w":
              switch (tag) {
                  case "w-s":
                      return new SourceNode$1(); //This node is used to 
                  case "w-c":
                      return new SourceTemplateNode$1(); //This node is used to 
              }
              break;
          default:
              switch (tag) {
                  case "a":
                      return new LinkNode$1();
                  /** void elements **/
                  case "template":
                      return new VoidNode$1();
                  case "style":
                      return new StyleNode$1();
                  case "script":
                      return new ScriptNode$1();
                  case "svg":
                  case "path":
                      return new SVGNode();
              }
      }
  
      return new RootNode();
  }
docs: Since all nodes extend the RootNode, this needs to be declared here to prevent module cycles.