-// Runs a function many times without the function call overhead\rfunction benchmark(fn, times){\r fn = fn.toString()\r var s = fn.indexOf('{')+1,\r e = fn.lastIndexOf('}');\r fn = fn.substring(s,e);\r \r return new Function('i','var t=new Date;while(i--){'+fn+'};return new Date-t')(times);\r}
\ No newline at end of file
+// Runs a function many times without the function call overhead
+function benchmark(fn, times, name){
+ fn = fn.toString();
+ var s = fn.indexOf('{')+1,
+ e = fn.lastIndexOf('}');
+ fn = fn.substring(s,e);
+
+ return benchmarkString(fn, times, name);
+}
+
+function benchmarkString(fn, times, name) {
+ var fn = new Function("i", "var t=new Date; while(i--) {" + fn + "}; return new Date - t")(times)
+ fn.displayName = name || "benchmarked";
+ return fn;
+}