From b928abb95648eea179d347140b5f1e856266f2c4 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Fri, 7 Jun 2013 08:24:30 -0700 Subject: [PATCH] Tweak `_.intersection` to still hit fast paths in engines. Former-commit-id: e8cb944bd6223bb30d58da343c4b5a3f296a4956 --- lodash.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lodash.js b/lodash.js index dd05e0e4c..a11c7d3a5 100644 --- a/lodash.js +++ b/lodash.js @@ -3993,20 +3993,22 @@ seen = getArray(); while (++argsIndex < argsLength) { - var value = argsIndex ? args[argsIndex] : seen; - caches[argsIndex] = indexOf === basicIndexOf && (value && value.length) >= largeArraySize && createCache(value); + var value = args[argsIndex]; + caches[argsIndex] = indexOf === basicIndexOf && + (value ? value.length : 0) >= largeArraySize && + createCache(argsIndex ? args[argsIndex] : seen); } outer: while (++index < length) { var cache = caches[0]; value = array[index]; - if ((cache ? cacheIndexOf : indexOf)(cache || seen, value) < 0) { + if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) { argsIndex = argsLength; - seen.push(value); + (cache || seen).push(value); while (--argsIndex) { cache = caches[argsIndex]; - if ((cache ? cacheIndexOf : indexOf)(cache || args[argsIndex], value) < 0) { + if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) { continue outer; } }