docs: function(protoIRs) {
        var newPIRs = [];
        while (protoIRs.length) {
          var pir = protoIRs.shift();
          newPIRs.push(pir);
  
          // Only consider Animations for now.
          if (pir.irType !== ProtoIR.ANIMATION_TYPE)
            continue;
  
          var isCSS = pir.containsSliceTitle(CSS_ANIMATION_TITLE);
          var isFling = pir.containsTypeNames([INPUT_TYPE.FLING_START]);
  
          for (var i = 0; i < protoIRs.length; ++i) {
            var otherPIR = protoIRs[i];
  
            if (otherPIR.irType !== pir.irType)
              continue;
  
            // Don't merge CSS Animations with any other types.
            if (isCSS != otherPIR.containsSliceTitle(CSS_ANIMATION_TITLE))
              continue;
  
            if (!otherPIR.intersects(pir))
              continue;
  
            // Don't merge Fling Animations with any other types.
            if (isFling != otherPIR.containsTypeNames([INPUT_TYPE.FLING_START]))
              continue;
  
            pir.merge(otherPIR);
            protoIRs.splice(i, 1);
            // Don't skip the next otherPIR!
            --i;
          }
        }
        return newPIRs;
      }