Initial commit
[yaffs-website] / node_modules / node-sass / node_modules / lodash / split.js
1 var baseToString = require('./_baseToString'),
2     castSlice = require('./_castSlice'),
3     hasUnicode = require('./_hasUnicode'),
4     isIterateeCall = require('./_isIterateeCall'),
5     isRegExp = require('./isRegExp'),
6     stringToArray = require('./_stringToArray'),
7     toString = require('./toString');
8
9 /** Used as references for the maximum length and index of an array. */
10 var MAX_ARRAY_LENGTH = 4294967295;
11
12 /**
13  * Splits `string` by `separator`.
14  *
15  * **Note:** This method is based on
16  * [`String#split`](https://mdn.io/String/split).
17  *
18  * @static
19  * @memberOf _
20  * @since 4.0.0
21  * @category String
22  * @param {string} [string=''] The string to split.
23  * @param {RegExp|string} separator The separator pattern to split by.
24  * @param {number} [limit] The length to truncate results to.
25  * @returns {Array} Returns the string segments.
26  * @example
27  *
28  * _.split('a-b-c', '-', 2);
29  * // => ['a', 'b']
30  */
31 function split(string, separator, limit) {
32   if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
33     separator = limit = undefined;
34   }
35   limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
36   if (!limit) {
37     return [];
38   }
39   string = toString(string);
40   if (string && (
41         typeof separator == 'string' ||
42         (separator != null && !isRegExp(separator))
43       )) {
44     separator = baseToString(separator);
45     if (!separator && hasUnicode(string)) {
46       return castSlice(stringToArray(string), 0, limit);
47     }
48   }
49   return string.split(separator, limit);
50 }
51
52 module.exports = split;