|
var baseToString = require('./_baseToString'), |
|
castSlice = require('./_castSlice'), |
|
hasUnicode = require('./_hasUnicode'), |
|
isIterateeCall = require('./_isIterateeCall'), |
|
isRegExp = require('./isRegExp'), |
|
stringToArray = require('./_stringToArray'), |
|
toString = require('./toString'); |
|
|
|
|
|
var MAX_ARRAY_LENGTH = 4294967295; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function split(string, separator, limit) { |
|
if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { |
|
separator = limit = undefined; |
|
} |
|
limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; |
|
if (!limit) { |
|
return []; |
|
} |
|
string = toString(string); |
|
if (string && ( |
|
typeof separator == 'string' || |
|
(separator != null && !isRegExp(separator)) |
|
)) { |
|
separator = baseToString(separator); |
|
if (!separator && hasUnicode(string)) { |
|
return castSlice(stringToArray(string), 0, limit); |
|
} |
|
} |
|
return string.split(separator, limit); |
|
} |
|
|
|
module.exports = split; |
|
|