docs: function renderEmbeddedTemplate(viewNode, tView, context, rf) {
      var _isParent = isParent;
      var _previousOrParentNode = previousOrParentNode;
      var oldView;
      if (viewNode.data[PARENT] == null && viewNode.data[CONTEXT] && !tView.template) {
          // This is a root view inside the view tree
          tickRootContext(viewNode.data[CONTEXT]);
      }
      else {
          try {
              isParent = true;
              previousOrParentNode = null;
              oldView = enterView(viewNode.data, viewNode);
              namespaceHTML();
              tView.template(rf, context);
              if (rf & 2 /* Update */) {
                  refreshView();
              }
              else {
                  viewNode.data[TVIEW].firstTemplatePass = firstTemplatePass = false;
              }
          }
          finally {
              // renderEmbeddedTemplate() is called twice in fact, once for creation only and then once for
              // update. When for creation only, leaveView() must not trigger view hooks, nor clean flags.
              var isCreationOnly = (rf & 1 /* Create */) === 1 /* Create */;
              leaveView(oldView, isCreationOnly);
              isParent = _isParent;
              previousOrParentNode = _previousOrParentNode;
          }
      }
      return viewNode;
  }