00001 var baseToString = require('./_baseToString'), 00002 castSlice = require('./_castSlice'), 00003 hasUnicode = require('./_hasUnicode'), 00004 isIterateeCall = require('./_isIterateeCall'), 00005 isRegExp = require('./isRegExp'), 00006 stringToArray = require('./_stringToArray'), 00007 toString = require('./toString'); 00008 00010 var MAX_ARRAY_LENGTH = 4294967295; 00011 00031 function split(string, separator, limit) { 00032 if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { 00033 separator = limit = undefined; 00034 } 00035 limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; 00036 if (!limit) { 00037 return []; 00038 } 00039 string = toString(string); 00040 if (string && ( 00041 typeof separator == 'string' || 00042 (separator != null && !isRegExp(separator)) 00043 )) { 00044 separator = baseToString(separator); 00045 if (!separator && hasUnicode(string)) { 00046 return castSlice(stringToArray(string), 0, limit); 00047 } 00048 } 00049 return string.split(separator, limit); 00050 } 00051 00052 module.exports = split;