// Runs a function many times without the function call overhead
function benchmark(fn, times){
	fn = fn.toString()
	var s = fn.indexOf('{')+1,
		e = fn.lastIndexOf('}');
	fn = fn.substring(s,e);
	
	return new Function('i','var t=new Date;while(i--){'+fn+'};return new Date-t')(times);
}