00001 var addSetEntry = require('./_addSetEntry'), 00002 arrayReduce = require('./_arrayReduce'), 00003 setToArray = require('./_setToArray'); 00004 00006 var CLONE_DEEP_FLAG = 1; 00007 00017 function cloneSet(set, isDeep, cloneFunc) { 00018 var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set); 00019 return arrayReduce(array, addSetEntry, new set.constructor); 00020 } 00021 00022 module.exports = cloneSet;