// Copyright 2025 the V8 project authors. All rights reserved. // Copyright 2025 Apple Inc. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. class Benchmark { async init() { Module.wasmBinary = await JetStream.getBinary(JetStream.preload.wasmBinary); } async runIteration() { // Instantiate the Wasm module before the first run. if (!Module._setup) await setupModule(Module); // Set-up the problem (fill the work queue) on each run. const taskCount = 200_000; Module._setup(taskCount); // Repeatedly call into Wasm to stress test JS-to-Wasm call performance. // I (dlehmann) suppose this wrapper was added (originally in JetStream 2) // to test that a wrapping JavaScript function doesn't slow things down. function scheduleIter() { return Module._scheduleIter(); } while (scheduleIter()) {} } validate() { if (Module._getQpktcount() !== 465212 || Module._getHoldcount() !== 186084) throw new Error("Bad richards result!"); } }