CI / test (pull_request) Successful in 1m56s
CI times out on the 7 "HLS QA: Deep probe strategies" tests. Root cause is a jsdom-only artifact, not a production bug: jsdom exposes the self-referential cyclic globals (_globalObject/_globalProxy/_top/_parent/ window/self/top/parent/frames) as ENUMERABLE own-props on the window. Strategy H in m3u8DeepProbeFn() runs Object.keys(window) and a no- visited-set walk() over each, which explodes to O(204^5) ≈ 3.5e11 ops and never terminates within the depth-5 cap, so the whole suite hangs forever. A real Chrome MAIN-world window does NOT expose those keys as enumerable own-props, so this is purely a test-environment mismatch. The fix is test-only: sanitizeJsdomWinForProbe() marks the jsdom cyclic globals non-enumerable in runProbeInWin() before eval, mirroring a real page. No production/underlying source (src/viewer/index.js) is modified. Local (Node 22.22.3 / Linux == CI ubuntu-latest + Node 22): before: npm test hangs indefinitely (no Results line; CI job killed) after: npm run build && npm test -> 83/83 passed in ~12.5s