code: function composeArgs(partialArgs, partialHolders, args) {
        var holdersLength = partialHolders.length,
            argsIndex = -1,
            argsLength = nativeMax(args.length - holdersLength, 0),
            leftIndex = -1,
            leftLength = partialArgs.length,
            result = Array(argsLength + leftLength);
  
        while (++leftIndex < leftLength) {
          result[leftIndex] = partialArgs[leftIndex];
        }
        while (++argsIndex < holdersLength) {
          result[partialHolders[argsIndex]] = args[argsIndex];
        }
        while (argsLength--) {
          result[leftIndex++] = args[argsIndex++];
        }
        return result;
      }
docs: Creates an array that is the composition of partially applied arguments,
  placeholders, and provided arguments into a single array of arguments.
  
  @private
  @param {Array} partialArgs An array of arguments to prepend to those provided.
  @param {Array} partialHolders An array of `partialArgs` placeholder indexes.
  @param {Array|Object} args The provided arguments.
  @returns {Array} Returns the new array of composed arguments.