mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-02 08:07:50 +00:00
Ensure shortcut fusion works for _.at with no indexes specified.
This commit is contained in:
@@ -13895,8 +13895,11 @@
|
||||
|
||||
LazyWrapper.prototype.at = rest(function(paths) {
|
||||
paths = baseFlatten(paths);
|
||||
return (paths.length == 1 && isIndex(paths[0]))
|
||||
? this.slice(paths[0], +paths[0] + 1)
|
||||
var length = paths.length,
|
||||
start = length ? paths[0] : 0;
|
||||
|
||||
return (length < 2 && isIndex(start))
|
||||
? this.slice(start, length ? (+start + 1) : start)
|
||||
: new LazyWrapper(this);
|
||||
});
|
||||
|
||||
|
||||
12
test/test.js
12
test/test.js
@@ -1269,7 +1269,7 @@
|
||||
});
|
||||
|
||||
QUnit.test('should support shortcut fusion', function(assert) {
|
||||
assert.expect(4);
|
||||
assert.expect(6);
|
||||
|
||||
if (!isNpm) {
|
||||
var array = lodashStable.range(LARGE_ARRAY_SIZE),
|
||||
@@ -1277,16 +1277,16 @@
|
||||
iteratee = function(value) { count++; return square(value); },
|
||||
lastIndex = LARGE_ARRAY_SIZE - 1;
|
||||
|
||||
_.each([lastIndex, lastIndex + ''], function(index) {
|
||||
_.each([lastIndex, lastIndex + '', []], function(n, index) {
|
||||
count = 0;
|
||||
var actual = _(array).map(iteratee).at(index).value();
|
||||
var actual = _(array).map(iteratee).at(n).value();
|
||||
|
||||
assert.strictEqual(count, 1);
|
||||
assert.deepEqual(actual, [square(lastIndex)]);
|
||||
assert.strictEqual(count, index == 2 ? 0 : 1);
|
||||
assert.deepEqual(actual, index == 2 ? [] : [square(lastIndex)]);
|
||||
});
|
||||
}
|
||||
else {
|
||||
skipTest(assert, 4);
|
||||
skipTest(assert, 6);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user