function toArray(collection) {
    if (!collection) {
      return [];
    }
    if (collection.toArray && isFunction(collection.toArray)) {
      return collection.toArray();
    }
    var length = collection.length;
    if (length > -1 && length === length >>> 0) {
      return (noArraySliceOnStrings ? toString.call(collection) == stringClass : typeof collection == 'string')
        ? collection.split('')
        : slice.call(collection);
    }
    return values(collection);
  }
Converts the `collection`, to an array. Useful for converting the
`arguments` object.

@static
@memberOf _
@category Collections
@param {Array|Object|String} collection The collection to convert.
@returns {Array} Returns the new converted array.
@example

(function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
// => [2, 3, 4]