code: function getOrCreateTView(template, directives, pipes, viewQuery) {
      // TODO(misko): reading `ngPrivateData` here is problematic for two reasons
      // 1. It is a megamorphic call on each invocation.
      // 2. For nested embedded views (ngFor inside ngFor) the template instance is per
      //    outer template invocation, which means that no such property will exist
      // Correct solution is to only put `ngPrivateData` on the Component template
      // and not on embedded templates.
      return template.ngPrivateData ||
          (template.ngPrivateData = createTView(-1, template, directives, pipes, viewQuery));
  }
docs: Gets TView from a template function or creates a new TView
  if it doesn't already exist.
  
  @param template The template from which to get static data
  @param directives Directive defs that should be saved on TView
  @param pipes Pipe defs that should be saved on TView
  @returns TView