code: function generatePropertyAliases(tNodeFlags, direction) {
      var count = tNodeFlags & 4095 /* DirectiveCountMask */;
      var propStore = null;
      if (count > 0) {
          var start = tNodeFlags >> 14 /* DirectiveStartingIndexShift */;
          var end = start + count;
          var isInput = direction === 0 /* Input */;
          var defs = tView.directives;
          for (var i = start; i < end; i++) {
              var directiveDef = defs[i];
              var propertyAliasMap = isInput ? directiveDef.inputs : directiveDef.outputs;
              for (var publicName in propertyAliasMap) {
                  if (propertyAliasMap.hasOwnProperty(publicName)) {
                      propStore = propStore || {};
                      var internalName = propertyAliasMap[publicName];
                      var hasProperty = propStore.hasOwnProperty(publicName);
                      hasProperty ? propStore[publicName].push(i, internalName) :
                          (propStore[publicName] = [i, internalName]);
                  }
              }
          }
      }
      return propStore;
  }
docs: Consolidates all inputs or outputs of all directives on this logical node.
  
  @param number lNodeFlags logical node flags
  @param Direction direction whether to consider inputs or outputs
  @returns PropertyAliases|null aggregate of all properties if any, `null` otherwise