diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index d7f7788b3..af7e211d2 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -19,11 +19,19 @@ /** Used to generate unique IDs */ var idCounter = 0; + /** Used to compose bitmasks for `__bindData__` */ + var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + CURRY_FLAG = 4, + CURRY_BOUND_FLAG = 8, + PARTIAL_FLAG = 16, + PARTIAL_RIGHT_FLAG = 32; + /** Used as the size when optimizations are enabled for large arrays */ - var largeArraySize = 75; + var LARGE_ARRAY_SIZE = 75; /** Used as the max size of the `arrayPool` and `objectPool` */ - var maxPoolSize = 40; + var MAX_POOL_SIZE = 40; /** Used to detect and test whitespace */ var whitespace = ( @@ -490,7 +498,7 @@ */ function releaseArray(array) { array.length = 0; - if (arrayPool.length < maxPoolSize) { + if (arrayPool.length < MAX_POOL_SIZE) { arrayPool.push(array); } } @@ -507,7 +515,7 @@ releaseObject(cache); } object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null; - if (objectPool.length < maxPoolSize) { + if (objectPool.length < MAX_POOL_SIZE) { objectPool.push(object); } } @@ -1350,10 +1358,10 @@ thisArg = bindData[4], arity = bindData[5]; - var isBind = bitmask & 1, - isBindKey = bitmask & 2, - isCurry = bitmask & 4, - isCurryBound = bitmask & 8, + var isBind = bitmask & BIND_FLAG, + isBindKey = bitmask & BIND_KEY_FLAG, + isCurry = bitmask & CURRY_FLAG, + isCurryBound = bitmask & CURRY_BOUND_FLAG, key = func; function bound() { @@ -1368,8 +1376,9 @@ push.apply(args, partialRightArgs); } if (isCurry && args.length < arity) { - bitmask |= 16 & ~32; - return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]); + bitmask |= PARTIAL_FLAG; + bitmask &= ~PARTIAL_RIGHT_FLAG; + return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~(BIND_FLAG | BIND_KEY_FLAG)), args, null, thisArg, arity]); } } args || (args = arguments); @@ -1400,7 +1409,7 @@ var index = -1, indexOf = getIndexOf(), length = array ? array.length : 0, - isLarge = length >= largeArraySize && indexOf === baseIndexOf, + isLarge = length >= LARGE_ARRAY_SIZE && indexOf === baseIndexOf, result = []; if (isLarge) { @@ -1768,7 +1777,7 @@ length = array ? array.length : 0, result = []; - var isLarge = !isSorted && length >= largeArraySize && indexOf === baseIndexOf, + var isLarge = !isSorted && length >= LARGE_ARRAY_SIZE && indexOf === baseIndexOf, seen = (callback || isLarge) ? getArray() : result; if (isLarge) { @@ -1837,7 +1846,7 @@ * * @private * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of method flags to compose. + * @param {number} bitmask The bitmask of flags to compose. * The bitmask may be composed of the following flags: * 1 - `_.bind` * 2 - `_.bindKey` @@ -1854,12 +1863,12 @@ * @returns {Function} Returns the new function. */ function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) { - var isBind = bitmask & 1, - isBindKey = bitmask & 2, - isCurry = bitmask & 4, - isCurryBound = bitmask & 8, - isPartial = bitmask & 16, - isPartialRight = bitmask & 32; + var isBind = bitmask & BIND_FLAG, + isBindKey = bitmask & BIND_KEY_FLAG, + isCurry = bitmask & CURRY_FLAG, + isCurryBound = bitmask & CURRY_BOUND_FLAG, + isPartial = bitmask & PARTIAL_FLAG, + isPartialRight = bitmask & PARTIAL_RIGHT_FLAG; if (!isBindKey && !isFunction(func)) { throw new TypeError; @@ -1883,15 +1892,15 @@ bindData[3] = slice(bindData[3]); } // set `thisBinding` is not previously bound - if (isBind && !(bindData[1] & 1)) { + if (isBind && !(bindData[1] & BIND_FLAG)) { bindData[4] = thisArg; } // set if previously bound but not currently (subsequent curried functions) - if (!isBind && bindData[1] & 1) { + if (!isBind && bindData[1] & BIND_FLAG) { bitmask |= 8; } // set curried arity if not yet set - if (isCurry && !(bindData[1] & 4)) { + if (isCurry && !(bindData[1] & CURRY_FLAG)) { bindData[5] = arity; } // append partial left arguments @@ -1907,7 +1916,7 @@ return createWrapper.apply(null, bindData); } // fast path for `_.bind` - var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper; + var creater = (bitmask == BIND_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) ? baseBind : baseCreateWrapper; return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]); } @@ -2488,7 +2497,7 @@ var value = arguments[argsIndex]; if (isArray(value) || isArguments(value)) { args.push(value); - caches.push(trustIndexOf && value.length >= largeArraySize && + caches.push(trustIndexOf && value.length >= LARGE_ARRAY_SIZE && createCache(argsIndex ? args[argsIndex] : seen)); } } @@ -4553,8 +4562,8 @@ */ function bind(func, thisArg) { return arguments.length > 2 - ? createWrapper(func, 17, slice(arguments, 2), null, thisArg) - : createWrapper(func, 1, null, null, thisArg); + ? createWrapper(func, BIND_FLAG | PARTIAL_FLAG, slice(arguments, 2), null, thisArg) + : createWrapper(func, BIND_FLAG, null, null, thisArg); } /** @@ -4590,7 +4599,7 @@ while (++index < length) { var key = funcs[index]; - object[key] = createWrapper(object[key], 1, null, null, object); + object[key] = createWrapper(object[key], BIND_FLAG, null, null, object); } return object; } @@ -4632,8 +4641,8 @@ */ function bindKey(object, key) { return arguments.length > 2 - ? createWrapper(key, 19, slice(arguments, 2), null, object) - : createWrapper(key, 3, null, null, object); + ? createWrapper(key, BIND_FLAG | BIND_KEY_FLAG | PARTIAL_FLAG, slice(arguments, 2), null, object) + : createWrapper(key, BIND_FLAG | BIND_KEY_FLAG, null, null, object); } /** @@ -4718,7 +4727,7 @@ */ function curry(func, arity) { arity = typeof arity == 'number' ? arity : (+arity || func.length); - return createWrapper(func, 4, null, null, null, arity); + return createWrapper(func, CURRY_FLAG, null, null, null, arity); } /** @@ -5020,7 +5029,7 @@ * // => 'hi fred' */ function partial(func) { - return createWrapper(func, 16, slice(arguments, 1)); + return createWrapper(func, PARTIAL_FLAG, slice(arguments, 1)); } /** @@ -5054,7 +5063,7 @@ * // => { '_': _, 'jq': $ } */ function partialRight(func) { - return createWrapper(func, 32, null, slice(arguments, 1)); + return createWrapper(func, PARTIAL_RIGHT_FLAG, null, slice(arguments, 1)); } /** @@ -5130,7 +5139,7 @@ * // => '
fred, barney, & pebbles
' */ function wrap(value, wrapper) { - return createWrapper(wrapper, 16, [value]); + return createWrapper(wrapper, PARTIAL_FLAG, [value]); } /*--------------------------------------------------------------------------*/ diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index d8056aef4..3a542922e 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -5,60 +5,60 @@ */ ;(function(){function n(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(nfred, barney, & pebbles
' */ function wrap(value, wrapper) { - return createWrapper(wrapper, 16, [value]); + return createWrapper(wrapper, PARTIAL_FLAG, [value]); } /*--------------------------------------------------------------------------*/ diff --git a/dist/lodash.min.js b/dist/lodash.min.js index 33ec7ba08..a728edcff 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -5,55 +5,55 @@ */ ;(function(){function n(n,t){if(n!==t){if(n>t||typeof n=="undefined")return 1;if(nfred, barney, & pebbles
' */ function wrap(value, wrapper) { - return createWrapper(wrapper, 16, [value]); + return createWrapper(wrapper, PARTIAL_FLAG, [value]); } /*--------------------------------------------------------------------------*/ diff --git a/dist/lodash.underscore.min.js b/dist/lodash.underscore.min.js index 7cbcf0bd9..936f36880 100644 --- a/dist/lodash.underscore.min.js +++ b/dist/lodash.underscore.min.js @@ -3,38 +3,38 @@ * Lo-Dash 2.4.1 (Custom Build) lodash.com/license | Underscore.js 1.5.2 underscorejs.org/LICENSE * Build: `lodash underscore exports="amd,commonjs,global,node" -o ./dist/lodash.underscore.js` */ -;(function(){function n(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++tfred, barney, & pebbles
' */ function wrap(value, wrapper) { - return createWrapper(wrapper, 16, [value]); + return createWrapper(wrapper, PARTIAL_FLAG, [value]); } /*--------------------------------------------------------------------------*/