
/* - klib.js - */
/* Javascript klib (js-klib) | http://code.google.com/p/js-klib/ | Tomasz Maćkowiak <kurazu on kurazu.net> | MIT licensed */
(function(a){var c,b;c={join:[].join,namedWithInner:function(d,f,g){var e=b.functionName(f);if(g){e=g+e}return b.augmented(d,{name:e,inner:f})}};b={version:"0.1",log:function(){try{if(console){console.log.apply(console,arguments)}}catch(d){}},functionName:function(d){return d.name?d.name:"anonymous"},augmented:function(d,f){var e;for(e in f){if(f.hasOwnProperty(e)){d[e]=f[e]}}return d},logged:function(d){return c.namedWithInner(function(){var e=d.apply(this,arguments);b.log(b.functionName(d)+"(",arguments,")=",e);return e},d,"logged_")},suppressed:function(d,e,f){return c.namedWithInner(function(){try{return d.apply(this,arguments)}catch(g){if(f){b.log(g)}return e}},d,"suppressed_")},cached:function(d){var e={};return b.augmented(c.namedWithInner(function(){var h=c.join.call(arguments,"\u0000"),g=e[h],f;if(g===undefined){f=d.apply(this,arguments);e[h]=f;return f}else{return g}},d,"cached_"),{cache:e})},defaultValues:function(d){var e=arguments;return c.namedWithInner(function(){var f=[],g,h;for(g=0;g<e.length-1||g<arguments.length;g++){h=arguments[g];if(h===undefined){h=e[g+1]}f.push(h)}return d.apply(this,f)},d,"defaultValues_")},timed:function(d,e){return c.namedWithInner(function(){var h=(new Date()).getTime(),f,g;f=d.apply(this,arguments);g=(new Date()).getTime()-h;if(e){e(g)}else{b.log(b.functionName(d),g)}return f},d,"timed_")},bound:function(d){var e=arguments;return c.namedWithInner(function(){var f=[],g;for(g=1;g<e.length;g++){f.push(e[g])}for(g=0;g<arguments.length;g++){f.push(arguments[g])}return d.apply(this,f)},d,"bound_")},keywordParams:function(d){var e=arguments;return c.namedWithInner(function(h){var f=[],g;for(g=1;g<e.length;g++){f.push(h[e[g]])}return d.apply(this,f)},d,"keywordParams_")},tupled:function(d){return c.namedWithInner(function(e){return d.apply(this,e)},d,"tupled_")},untupled:function(d){return c.namedWithInner(function(){return d.call(this,arguments)},d,"untupled_")},paramsTransformed:function(d){var e=arguments;return c.namedWithInner(function(){var f=[],g,j,h;for(g=0;g<arguments.length;g++){j=e[g+1];h=j===undefined?arguments[g]:j(arguments[g]);f.push(h)}return d.apply(this,f)},d,"paramsTransformed_")},paramsInverted:function(d){return c.namedWithInner(function(){var e=[],f;for(f=arguments.length-1;f>=0;f--){e.push(arguments[f])}return d.apply(this,e)},d,"paramsInverted_")},threaded:function(d,e,f){return c.namedWithInner(function(){var h=arguments,g=this;if(e===undefined){e=1}setTimeout(function(){var i=d.apply(g,h);if(f){f(i)}},e)},d,"threaded_")},patch:function(e,d){var f;for(f in d){if(d.hasOwnProperty(f)){e[f]=d[f](e[f])}}return e}};a.klib=b})(window);

