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
Real bugs:
- iOS deferred flush now rolls its delta into scrollAdjustments so any
resize landing before the resulting scroll event sees the correct
effective offset (previously the running accumulator stayed at 0 and
a follow-up correction would compute from the stale pre-flush offset).
- measure() now resets pendingMin so the rebuild starts from index 0.
Without this, a prior resizeItem() that left pendingMin > 0 would
cause the next getMeasurements() to preserve stale entries before
that index, partially defeating the invalidation.
Tests:
- Add a regression test for the measure() / pendingMin interaction.
- Add a regression test that asserts scrollAdjustments tracks the
flushed iOS delta.
- Replace the wall-clock perf budget on the 1M-item lazy-path test
with deterministic functional assertions (length + spot-checks of
start/size/end across the range).
Benchmarks:
- VirtuaPage.getTotalSize() now actually uses the queried sized node
before falling back to firstElementChild / host.
- Runner reads scenarios from window.bench.scenarios instead of a
runtime import('/src/scenarios/types.ts'), which wouldn't resolve
under vite preview (only the built dist is served).
- Persist the full scenario object on every result row (success and
error) and add landingErrorPx to the error-path metrics so the
schema is consistent.
- Use Array<T> annotations in dataset.ts / scenarios/types.ts to
satisfy @typescript-eslint/array-type.
- README: language hint on the tree fence (MD040) and React 18 in
the fairness notes.
0 commit comments