mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 01:57:50 +00:00
Ensure _.flatten works with extremely large arrays. [closes #349]
This commit is contained in:
12
dist/lodash.underscore.js
vendored
12
dist/lodash.underscore.js
vendored
@@ -420,7 +420,17 @@
|
||||
var value = array[index];
|
||||
// recursively flatten arrays (susceptible to call stack limits)
|
||||
if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {
|
||||
push.apply(result, isShallow ? value : baseFlatten(value, isShallow, isArgArrays));
|
||||
if (!isShallow) {
|
||||
value = baseFlatten(value, isShallow, isArgArrays);
|
||||
}
|
||||
var pad = result.length,
|
||||
valIndex = -1,
|
||||
valLength = value.length;
|
||||
|
||||
result.length += valLength;
|
||||
while (++valIndex < valLength) {
|
||||
result[pad + valIndex] = value[valIndex];
|
||||
}
|
||||
} else if (!isArgArrays) {
|
||||
result.push(value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user