mirror-jetstream/Dart
Camillo Bruni 0368cebd22 Reset main-custom branch to upstream/main
All important runner changes have landed upstream.

Bug: 358290763
Change-Id: Ib47f6838618e9c0081f60f3b60d52b1ce149b2af
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7094856
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-29 02:20:40 -07:00
..
build Reset main-custom branch to upstream/main 2025-10-29 02:20:40 -07:00
.gitignore Merge upstream main into main-custom 2025-06-17 06:30:36 -07:00
benchmark.js Merge main 2025-09-03 04:51:51 -07:00
build.log Reset main-custom to latest main version 2025-09-24 01:18:07 -07:00
build.sh Merge main 2025-09-03 04:51:51 -07:00
README.md Merge upstream main into main-custom 2025-06-17 06:30:36 -07:00

Dart flute benchmark application

This is a WasmGC build of the flute benchmark, a Dart application using the Flutter UI framework. It performs the Wasm/compute-only part of rendering a certain number of frames. Since JetStream runs in JS engine shells, the actual rendering to a Canvas is stubbed out. The upstream repository containing pre-built WebAssembly binaries (which we use here) is at https://github.com/mkustermann/wasm_gc_benchmarks. The Dart source code of the flute application is at https://github.com/dart-lang/flute.

Build Instructions

See build.sh or just run it. See build.log for the last build time, used sources, and toolchain versions.

Running in JS shells

To run the unmodified upstream benchmark, without the JetStream driver, see the upstream repo. In short, the main runner is build/run_wasm.js, which takes as arguments a application-specific generated JS and Wasm file, and the arguments passed to the Dart main method. Since different engines / shells resolve JS modules and parse command-line arguments differently, the invocations are something like (from this directory):

path/to/d8 build/run_wasm.js -- flute.dart2wasm.mjs build/flute.dart2wasm.wasm -- $(date +%s.%N) 1000
path/to/spidermonkey/js build/run_wasm.js build/flute.dart2wasm.mjs flute.dart2wasm.wasm -- $(date +%s.%N) 1000
path/to/jsc build/run_wasm.js -- ./flute.dart2wasm.mjs build/flute.dart2wasm.wasm -- $(date +%s.%N) 1000