Skip to content

Instantly share code, notes, and snippets.

@atg
Created September 20, 2016 17:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atg/9f4f71829e4c794e1cac024c43c5c9cd to your computer and use it in GitHub Desktop.
Save atg/9f4f71829e4c794e1cac024c43c5c9cd to your computer and use it in GitHub Desktop.
/*
on my machine:
es3 50000095000000 1085 ms
es5 50000095000000 11037 ms
es6 50000095000000 910 ms
es3 50000095000000 1100 ms
es5 50000095000000 11640 ms
es6 50000095000000 876 ms
*/
function outer3() {
var sum = 0;
var t0 = Date.now();
for (var i = 0; i < 10000000; i++) {
var f = (function(_this) {
return (function(x) {
return x + _this;
});
})(this);
sum += f(i);
}
var t1 = Date.now();
console.log("es3", sum, t1 - t0, "ms");
}
function outer5() {
var sum = 0;
var t0 = Date.now();
for (var i = 0; i < 10000000; i++) {
var f = (function(x) { return x + this; }).bind(this);
sum += f(i);
}
var t1 = Date.now();
console.log("es5", sum, t1 - t0, "ms");
}
function outer6() {
var sum = 0;
var t0 = Date.now();
for (var i = 0; i < 10000000; i++) {
var f = (x) => { return x + this };
sum += f(i);
}
var t1 = Date.now();
console.log("es6", sum, t1 - t0, "ms");
}
outer3.bind(10)()
outer5.bind(10)()
outer6.bind(10)()
outer3.bind(10)()
outer5.bind(10)()
outer6.bind(10)()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment