You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Set/Map forEach with mid-iteration delete visits holes and skips entries (gap test red on main) #9072
test-files/test_gap_set_map_foreach_fused_receiver.ts fails on clean main — cases 5–7 (delete during Set.prototype.forEach / Map.prototype.forEach) return wrong elements, and test-parity/gap_snapshot.json expects the test to pass, so any full gap run is red on it.
Node 26.5.1 (pinned oracle):
[1,2] 0
["a:1","b:2","c:3"] 0
["p","q","r"] 2
Perry (both main @ 86c910471 and a current feature branch, perry-dev builds, PERRY_NO_AUTO_OPTIMIZE=1 — byte-identical on both arms, so pre-existing):
The shape is exactly what the test's own header warns about: delete during forEach used to compact the backing vector and was fixed for that; the current failure smells like the tombstone-hole delete work (#9020 Map pattern / recent Set-Map hole handling) changed delete-during-iteration bookkeeping — [1,null] (a hole surfaced to the callback), NaN:undefined (a hole key/value pair visited), and a stale size of 1 after deleting both entries. Case 7 additionally skips "r" after deleting an earlier entry.
Found while running the full gap suite for #9066 on 2026-08-29; A/B'd from the merge-base before attributing (both arms identical, so it is not from that PR).
Activity