Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Chrome 114
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
if condition 7527238.0 Ops/sec
self-assignment 31347188.0 Ops/sec
Tests:
  • if condition

    x
     
    const x = {
        foo: []
    };
    const keys = ["foo", "bar"];
    for (const key of keys) {
      if (!Object.prototype.hasOwnProperty.call(x, key)) {
        x[key] = [];
      }
    }
  • self-assignment

     
    const x = {
        foo: []
    };
    const keys = ["foo", "bar"];
    for (const key of keys) {
      x[key] = x[key] ?? [];
    }