Skip to content
This repository has been archived by the owner on Nov 12, 2019. It is now read-only.

Commit

Permalink
relaxed requirement for named functions to avoid ie issues. See #9
Browse files Browse the repository at this point in the history
  • Loading branch information
hughfdjackson committed Jul 7, 2013
1 parent 03b9fba commit 15dadd3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 19 deletions.
22 changes: 11 additions & 11 deletions curry.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ var toArray = function(a){ return slice.call(a) }
var createFn = function(fn, args){
var arity = fn.length - args.length;

if ( arity === 0 ) return function curriedFn(){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 1 ) return function curriedFn(a){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 2 ) return function curriedFn(a,b){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 3 ) return function curriedFn(a,b,c){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 4 ) return function curriedFn(a,b,c,d){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 5 ) return function curriedFn(a,b,c,d,e){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 6 ) return function curriedFn(a,b,c,d,e,f){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 7 ) return function curriedFn(a,b,c,d,e,f,g){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 8 ) return function curriedFn(a,b,c,d,e,f,g,h){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 9 ) return function curriedFn(a,b,c,d,e,f,g,h,i){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 10 ) return function curriedFn(a,b,c,d,e,f,g,h,i,j){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 0 ) return function (){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 1 ) return function (a){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 2 ) return function (a,b){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 3 ) return function (a,b,c){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 4 ) return function (a,b,c,d){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 5 ) return function (a,b,c,d,e){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 6 ) return function (a,b,c,d,e,f){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 7 ) return function (a,b,c,d,e,f,g){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 8 ) return function (a,b,c,d,e,f,g,h){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 9 ) return function (a,b,c,d,e,f,g,h,i){ return processInvocation(fn, argify(args, arguments)) };
if ( arity === 10 ) return function (a,b,c,d,e,f,g,h,i,j){ return processInvocation(fn, argify(args, arguments)) };
return createEvalFn(fn, args, arity);
}

Expand Down
8 changes: 0 additions & 8 deletions test/curry-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,9 @@ describe('curry', function(){
a.equal(curry(function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o){}).length, 15)
});

it('should return the a named function', function(){
var add = curry(function(a, b){ return a + b });

a.equal(add.name, 'curriedFn');
a.equal(add(1).name, 'curriedFn');
});

it('should allow 0 arg curried fns', function(){
var noop = curry(function(){});

a.equal(noop.length, 0);
a.equal(noop(), undefined);
})
});

0 comments on commit 15dadd3

Please sign in to comment.