fix: prevent infinite loop when HMRing a component with an await #17380
+24 −26
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.
Alternative to #17374. I think this is a more correct fix — it makes the
$.hmrblock effect a no-op when it isn't running as a result of ahot.acceptcallback, rather than excluding all block effects from re-running after the firstawaitis encountered during traversal.It also makes the HMR implementation simpler, both in terms of the generated code...
...and the dance that needs to happen inside
$.hmr.Before submitting the PR, please make sure you do the following
feat:,fix:,chore:, ordocs:.packages/svelte/src, add a changeset (npx changeset).Tests and linting
pnpm testand lint the project withpnpm lint