-
-
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.
fix: remove let variable from select binding dependencies (#8969)
Fixes #2943 The issue linked above invalidates a variable that is not defined in <script> but instead is defined as a let: variable, which does not make sense to invalidate, therefore, this PR exists.
- Loading branch information
Showing
8 changed files
with
97 additions
and
1 deletion.
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: remove `let:variable` slot bindings from select binding dependencies |
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
6 changes: 6 additions & 0 deletions
6
packages/svelte/test/runtime/samples/binding-select-from-let-2/Parent.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 |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<script> | ||
const tasks = ["do laundry", "do taxes", "cook food", "watch the kids"]; | ||
</script> | ||
|
||
<slot {tasks} /> | ||
|
25 changes: 25 additions & 0 deletions
25
packages/svelte/test/runtime/samples/binding-select-from-let-2/_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 |
---|---|---|
@@ -0,0 +1,25 @@ | ||
export default { | ||
html: ` | ||
<select> | ||
<option value='do laundry'>do laundry</option> | ||
<option value='do taxes'>do taxes</option> | ||
<option value='cook food'>cook food</option> | ||
<option value='watch the kids'>watch the kids</option> | ||
</select> | ||
<p>1</p> | ||
`, | ||
|
||
async test({ assert, component, target, window }) { | ||
const select = target.querySelector('select'); | ||
const options = target.querySelectorAll('option'); | ||
|
||
assert.equal(component.tasks_touched, 1); | ||
|
||
const change = new window.Event('change'); | ||
options[1].selected = true; | ||
await select.dispatchEvent(change); | ||
|
||
assert.equal(component.selected, options[1].value); | ||
assert.equal(component.tasks_touched, 1); | ||
} | ||
}; |
19 changes: 19 additions & 0 deletions
19
packages/svelte/test/runtime/samples/binding-select-from-let-2/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 |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<script> | ||
import Parent from "./Parent.svelte"; | ||
export let selected; | ||
export let tasks = ['do nothing']; | ||
export let tasks_touched = 0; | ||
$: { | ||
tasks, tasks_touched++; | ||
} | ||
</script> | ||
|
||
<Parent let:tasks={tasks}> | ||
<select bind:value={selected}> | ||
{#each tasks as task} | ||
<option value={task}>{task}</option> | ||
{/each} | ||
</select> | ||
</Parent> | ||
<p>{tasks_touched}</p> |
6 changes: 6 additions & 0 deletions
6
packages/svelte/test/runtime/samples/binding-select-from-let/Parent.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 |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<script> | ||
const tasks = ["do laundry", "do taxes", "cook food", "watch the kids"]; | ||
</script> | ||
|
||
<slot {tasks} /> | ||
|
21 changes: 21 additions & 0 deletions
21
packages/svelte/test/runtime/samples/binding-select-from-let/_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 |
---|---|---|
@@ -0,0 +1,21 @@ | ||
export default { | ||
html: ` | ||
<select> | ||
<option value='do laundry'>do laundry</option> | ||
<option value='do taxes'>do taxes</option> | ||
<option value='cook food'>cook food</option> | ||
<option value='watch the kids'>watch the kids</option> | ||
</select> | ||
`, | ||
|
||
async test({ assert, component, target, window }) { | ||
const select = target.querySelector('select'); | ||
const options = target.querySelectorAll('option'); | ||
|
||
const change = new window.Event('change'); | ||
options[1].selected = true; | ||
await select.dispatchEvent(change); | ||
|
||
assert.equal(component.selected, options[1].value); | ||
} | ||
}; |
12 changes: 12 additions & 0 deletions
12
packages/svelte/test/runtime/samples/binding-select-from-let/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 |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<script> | ||
import Parent from "./Parent.svelte"; | ||
export let selected; | ||
</script> | ||
|
||
<Parent let:tasks={tasks}> | ||
<select bind:value={selected}> | ||
{#each tasks as task} | ||
<option value={task}>{task}</option> | ||
{/each} | ||
</select> | ||
</Parent> |