basant307/AI_Governance_Project
045
1/** Used to detect hot functions by number of calls within a span of milliseconds. */2var HOT_COUNT = 800,3 HOT_SPAN = 16;4 5/* Built-in method references for those with the same name as other `lodash` methods. */6var nativeNow = Date.now;7 8/**9 * Creates a function that'll short out and invoke `identity` instead10 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`11 * milliseconds.12 *13 * @private14 * @param {Function} func The function to restrict.15 * @returns {Function} Returns the new shortable function.16 */17function shortOut(func) {18 var count = 0,19 lastCalled = 0;20 21 return function() {22 var stamp = nativeNow(),23 remaining = HOT_SPAN - (stamp - lastCalled);24 25 lastCalled = stamp;26 if (remaining > 0) {27 if (++count >= HOT_COUNT) {28 return arguments[0];29 }30 } else {31 count = 0;32 }33 return func.apply(undefined, arguments);34 };35}36 37module.exports = shortOut;38 