mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-11 03:17:49 +00:00
Cleanup _.curry.
Former-commit-id: edcc8b2b4c67fa04d8c67e7b7fcdd071c4155e89
This commit is contained in:
@@ -1445,6 +1445,7 @@
|
|||||||
var isBind = bitmask & 1,
|
var isBind = bitmask & 1,
|
||||||
isBindKey = bitmask & 2,
|
isBindKey = bitmask & 2,
|
||||||
isCurry = bitmask & 4,
|
isCurry = bitmask & 4,
|
||||||
|
isPartial = bitmask & 8,
|
||||||
isPartialRight = bitmask & 16;
|
isPartialRight = bitmask & 16;
|
||||||
|
|
||||||
if (!isBindKey && !isFunction(func)) {
|
if (!isBindKey && !isFunction(func)) {
|
||||||
@@ -1458,10 +1459,10 @@
|
|||||||
if (isCurry && !(bindData[1] & 4)) {
|
if (isCurry && !(bindData[1] & 4)) {
|
||||||
bindData[5] = arity;
|
bindData[5] = arity;
|
||||||
}
|
}
|
||||||
if (partialArgs) {
|
if (isPartial) {
|
||||||
push.apply(bindData[2] || (bindData[2] = []), partialArgs);
|
push.apply(bindData[2] || (bindData[2] = []), partialArgs);
|
||||||
}
|
}
|
||||||
if (partialRightArgs) {
|
if (isPartialRight) {
|
||||||
push.apply(bindData[3] || (bindData[3] = []), partialRightArgs);
|
push.apply(bindData[3] || (bindData[3] = []), partialRightArgs);
|
||||||
}
|
}
|
||||||
bindData[1] |= bitmask;
|
bindData[1] |= bitmask;
|
||||||
|
|||||||
14
test/test.js
14
test/test.js
@@ -679,6 +679,20 @@
|
|||||||
equal(curried(1, 2, 3), 6);
|
equal(curried(1, 2, 3), 6);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should work with partial methods', function() {
|
||||||
|
function func(a, b, c) {
|
||||||
|
return a + b + c;
|
||||||
|
}
|
||||||
|
|
||||||
|
var curried = _.curry(func),
|
||||||
|
a = _.partial(curried, 1),
|
||||||
|
b = _.partialRight(a, 3),
|
||||||
|
c = _.partialRight(a(2), 3);
|
||||||
|
|
||||||
|
equal(b(2), 6);
|
||||||
|
equal(c(), 6);
|
||||||
|
});
|
||||||
|
|
||||||
test('should not alter the `this` binding', function() {
|
test('should not alter the `this` binding', function() {
|
||||||
function func(a, b, c) {
|
function func(a, b, c) {
|
||||||
return this[a] + this[b] + this[c];
|
return this[a] + this[b] + this[c];
|
||||||
|
|||||||
Reference in New Issue
Block a user