diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/lodash/_cloneMap.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/lodash/_cloneMap.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/lodash/_cloneMap.js b/tools/node_modules/eslint/node_modules/lodash/_cloneMap.js new file mode 100644 index 0000000000..334b73e986 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/lodash/_cloneMap.js @@ -0,0 +1,22 @@ +var addMapEntry = require('./_addMapEntry'), + arrayReduce = require('./_arrayReduce'), + mapToArray = require('./_mapToArray'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1; + +/** + * Creates a clone of `map`. + * + * @private + * @param {Object} map The map to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned map. + */ +function cloneMap(map, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); + return arrayReduce(array, addMapEntry, new map.constructor); +} + +module.exports = cloneMap; |