const vs var in closures (v4)

Revision 4 of this benchmark created on


Preparation HTML

<script>
  const globalConst1 = "b";
  const globalConstA = "a";
  var global1 = "b";
  var globalA = "a";

  function makeConstClosure(n) {
    const value = n;

    return function() {
      return value;
    }
  }

  var cc1 = makeConstClosure("b");
  var cca = makeConstClosure("a");

  function makeVarClosure(n) {
    var value = n;

    return function() {
      return value;
    }
  }

  var vc1 = makeVarClosure("b");
  var vca = makeVarClosure("a");

  var gcc1 = function() {
      return globalConst1;
      };
  var gcca = function() {
      return globalConstA;
      };
  var gvc1 = function() {
      return global1;
      };
  var gvca = function() {
      return globalA;
      };

  var count = 5000;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
const
for (var i = 0; i < count; i++) {
  if (cc1() !== "b") throw new Error();
  if (cca() !== "a") throw new Error();
}
ready
var
for (var i = 0; i < count; i++) {
  if (vc1() !== "b") throw new Error();
  if (vca() !== "a") throw new Error();
}
ready
global const
for (var i = 0; i < count; i++) {
  if (gcc1() !== "b") throw new Error();
  if (gcca() !== "a") throw new Error();
}
ready
global var
for (var i = 0; i < count; i++) {
  if (gvc1() !== "b") throw new Error();
  if (gvca() !== "a") throw new Error();
}
ready

Revisions

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