| var baseToPairs = require('./_baseToPairs'), | |
| getTag = require('./_getTag'), | |
| mapToArray = require('./_mapToArray'), | |
| setToPairs = require('./_setToPairs'); | |
| /** `Object#toString` result references. */ | |
| var mapTag = '[object Map]', | |
| setTag = '[object Set]'; | |
| /** | |
| * Creates a `_.toPairs` or `_.toPairsIn` function. | |
| * | |
| * @private | |
| * @param {Function} keysFunc The function to get the keys of a given object. | |
| * @returns {Function} Returns the new pairs function. | |
| */ | |
| function createToPairs(keysFunc) { | |
| return function(object) { | |
| var tag = getTag(object); | |
| if (tag == mapTag) { | |
| return mapToArray(object); | |
| } | |
| if (tag == setTag) { | |
| return setToPairs(object); | |
| } | |
| return baseToPairs(object, keysFunc(object)); | |
| }; | |
| } | |
| module.exports = createToPairs; | |