mirror of https://github.com/sveltejs/svelte
fix $$props reactivity in fallback of a slot (#5375)
parent
b1c67a16c6
commit
51e2626f42
@ -1,9 +1,11 @@
|
|||||||
import { Var } from '../../../../interfaces';
|
import { Var } from '../../../../interfaces';
|
||||||
|
import { is_reserved_keyword } from '../../../utils/reserved_keywords';
|
||||||
|
|
||||||
export default function is_dynamic(variable: Var) {
|
export default function is_dynamic(variable: Var) {
|
||||||
if (variable) {
|
if (variable) {
|
||||||
if (variable.mutated || variable.reassigned) return true; // dynamic internal state
|
if (variable.mutated || variable.reassigned) return true; // dynamic internal state
|
||||||
if (!variable.module && variable.writable && variable.export_name) return true; // writable props
|
if (!variable.module && variable.writable && variable.export_name) return true; // writable props
|
||||||
|
if (is_reserved_keyword(variable.name)) return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
<slot />
|
@ -0,0 +1,9 @@
|
|||||||
|
<script>
|
||||||
|
import Foo from './Foo.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Foo>
|
||||||
|
<slot>
|
||||||
|
{JSON.stringify($$props)}
|
||||||
|
</slot>
|
||||||
|
</Foo>
|
@ -0,0 +1,18 @@
|
|||||||
|
// $$props reactivity in slot fallback
|
||||||
|
export default {
|
||||||
|
html: `
|
||||||
|
<input>
|
||||||
|
{"value":""}
|
||||||
|
`,
|
||||||
|
|
||||||
|
async test({ assert, target, window }) {
|
||||||
|
const input = target.querySelector("input");
|
||||||
|
input.value = "abc";
|
||||||
|
await input.dispatchEvent(new window.Event('input'));
|
||||||
|
|
||||||
|
assert.htmlEqual(target.innerHTML, `
|
||||||
|
<input>
|
||||||
|
{"value":"abc"}
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,8 @@
|
|||||||
|
<script>
|
||||||
|
import Inner from "./Inner.svelte";
|
||||||
|
let value = '';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<input bind:value />
|
||||||
|
|
||||||
|
<Inner {value} />
|
Loading…
Reference in new issue