node/benchmark/sqlite/sqlite-is-transaction.js
Rafael Gonzaga 92095048d1
benchmark: fix sqlite-is-transaction
The variable deadCodeElimination is declared
but not initialized, making it undefined by default.
When using the &&= operator with an undefined left operand,
the result will always remain undefined regardless of
how many iterations run.

```js
let deadCodeElimination;
deadCodeElimination &&= true
deadCodeElimination // undefined
```

PR-URL: https://github.com/nodejs/node/pull/59170
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Edy Silva <edigleyssonsilva@gmail.com>
2025-07-24 17:05:56 +00:00

31 lines
661 B
JavaScript

'use strict';
const common = require('../common.js');
const sqlite = require('node:sqlite');
const assert = require('assert');
const bench = common.createBenchmark(main, {
n: [1e7],
transaction: ['true', 'false'],
});
function main(conf) {
const db = new sqlite.DatabaseSync(':memory:');
if (conf.transaction === 'true') {
db.exec('BEGIN');
}
let i;
let deadCodeElimination = true;
bench.start();
for (i = 0; i < conf.n; i += 1)
deadCodeElimination &&= db.isTransaction;
bench.end(conf.n);
assert.ok(deadCodeElimination === (conf.transaction === 'true'));
if (conf.transaction === 'true') {
db.exec('ROLLBACK');
}
}