Function Inception
JavaScript performance comparison
Info
Preparation code
<script>
Benchmark.prototype.setup = function() {
var literal = function literal(a) { var sum = 0; for (var i = 0; i < 500; ++i) { sum += Math.random() * a; } return sum; }
var sBody = "var sum = 0; for (var i = 0; i < 500; ++i) { sum += Math.random() * a; } return sum;";
var meta = new Function("a", sBody);
var metaMetaMaker = function(sName, sArgs, sBody) {
return new Function("return function " + sName + "(" + sArgs + ") {" + sBody + "}")();
}
var metaMeta = metaMetaMaker("literal", "a", sBody);
var evaled;
eval("evaled = " + literal.toString());
var x;
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
literal |
|
pending… |
meta |
|
pending… |
meta-meta |
|
pending… |
eval'ed |
|
pending… |
You can edit these tests or add even more tests to this page by appending /edit to the URL.
0 comments