function reorder(array, indexes) {
      var arrLength = array.length,
          length = nativeMin(indexes.length, arrLength),
          oldArray = copyArray(array);

      while (length--) {
        var index = indexes[length];
        array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
      }
      return array;
    }
Sets metadata for `func`.

**Note:** If this function becomes hot, i.e. is invoked a lot in a short
period of time, it will trip its breaker and transition to an identity
function to avoid garbage collection pauses in V8. See
[V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
for more details.

@private
@param {Function} func The function to associate metadata with.
@param {*} data The metadata.
@returns {Function} Returns `func`.