00001 var addMapEntry = require('./_addMapEntry'), 00002 arrayReduce = require('./_arrayReduce'), 00003 mapToArray = require('./_mapToArray'); 00004 00006 var CLONE_DEEP_FLAG = 1; 00007 00017 function cloneMap(map, isDeep, cloneFunc) { 00018 var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); 00019 return arrayReduce(array, addMapEntry, new map.constructor); 00020 } 00021 00022 module.exports = cloneMap;