jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<script src="http://underscorejs.org/underscore-min.js"></script>
<script>
var slice = Array.prototype.slice,
push = Array.prototype.push;
Function.prototype.bindSimplified = function(context){
var fn = this;
return function(){
return this instanceof fn ? fn() : fn.call(context, arguments[0]);
};
};
Function.prototype.bindFirst = function(context){
var fn = this, args = slice.call(arguments,1);
return function(){
return fn.apply(context, args.concat(slice.call(arguments)));
};
};
Function.prototype.secondBind = function(context){
var fn = this, linked = [];
push.apply(linked, arguments);
linked.shift();
return function(){
var args = [];
push.apply(args, linked);
push.apply(args, arguments);
return fn.apply(context, args);
};
};
Function.prototype.bindThird = function (object) {
var originalFunction = this, args = slice.call(arguments), object = args.shift();
return function () {
return originalFunction.apply(object, args.concat(slice.call(arguments)));
};
};
// test function and context
var testcxt = {},
testarg1 = 'test',
testarg2 = {},
testarg3 = 1,
testarg4 = {},
testfunc = function() {
},
testfunc1 = function() {
};
;
var first = testfunc.bindFirst(testcxt);
var second = testfunc.secondBind(testcxt);
var third = testfunc.bindThird(testcxt);
var native = testfunc.bind ? testfunc.bind(testcxt) : testfunc.secondBind(testcxt);
var simple = testfunc.bindSimplified(testcxt);
var underscore = _.bind( testfunc, testcxt );
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
First |
| ready |
Second |
| ready |
Third |
| ready |
Native |
| ready |
Simplified |
| ready |
_ |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.