Frame-time stress.
Tight rAF loop with synthetic JS load. Reports median, p99, max frame time, and dropped-frame count over 6 seconds.
The test injects a small per-frame workload. If your device is already heavily loaded, results will be worse than for an idle device — that's the point.
Each animation frame we record the time delta since the previous frame, then run 50,000 trig calls to simulate JS work. After 6 seconds we sort the inter-frame intervals to extract median, p99, and max. Frames longer than 1.5× the median count as dropped.
The headline metric is median fps (1000 / median frame time). A 60 Hz monitor with zero stress reads ~60. A 144 Hz monitor reads ~144 unless the browser is throttling rAF.