fix $$props reactivity

pull/5375/head
Tan Li Hau 5 years ago
parent 9db8773070
commit e81cce9108

@ -1,9 +1,11 @@
import { Var } from '../../../../interfaces';
import { is_reserved_keyword } from '../../../utils/reserved_keywords';
export default function is_dynamic(variable: Var) {
if (variable) {
if (variable.mutated || variable.reassigned) return true; // dynamic internal state
if (!variable.module && variable.writable && variable.export_name) return true; // writable props
if (is_reserved_keyword(variable.name)) return true;
}
return false;

@ -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…
Cancel
Save