PATH:
usr
/
local
/
lib
/
node_modules
/
bower
/
lib
/
node_modules
/
inquirer
/
node_modules
/
lodash
/
internal
var arrayCopy = require('./arrayCopy'), composeArgs = require('./composeArgs'), composeArgsRight = require('./composeArgsRight'), createCtorWrapper = require('./createCtorWrapper'), isLaziable = require('./isLaziable'), reorder = require('./reorder'), replaceHolders = require('./replaceHolders'), setData = require('./setData'); /** Used to compose bitmasks for wrapper metadata. */ var BIND_FLAG = 1, BIND_KEY_FLAG = 2, CURRY_BOUND_FLAG = 4, CURRY_FLAG = 8, CURRY_RIGHT_FLAG = 16, PARTIAL_FLAG = 32, PARTIAL_RIGHT_FLAG = 64, ARY_FLAG = 128; /* Native method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * Creates a function that wraps `func` and invokes it with optional `this` * binding of, partial application, and currying. * * @private * @param {Function|string} func The function or method name to reference. * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to prepend to those provided to the new function. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [partialsRight] The arguments to append to those provided to the new function. * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { var isAry = bitmask & ARY_FLAG, isBind = bitmask & BIND_FLAG, isBindKey = bitmask & BIND_KEY_FLAG, isCurry = bitmask & CURRY_FLAG, isCurryBound = bitmask & CURRY_BOUND_FLAG, isCurryRight = bitmask & CURRY_RIGHT_FLAG, Ctor = isBindKey ? undefined : createCtorWrapper(func); function wrapper() { // Avoid `arguments` object use disqualifying optimizations by // converting it to an array before providing it to other functions. var length = arguments.length, index = length, args = Array(length); while (index--) { args[index] = arguments[index]; } if (partials) { args = composeArgs(args, partials, holders); } if (partialsRight) { args = composeArgsRight(args, partialsRight, holdersRight); } if (isCurry || isCurryRight) { var placeholder = wrapper.placeholder, argsHolders = replaceHolders(args, placeholder); length -= argsHolders.length; if (length < arity) { var newArgPos = argPos ? arrayCopy(argPos) : undefined, newArity = nativeMax(arity - length, 0), newsHolders = isCurry ? argsHolders : undefined, newHoldersRight = isCurry ? undefined : argsHolders, newPartials = isCurry ? args : undefined, newPartialsRight = isCurry ? undefined : args; bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); if (!isCurryBound) { bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); } var newData = [func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity], result = createHybridWrapper.apply(undefined, newData); if (isLaziable(func)) { setData(result, newData); } result.placeholder = placeholder; return result; } } var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; if (argPos) { args = reorder(args, argPos); } if (isAry && ary < args.length) { args.length = ary; } if (this && this !== global && this instanceof wrapper) { fn = Ctor || createCtorWrapper(func); } return fn.apply(thisBinding, args); } return wrapper; } module.exports = createHybridWrapper;
[-] cacheIndexOf.js
[edit]
[-] charsLeftIndex.js
[edit]
[-] baseWrapperValue.js
[edit]
[-] shimKeys.js
[edit]
[-] createForOwn.js
[edit]
[-] deburrLetter.js
[edit]
[-] arrayEvery.js
[edit]
[-] baseFilter.js
[edit]
[-] getMatchData.js
[edit]
[-] isIterateeCall.js
[edit]
[-] arrayEach.js
[edit]
[-] createDefaults.js
[edit]
[-] mergeDefaults.js
[edit]
[-] baseForRight.js
[edit]
[-] baseValues.js
[edit]
[-] baseEachRight.js
[edit]
[-] baseFor.js
[edit]
[-] arraySum.js
[edit]
[-] createCompounder.js
[edit]
[-] baseForOwnRight.js
[edit]
[-] baseCompareAscending.js
[edit]
[-] baseWhile.js
[edit]
[-] baseDelay.js
[edit]
[-] metaMap.js
[edit]
[-] MapCache.js
[edit]
[-] arraySome.js
[edit]
[-] baseFindIndex.js
[edit]
[-] baseMatchesProperty.js
[edit]
[-] baseSortBy.js
[edit]
[-] baseRandom.js
[edit]
[-] baseDifference.js
[edit]
[-] compareAscending.js
[edit]
[-] LodashWrapper.js
[edit]
[-] invokePath.js
[edit]
[+]
..
[-] baseMap.js
[edit]
[-] isLaziable.js
[edit]
[-] unescapeHtmlChar.js
[edit]
[-] initCloneByTag.js
[edit]
[-] baseReduce.js
[edit]
[-] lazyReverse.js
[edit]
[-] baseUniq.js
[edit]
[-] baseGet.js
[edit]
[-] createReduce.js
[edit]
[-] cachePush.js
[edit]
[-] baseSum.js
[edit]
[-] escapeHtmlChar.js
[edit]
[-] mapHas.js
[edit]
[-] baseMatches.js
[edit]
[-] mapDelete.js
[edit]
[-] createCache.js
[edit]
[-] isArrayLike.js
[edit]
[-] toObject.js
[edit]
[-] basePropertyDeep.js
[edit]
[-] arrayFilter.js
[edit]
[-] assignWith.js
[edit]
[-] composeArgsRight.js
[edit]
[-] binaryIndex.js
[edit]
[-] mapSet.js
[edit]
[-] bindCallback.js
[edit]
[-] createExtremum.js
[edit]
[-] baseFunctions.js
[edit]
[-] baseToString.js
[edit]
[-] baseIsEqualDeep.js
[edit]
[-] createCtorWrapper.js
[edit]
[-] sortedUniq.js
[edit]
[-] arrayExtremum.js
[edit]
[-] baseExtremum.js
[edit]
[-] basePullAt.js
[edit]
[-] LazyWrapper.js
[edit]
[-] isStrictComparable.js
[edit]
[-] createBindWrapper.js
[edit]
[-] isObjectLike.js
[edit]
[-] createRound.js
[edit]
[-] getView.js
[edit]
[-] createAggregator.js
[edit]
[-] createFindKey.js
[edit]
[-] createBaseFor.js
[edit]
[-] getFuncName.js
[edit]
[-] trimmedRightIndex.js
[edit]
[-] isIndex.js
[edit]
[-] reEvaluate.js
[edit]
[-] reEscape.js
[edit]
[-] baseLodash.js
[edit]
[-] arrayConcat.js
[edit]
[-] escapeRegExpChar.js
[edit]
[-] baseIsFunction.js
[edit]
[-] baseForIn.js
[edit]
[-] toPath.js
[edit]
[-] arrayReduceRight.js
[edit]
[-] baseSortByOrder.js
[edit]
[-] baseSetData.js
[edit]
[-] arrayEachRight.js
[edit]
[-] baseFill.js
[edit]
[-] arrayMap.js
[edit]
[-] compareMultiple.js
[edit]
[-] mergeData.js
[edit]
[-] mapGet.js
[edit]
[-] createHybridWrapper.js
[edit]
[-] baseIndexOf.js
[edit]
[-] arrayPush.js
[edit]
[-] createCurry.js
[edit]
[-] realNames.js
[edit]
[-] arrayCopy.js
[edit]
[-] getNative.js
[edit]
[-] createPadding.js
[edit]
[-] charsRightIndex.js
[edit]
[-] baseCopy.js
[edit]
[-] baseCallback.js
[edit]
[-] pickByCallback.js
[edit]
[-] baseMerge.js
[edit]
[-] assignOwnDefaults.js
[edit]
[-] toIterable.js
[edit]
[-] baseCreate.js
[edit]
[-] initCloneArray.js
[edit]
[-] escapeStringChar.js
[edit]
[-] baseMergeDeep.js
[edit]
[-] createAssigner.js
[edit]
[-] createForEach.js
[edit]
[-] baseSome.js
[edit]
[-] trimmedLeftIndex.js
[edit]
[-] createFindIndex.js
[edit]
[-] arrayReduce.js
[edit]
[-] baseClone.js
[edit]
[-] isLength.js
[edit]
[-] indexOfNaN.js
[edit]
[-] createFlow.js
[edit]
[-] equalByTag.js
[edit]
[-] createWrapper.js
[edit]
[-] baseEach.js
[edit]
[-] composeArgs.js
[edit]
[-] equalObjects.js
[edit]
[-] baseFlatten.js
[edit]
[-] binaryIndexBy.js
[edit]
[-] assignDefaults.js
[edit]
[-] wrapperClone.js
[edit]
[-] createPadDir.js
[edit]
[-] isSpace.js
[edit]
[-] baseAssign.js
[edit]
[-] baseEvery.js
[edit]
[-] baseIsMatch.js
[edit]
[-] SetCache.js
[edit]
[-] replaceHolders.js
[edit]
[-] createObjectMapper.js
[edit]
[-] lazyClone.js
[edit]
[-] reInterpolate.js
[edit]
[-] bufferClone.js
[edit]
[-] createPartialWrapper.js
[edit]
[-] reorder.js
[edit]
[-] createBaseEach.js
[edit]
[-] baseAt.js
[edit]
[-] getLength.js
[edit]
[-] createPartial.js
[edit]
[-] createForIn.js
[edit]
[-] createFind.js
[edit]
[-] setData.js
[edit]
[-] getData.js
[edit]
[-] createSortedIndex.js
[edit]
[-] lazyValue.js
[edit]
[-] baseSlice.js
[edit]
[-] baseIsEqual.js
[edit]
[-] baseFind.js
[edit]
[-] equalArrays.js
[edit]
[-] baseForOwn.js
[edit]
[-] pickByArray.js
[edit]
[-] isKey.js
[edit]
[-] baseProperty.js
[edit]
[-] initCloneObject.js
[edit]