Wren 0.6.17
Wren 0.6.17 stops stuttering when the pointer moves over a page like GitHub's.
This is still a beta, under development, and Windows-only.
Highlights
- Hovering no longer restyles the page. On GitHub's repository page, every move of the pointer over a link or a topic tag made a full style pass, about 120 ms each, so the page drew four frames a second under the pointer. Two rules were the cause: a
:has()with a hover inside it, and an:is()with a state in it, which the partial restyle took for a match everywhere. Both are now scoped: a state change costs 1.3 ms of style work on average instead of 29 ms, and the share of frames over their budget while the pointer moves falls from 40 % to 4 %. - Large ES modules are compiled off the interface thread, like large classic scripts: the page does its other work while a compile thread makes the bytecode.