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