Bump to v4.16.0.

This commit is contained in:
John-David Dalton
2016-09-17 22:24:52 -07:00
parent fff78cbd5a
commit 0b9ddff408
102 changed files with 977 additions and 600 deletions

43
_shortOut.js Normal file
View File

@@ -0,0 +1,43 @@
define([], function() {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined;
/** Used to detect hot functions by number of calls within a span of milliseconds. */
var HOT_COUNT = 500,
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);
};
}
return shortOut;
});