| var arrayEach = require('./_arrayEach'), | |
|     arrayIncludes = require('./_arrayIncludes'); | |
| 
 | |
| /** Used to compose bitmasks for function metadata. */ | |
| var WRAP_BIND_FLAG = 1, | |
|     WRAP_BIND_KEY_FLAG = 2, | |
|     WRAP_CURRY_FLAG = 8, | |
|     WRAP_CURRY_RIGHT_FLAG = 16, | |
|     WRAP_PARTIAL_FLAG = 32, | |
|     WRAP_PARTIAL_RIGHT_FLAG = 64, | |
|     WRAP_ARY_FLAG = 128, | |
|     WRAP_REARG_FLAG = 256, | |
|     WRAP_FLIP_FLAG = 512; | |
| 
 | |
| /** Used to associate wrap methods with their bit flags. */ | |
| var wrapFlags = [ | |
|   ['ary', WRAP_ARY_FLAG], | |
|   ['bind', WRAP_BIND_FLAG], | |
|   ['bindKey', WRAP_BIND_KEY_FLAG], | |
|   ['curry', WRAP_CURRY_FLAG], | |
|   ['curryRight', WRAP_CURRY_RIGHT_FLAG], | |
|   ['flip', WRAP_FLIP_FLAG], | |
|   ['partial', WRAP_PARTIAL_FLAG], | |
|   ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], | |
|   ['rearg', WRAP_REARG_FLAG] | |
| ]; | |
| 
 | |
| /** | |
|  * Updates wrapper `details` based on `bitmask` flags. | |
|  * | |
|  * @private | |
|  * @returns {Array} details The details to modify. | |
|  * @param {number} bitmask The bitmask flags. See `createWrap` for more details. | |
|  * @returns {Array} Returns `details`. | |
|  */ | |
| function updateWrapDetails(details, bitmask) { | |
|   arrayEach(wrapFlags, function(pair) { | |
|     var value = '_.' + pair[0]; | |
|     if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { | |
|       details.push(value); | |
|     } | |
|   }); | |
|   return details.sort(); | |
| } | |
| 
 | |
| module.exports = updateWrapDetails;
 |