source: imaps-frontend/node_modules/lodash-es/_shortOut.js

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 939 bytes
Line 
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` instead
10 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
11 * milliseconds.
12 *
13 * @private
14 * @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
37export default shortOut;
Note: See TracBrowser for help on using the repository browser.