inner vs outer

Benchmark created by buzz on


Setup

var x = (function() {
      function outer(fn) {
        return function(list) {
          var idx = -1, len = list.length;
          while (++idx < len) {
            fn(list[idx]);
          }
          return list;
        };
      };
    
      return {
        eachInner: function(fn, list) {
          function inner(list) {
            var idx = -1, len = list.length;
            while (++idx < len) {
              fn(list[idx]);
            }
            return list;
          }
          return (arguments.length < 2) ? inner : inner(list);
        },
        
        eachOuter: function(fn, list) {     
          return (arguments.length < 2) ? outer(fn) : outer(fn)(list);
        }
    
      }; 
    
    }());
    
    function square(x) { return x * x; }
    var list = [1,2,3,4,5,6,7,8,9,10];

Test runner

Ready to run.

Testing in
TestOps/sec
inner curried
x.eachInner(square)(list);
ready
inner
x.eachInner(square,list);
ready
outer curried
x.eachOuter(square)(list);
ready
outer
x.eachOuter(square,list);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.