eval vs loop

JavaScript performance comparison

Test case created

Preparation code

<script>
  var namespace = { dogs: { cats: { coyotes: function() {
    if (!this.test) throw "fail";
  }, test: 1 } } },
      arr = ['dogs', 'cats', 'coyotes'];
 
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
loop
for (var i=0,l=arr.length,o=namespace,p; i<l; i++) {
  p = o;
  o =  o[arr[i]];
}

o.call(p);
pending…
eval
eval('namespace.' + arr.join('.') + '()')
pending…
eval with
with(namespace) eval(arr.join('.')+'()')
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment