code: function directiveCreate(directiveDefIdx, directive, directiveDef) {
      var instance = baseDirectiveCreate(directiveDefIdx, directive, directiveDef);
      ngDevMode && assertDefined(previousOrParentNode.tNode, 'previousOrParentNode.tNode');
      var tNode = previousOrParentNode.tNode;
      var isComponent = directiveDef.template;
      if (isComponent) {
          addComponentLogic(directiveDefIdx, directive, directiveDef);
      }
      if (firstTemplatePass) {
          // Init hooks are queued now so ngOnInit is called in host components before
          // any projected components.
          queueInitHooks(directiveDefIdx, directiveDef.onInit, directiveDef.doCheck, tView);
          if (directiveDef.hostBindings)
              queueHostBindingForCheck(directiveDefIdx);
      }
      if (tNode && tNode.attrs) {
          setInputsFromAttrs(directiveDefIdx, instance, directiveDef.inputs, tNode);
      }
      if (directiveDef.contentQueries) {
          directiveDef.contentQueries();
      }
      return instance;
  }
docs: //////////////////////// // Directive //////////////////////// 
  Create a directive and their associated content queries.
  
  NOTE: directives can be created in order other than the index order. They can also
  be retrieved before they are created in which case the value will be null.
  
  @param directive The directive instance.
  @param directiveDef DirectiveDef object which contains information about the template.