in packages/fbjs/src/core/enumerate.js [228:244]
function enumerate(object, kind) {
// First check specific iterators.
if (typeof object === 'string') {
return StringIterators[kind || KIND_VALUES](object);
} else if (Array.isArray(object)) {
return ArrayIterators[kind || KIND_VALUES](object);
// Then see if an object implements own.
} else if (object[Symbol.iterator]) {
return object[Symbol.iterator]();
// And fallback to generic with entries.
} else {
return GenericIterators[kind || KIND_ENTRIES](object);
}
}