| 12345678910111213141516171819202122232425262728293031323334353637 | /** Used to detect hot functions by number of calls within a span of milliseconds. */var HOT_COUNT = 800,    HOT_SPAN = 16;/* Built-in method references for those with the same name as other `lodash` methods. */var nativeNow = Date.now;/** * Creates a function that'll short out and invoke `identity` instead * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` * milliseconds. * * @private * @param {Function} func The function to restrict. * @returns {Function} Returns the new shortable function. */function shortOut(func) {  var count = 0,      lastCalled = 0;  return function() {    var stamp = nativeNow(),        remaining = HOT_SPAN - (stamp - lastCalled);    lastCalled = stamp;    if (remaining > 0) {      if (++count >= HOT_COUNT) {        return arguments[0];      }    } else {      count = 0;    }    return func.apply(undefined, arguments);  };}export default shortOut;
 |