Pages stay alive, repaints never block your scroll, and type matches the reference browser's
This release gives the engine a real event loop, the part of a browser that decides what runs when. Until now every repeating timer a page set (a clock, a news ticker, a carousel, a script checking for new messages) quietly stopped for good during loading, so live pages froze. Timers now keep running on the real clock after a page loads, and the engine wakes itself exactly when the page needs it. The engine can also stop a page's script in its tracks, in a few milliseconds, without killing the page. Clicking a new link while a heavy page is still loading now drops the old load at once instead of waiting it out, and the Stop button works on engine pages. the reference browser can only end a stuck page by killing it; this ends the task and keeps the page. When a page repaints (a font arrives, a script redraws), the new picture is now painted in the background and swapped in when it is ready, the way the reference browser does it, so scrolling never waits for it. And the macOS system font now uses the exact optical size for every text size, like macOS and the reference browser, at a third of the memory it used to take.
Live pages stay live. Every repeating timer a page set used to stop for good during loading, so clocks, tickers, carousels and pollers froze. Timers now keep running on the real clock after load: a ticker set to 250 milliseconds ticks four times a second, exactly as in the reference browser, and a timer that ran late never fires a burst of catch-up ticks.
JavaScript & JIT
The engine runs a real event loop: your clicks, keys and scrolls always go first, and in between it sleeps until the page's next timer is due, runs it, and repaints only if something changed. Pages update on time instead of whenever the browser next checked.
JavaScript & JIT
Scripts can be stopped without losing the page. The engine can interrupt whatever script a page is running within a few milliseconds, even inside our fastest compiled code and even if the script tries to catch the interruption, and the page stays exactly as it was and keeps working. A browser's usual answer to a stuck page is to kill it.
Rendering
Clicking a link while a heavy page is still loading now abandons the old load at once. Measured 2.5 seconds into the encyclopedia's load: the new page starts after 0.37 seconds instead of 2 seconds. The Stop button now works on engine pages too.
Tabs & interface
Repaints never block scrolling. When a page changes (a font arrives, a script redraws), the new picture is painted in the background while you keep scrolling the current one, and swapped in all at once when it is ready (the reference browser calls this the pending tree). On a Windows laptop, the scroll machinery used to freeze for 15 to 47 milliseconds on every repaint; it no longer freezes on repaints at all.
Rendering
The macOS system font (San Francisco) now uses the exact optical size for every text size, as macOS and the reference browser do: small text gets the wider, sturdier cut and headings the tighter one. The worst text-width difference from the reference browser dropped from 2.9% to 1.3%.
Memory & reading
Those optical sizes are now built one letter at a time when first drawn, instead of saving a full copy of the font for each size. Loading the system font takes a third of the time and about half the memory, with identical letters.
Memory & reading
Every font keeps far less idle memory: the table that holds letter shapes is now filled in small pieces as letters are drawn, instead of reserving room for every letter in the font up front (a large Chinese or emoji font has tens of thousands).
Web APIs & DOM
Sites behind a large retailer's human check, now shows the check instead of a blank page, in English, in the site's own font. The fixes behind it help every site: page scripts can read numbers' methods through brackets, constructors can return lists and elements, and links and options that scripts build now work (a stylesheet link added by a script now loads, and so do the fonts it asks for).
Rendering
Layout fixes you can see: items stacked in a column no longer grow by their own margins or overlap the next item, icons beside a label keep their size, a box's maximum width is respected when its container sizes itself, and a dropdown is as wide as its longest option, as in the reference browser.