From c1b7679cac571da7c66c7a0d2fb6fb03aa022ce0 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Wed, 11 Nov 2015 23:36:46 -0800 Subject: [PATCH] Make `_.times` implicitly end a chain sequence. --- lodash.js | 12 ++++++------ test/test.js | 23 ++++++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lodash.js b/lodash.js index c9000b3d7..01b19d757 100644 --- a/lodash.js +++ b/lodash.js @@ -1503,7 +1503,7 @@ * `pullAllBy`, `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, * `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, * `sortBy`, `sortByOrder`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, * `toPath`, `toPlainObject`, `transform`, `unary`, `union`, `unionBy`, * `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`, * `unzipWith`, `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, @@ -1526,10 +1526,10 @@ * `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`, `round`, * `runInContext`, `sample`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, * `sortedIndexBy`, `sortedLastIndex`, `sortedLastIndexBy`, `startCase`, - * `startsWith`, `subtract`, `sum`, sumBy`, `template`, `toLower`, `toInteger`, - * `toLength`, `toNumber`, `toSafeInteger`, toString`, `toUpper`, `trim`, - * `trimLeft`, `trimRight`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` + * `startsWith`, `subtract`, `sum`, sumBy`, `template`, `times`, `toLower`, + * `toInteger`, `toLength`, `toNumber`, `toSafeInteger`, toString`, `toUpper`, + * `trim`, `trimLeft`, `trimRight`, `truncate`, `unescape`, `uniqueId`, + * `upperCase`, `upperFirst`, `value`, and `words` * * @name _ * @constructor @@ -13644,7 +13644,6 @@ lodash.tap = tap; lodash.throttle = throttle; lodash.thru = thru; - lodash.times = times; lodash.toArray = toArray; lodash.toPath = toPath; lodash.toPlainObject = toPlainObject; @@ -13794,6 +13793,7 @@ lodash.sum = sum; lodash.sumBy = sumBy; lodash.template = template; + lodash.times = times; lodash.toInteger = toInteger; lodash.toLength = toLength; lodash.toLower = toLower; diff --git a/test/test.js b/test/test.js index 17280376b..825bb472f 100644 --- a/test/test.js +++ b/test/test.js @@ -19287,7 +19287,7 @@ QUnit.test('should return an array of the results of each `iteratee` execution', function(assert) { assert.expect(1); - assert.deepEqual(_.times(3, function(n) { return n * 2; }), [0, 2, 4]); + assert.deepEqual(_.times(3, doubled), [0, 2, 4]); }); QUnit.test('should return an empty array for falsey and negative `n` arguments', function(assert) { @@ -19303,16 +19303,25 @@ assert.deepEqual(actual, expected); }); - QUnit.test('should return a wrapped value when chaining', function(assert) { - assert.expect(2); + QUnit.test('should return an unwrapped value when implicitly chaining', function(assert) { + assert.expect(1); if (!isNpm) { - var wrapped = _(3).times(); - assert.ok(wrapped instanceof _); - assert.deepEqual(wrapped.value(), [0, 1, 2]); + assert.deepEqual(_(3).times(), [0, 1, 2]); } else { - skipTest(assert, 2); + skipTest(assert); + } + }); + + QUnit.test('should return a wrapped value when explicitly chaining', function(assert) { + assert.expect(1); + + if (!isNpm) { + assert.ok(_(3).chain().times() instanceof _); + } + else { + skipTest(assert); } }); }());