fix: handle scheduled roots during async batch rebasing - #18676
Draft
svelte-triage-bot[bot] wants to merge 1 commit into
Draft
fix: handle scheduled roots during async batch rebasing#18676svelte-triage-bot[bot] wants to merge 1 commit into
svelte-triage-bot[bot] wants to merge 1 commit into
Conversation
|
Install the latest version of pnpm add https://pkg.svelte.dev/svelte/c/3abb714b260f432dda4e57125b9eba012fb1c04fOpen in Note This PR is from a fork. A maintainer must approve approve each commit before it can be built and installed. |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #18675.
When one async batch commits, another batch can legitimately already have roots scheduled for a later flush. Batch rebasing incorrectly treated this as an invariant violation and could eagerly traverse work that was already scheduled.
Record whether the target batch already has scheduled work before marking rebase dependencies, and only eagerly traverse roots newly created by that marking when no flush is already pending.
Adds a runtime-runes regression covering a branch mounted after initial render with
$effect.pending(), an awaited each block,bind:this, and a second awaited expression.