Scope

Benchmark created on


Preparation HTML

<script>
  var x;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Global
x = 0;

function fn1() {
 fn2();

 function fn2() {
  fn3();

  function fn3() {
   for (var i = 0; i < 100; i++) {
    x++;
   }
  }
 }
}
fn1();
ready
window
x = 0;

function fn1() {
 fn2();

 function fn2() {
  fn3();

  function fn3() {
   for (var i = 0; i < 100; i++) {
    window.x++;
   }
  }
 }
}
fn1();
ready
window (cached)
x = 0;

function fn1(window) {
 fn2(window);

 function fn2(window) {
  fn3(window);

  function fn3(window) {
   for (var i = 0; i < 100; i++) {
    window.x++;
   }
  }
 }
}
fn1(window);
ready
parent 2
x = 0;

function fn1() {
 fn2();
 var y = 0;

 function fn2() {
  fn3();

  function fn3() {
   for (var i = 0; i < 100; i++) {
    y++;
   }
  }
 }
}
fn1();
ready
parent
x = 0;

function fn1() {
 fn2();

 function fn2() {
  fn3();
  var y = 0;

  function fn3() {
   for (var i = 0; i < 100; i++) {
    y++;
   }
  }
 }
}
fn1();
ready
local
x = 0;

function fn1() {
 fn2();

 function fn2() {
  fn3();


  function fn3() {
   var y = 0;
   for (var i = 0; i < 100; i++) {
    y++;
   }
  }
 }
}
fn1();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.