code: function queueInitHooks(index, onInit, doCheck, tView) {
      ngDevMode &&
          assertEqual(tView.firstTemplatePass, true, 'Should only be called on first template pass');
      if (onInit) {
          (tView.initHooks || (tView.initHooks = [])).push(index, onInit);
      }
      if (doCheck) {
          (tView.initHooks || (tView.initHooks = [])).push(index, doCheck);
          (tView.checkHooks || (tView.checkHooks = [])).push(index, doCheck);
      }
  }
docs: @license
  Copyright Google Inc. All Rights Reserved.
  
  Use of this source code is governed by an MIT-style license that can be
  found in the LICENSE file at https://angular.io/license
   
  If this is the first template pass, any ngOnInit or ngDoCheck hooks will be queued into
  TView.initHooks during directiveCreate.
  
  The directive index and hook type are encoded into one number (1st bit: type, remaining bits:
  directive index), then saved in the even indices of the initHooks array. The odd indices
  hold the hook functions themselves.
  
  @param index The index of the directive in LViewData[DIRECTIVES]
  @param hooks The static hooks map on the directive def
  @param tView The current TView