-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fixes #14439 This bug was introduced in #13642 because setting the input to null means the equality check ("is the input different") fails if you set the value to null Also fixes #14441 - this bug was present for a long time, and the reason is the same as for the other bug: The equality check always returns "yes this is the same" if the value is undefined initially. The fix is similar; we need to initialize the input to something that can never be equal to whatever value is passed
- Loading branch information
1 parent
9e9fb24
commit 3fa08d5
Showing
4 changed files
with
41 additions
and
12 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'svelte': patch | ||
--- | ||
|
||
fix: show `:then` block for `null/undefined` value |
This file contains 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
22 changes: 20 additions & 2 deletions
22
packages/svelte/tests/runtime-runes/samples/await-non-promise/_config.js
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,27 @@ | ||
import { flushSync } from 'svelte'; | ||
import { test } from '../../test'; | ||
import { ok, test } from '../../test'; | ||
|
||
export default test({ | ||
compileOptions: { | ||
dev: true | ||
}, | ||
test() {} | ||
test({ assert, target }) { | ||
const [btn1, btn2] = target.querySelectorAll('button'); | ||
const p = target.querySelector('p'); | ||
ok(p); | ||
|
||
assert.htmlEqual(p.outerHTML, `<p></p>`); | ||
|
||
btn1.click(); | ||
flushSync(); | ||
assert.htmlEqual(p.outerHTML, `<p>1</p>`); | ||
|
||
btn2.click(); | ||
flushSync(); | ||
assert.htmlEqual(p.outerHTML, `<p></p>`); | ||
|
||
btn1.click(); | ||
flushSync(); | ||
assert.htmlEqual(p.outerHTML, `<p>1</p>`); | ||
} | ||
}); |
17 changes: 11 additions & 6 deletions
17
packages/svelte/tests/runtime-runes/samples/await-non-promise/main.svelte
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,14 @@ | ||
<script> | ||
let count = $state(43); | ||
let count = $state(); | ||
</script> | ||
|
||
{#await count} | ||
loading | ||
{:then count} | ||
{count} | ||
{/await} | ||
<button onclick={() => count = 1}>number</button> | ||
<button onclick={() => count = null}>nullify</button> | ||
|
||
<p> | ||
{#await count} | ||
loading | ||
{:then count} | ||
{count} | ||
{/await} | ||
</p> |