123456789101112131415161718192021
  1. var baseSetData = require('./_baseSetData'),
  2. shortOut = require('./_shortOut');
  3. /**
  4. * Sets metadata for `func`.
  5. *
  6. * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
  7. * period of time, it will trip its breaker and transition to an identity
  8. * function to avoid garbage collection pauses in V8. See
  9. * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
  10. * for more details.
  11. *
  12. * @private
  13. * @param {Function} func The function to associate metadata with.
  14. * @param {*} data The metadata.
  15. * @returns {Function} Returns `func`.
  16. */
  17. var setData = shortOut(baseSetData);
  18. module.exports = setData;