diff --git a/FIDELITY.md b/FIDELITY.md index 346fe98..b854d79 100644 --- a/FIDELITY.md +++ b/FIDELITY.md @@ -18,6 +18,18 @@ The committed PNGs under `testdata/renders/` back every claim here. Reproduce them with the commands at the bottom. The measured-vs-Chrome numbers live in [`bench/REPORT.md`](bench/REPORT.md). +## 2026-09-09 (round 70) — `document.currentScript` was hardcoded to always return null, so a bundler's own base-URL detection came back empty for every chunk load — found live on tailwindcss.com's Turbopack runtime, 10 failing script executions closed with one fix (engine#159) + +No fresh issue was filed this round (checked `gh issue list` again). A visual scan of en.wikipedia.org's own montage — still the corpus's worst page by a wide margin — traced its whole-page diffuse vertical offset directly to the SAME already-documented external-content-variability culprit as rounds 63/64: Chrome's fetch this run happened to include the intermittent "Wiki Loves Monuments" promotional banner again, shifting everything below it down by a constant amount; correctly recognised as noise, not chased further. Pivoted to a fresh `Engine.JSLog` sweep (round 60/69's own methodology) instead, which turned up no new panics but did surface a cluster of 10 repeated script-execution failures on tailwindcss.com that hadn't been individually investigated before: `Error: chunk path empty but not in a worker`, once per lazily-loaded Turbopack chunk. + +- **Root-caused by reasoning from the error's own phrasing, not by guessing from the minified bundle text**: "chunk path empty but not in a worker" reads as a bundler-runtime assertion — outside a Web Worker, a chunk-loading module ordinarily derives its OWN base path from `document.currentScript.src` (the standard Webpack/Turbopack idiom for locating sibling chunk files relative to the currently-running script), then falls back to a worker-specific mechanism only inside an actual worker. Checked this engine's own binding for `document.currentScript`: it was unconditionally hardcoded to `null`, regardless of whether a script was actually running — so that base-path detection always failed, producing an empty path, which is exactly the condition the runtime's own error message describes. +- **Fixed by actually tracking the currently-executing script**, rather than special-casing this one property: a new `binder.currentScript` field is set to the ` + + `) + mustHave(t, logs, "first=first", "second=second", "timer=null") +} + func TestDocumentTitleAndCookie(t *testing.T) { // Existing is updated in place. root, logs, _ := runJS(t, page(`