Run details:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0
Firefox 134
Ubuntu
Desktop
one month ago
Test name Executions per second
Nullish coalescing (??) 1326400640.0 Ops/sec
Logical OR (||) 1442550400.0 Ops/sec
Nullish coalescing (??) [short-circuit] 1444192256.0 Ops/sec
Logical OR (||) [short-circuit] 1262372480.0 Ops/sec
JS Compiled ?? (?:) 206904720.0 Ops/sec
JS Compiled ?? (?:) [short-circuit] 311949696.0 Ops/sec
Tests:
  • Nullish coalescing (??)

    AخA
     
    let x = null ?? undefined ?? null ?? undefined ?? null ?? undefined ?? null ?? undefined ?? null ?? undefined ?? 1;
  • Logical OR (||)

     
    let x = null || undefined || null || undefined || null || undefined || null || undefined || null || undefined || 1;
  • Nullish coalescing (??) [short-circuit]

     
    let x = 1 ?? undefined ?? null ?? undefined ?? null ?? undefined ?? null ?? undefined ?? null ?? undefined ?? 1;
  • Logical OR (||) [short-circuit]

     
    let x = 1 || undefined || null || undefined || null || undefined || null || undefined || null || undefined || 1;
  • JS Compiled ?? (?:)

     
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    let x = (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = (_a = null !== null && null !== void 0 ? null : undefined) !== null && _a !== void 0 ? _a : null) !== null && _b !== void 0 ? _b : undefined) !== null && _c !== void 0 ? _c : null) !== null && _d !== void 0 ? _d : undefined) !== null && _e !== void 0 ? _e : null) !== null && _f !== void 0 ? _f : undefined) !== null && _g !== void 0 ? _g : null) !== null && _h !== void 0 ? _h : undefined) !== null && _j !== void 0 ? _j : 1;
  • JS Compiled ?? (?:) [short-circuit]

     
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    let x = (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = (_a = 1 !== null && 1 !== void 0 ? 1 : undefined) !== null && _a !== void 0 ? _a : null) !== null && _b !== void 0 ? _b : undefined) !== null && _c !== void 0 ? _c : null) !== null && _d !== void 0 ? _d : undefined) !== null && _e !== void 0 ? _e : null) !== null && _f !== void 0 ? _f : undefined) !== null && _g !== void 0 ? _g : null) !== null && _h !== void 0 ? _h : undefined) !== null && _j !== void 0 ? _j : 1;