if vs ??=

Benchmark created on


Setup

var N = 500000;
var KEY_COUNT = 64;

var keys = new Array(N);
for (var i = 0; i < N; i++) {
  keys[i] = "k" + (i % KEY_COUNT);
}

Test runner

Ready to run.

Testing in
TestOps/sec
if
var result = {}

for (var i = 0; i < N; i++) {
  var name = keys[i];
  if (result[name] == null) {
    result[name] = [];
  }
  result[name].push(i);
}

ready
??=
var result = {}

for (var i = 0; i < N; i++) {
  var name = keys[i];
  (result[name] ??= []).push(i);
}

ready

Revisions

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