// bench_arith.js — arithmetic and number crunching benchmark (QuickJS) const iterations = 2000000; function bench_int_sum() { let s = 0; for (let i = 0; i < iterations; i++) { s = s + i; } return s; } function bench_int_mul_mod() { let s = 0; for (let i = 1; i < iterations; i++) { s = s + (i * 7 % 1000); } return s; } function bench_float_arith() { let s = 0.5; for (let i = 1; i < iterations; i++) { s = s + 1.0 / i; } return s; } function bench_branch() { let fizz = 0, buzz = 0, fizzbuzz = 0; for (let i = 1; i <= iterations; i++) { if (i % 15 === 0) { fizzbuzz = fizzbuzz + 1; } else if (i % 3 === 0) { fizz = fizz + 1; } else if (i % 5 === 0) { buzz = buzz + 1; } } return fizz + buzz + fizzbuzz; } function bench_nested() { let s = 0; const outer = 5000, inner = 5000; for (let i = 0; i < outer; i++) { for (let j = 0; j < inner; j++) { s = s + 1; } } return s; } function run(name, fn) { const start = performance.now(); const result = fn(); const elapsed = performance.now() - start; console.log(` ${name}: ${elapsed.toFixed(2)} ms (result: ${result})`); } console.log("=== Arithmetic Benchmark ==="); console.log(` iterations: ${iterations}`); run("int_sum ", bench_int_sum); run("int_mul_mod ", bench_int_mul_mod); run("float_arith ", bench_float_arith); run("branch ", bench_branch); run("nested_loop ", bench_nested);