Add isIterateeCall check to _.split.

This commit is contained in:
John-David Dalton
2016-04-08 09:55:47 -07:00
parent 349ec35c48
commit c7264e3f1f
2 changed files with 14 additions and 2 deletions

View File

@@ -8505,8 +8505,8 @@
* The guarded methods are:
* `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
* `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
* `sampleSize`, `slice`, `some`, `sortBy`, `take`, `takeRight`, `template`,
* `trim`, `trimEnd`, `trimStart`, and `words`
* `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
* `template`, `trim`, `trimEnd`, `trimStart`, and `words`
*
* @static
* @memberOf _
@@ -13561,6 +13561,9 @@
*/
function split(string, separator, limit) {
string = toString(string);
if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
separator = limit = undefined;
}
if (string && (
typeof separator == 'string' ||
(separator != null && !isRegExp(separator))

View File

@@ -20115,6 +20115,15 @@
assert.deepEqual(actual, expected);
});
QUnit.test('should work as an iteratee for methods like `_.map`', function(assert) {
assert.expect(1);
var strings = ['abc', 'def', 'ghi'],
actual = lodashStable.map(strings, _.split);
assert.deepEqual(actual, [['abc'], ['def'], ['ghi']]);
});
QUnit.test('should allow mixed string and array prototype methods', function(assert) {
assert.expect(1);