From 12f04650de7d684746b2fc2b536a9f8a6c0ee772 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 13 Jul 2014 00:26:27 -0700 Subject: [PATCH] Ignore `isSorted` if `_.indexOf` is customized. --- lodash.js | 3 ++- test/test.js | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lodash.js b/lodash.js index 43d8d2d73..d61413c91 100644 --- a/lodash.js +++ b/lodash.js @@ -2397,11 +2397,12 @@ } var index = -1, indexOf = getIndexOf(), - prereq = !isSorted && indexOf === baseIndexOf, + prereq = indexOf === baseIndexOf, isLarge = prereq && createCache && length >= 200, isCommon = prereq && !isLarge, result = []; + isSorted = prereq && isSorted; if (isLarge) { var seen = createCache(); indexOf = cacheIndexOf; diff --git a/test/test.js b/test/test.js index b01b7685f..7d0cdafc2 100644 --- a/test/test.js +++ b/test/test.js @@ -4527,11 +4527,15 @@ } }); - test('`_.uniq` should work with a custom `_.indexOf` method', 2, function() { + test('`_.uniq` should work with a custom `_.indexOf` method', 6, function() { if (!isModularize) { _.indexOf = custom; - deepEqual(_.uniq(array), array.slice(0, 3)); - deepEqual(_.uniq(largeArray), [largeArray[0]]); + + _.each([false, true, _.identity], function(param) { + deepEqual(_.uniq(array, param), array.slice(0, 3)); + deepEqual(_.uniq(largeArray, param), [largeArray[0]]); + }); + _.indexOf = indexOf; } else {