mirror of https://github.com/sveltejs/svelte
reuse unchanged spread levels - fixes #3289
parent
17beaa0a5d
commit
b33d600d4e
@ -0,0 +1,21 @@
|
|||||||
|
<script>
|
||||||
|
import { beforeUpdate } from 'svelte';
|
||||||
|
|
||||||
|
export let a, b, c;
|
||||||
|
|
||||||
|
let changed = {};
|
||||||
|
let previous = {};
|
||||||
|
|
||||||
|
beforeUpdate(() => {
|
||||||
|
changed.a = a !== previous.a;
|
||||||
|
changed.b = b !== previous.b;
|
||||||
|
changed.c = c !== previous.c;
|
||||||
|
|
||||||
|
previous.a = a;
|
||||||
|
previous.b = b;
|
||||||
|
previous.c = c;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre>{JSON.stringify({ a, b, c })}</pre>
|
||||||
|
<pre>{JSON.stringify(changed)}</pre>
|
@ -0,0 +1,20 @@
|
|||||||
|
export default {
|
||||||
|
html: `
|
||||||
|
<pre>{"a":1,"b":[1],"c":42}</pre>
|
||||||
|
<pre>{"a":false,"b":false,"c":false}</pre>
|
||||||
|
`,
|
||||||
|
|
||||||
|
ssrHtml: `
|
||||||
|
<pre>{"a":1,"b":[1],"c":42}</pre>
|
||||||
|
<pre>{}</pre>
|
||||||
|
`,
|
||||||
|
|
||||||
|
test({ assert, component, target }) {
|
||||||
|
component.a = 2;
|
||||||
|
|
||||||
|
assert.htmlEqual(target.innerHTML, `
|
||||||
|
<pre>{"a":2,"b":[1],"c":42}</pre>
|
||||||
|
<pre>{"a":true,"b":false,"c":false}</pre>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,8 @@
|
|||||||
|
<script>
|
||||||
|
import Nested from './Nested.svelte';
|
||||||
|
|
||||||
|
export let a = 1;
|
||||||
|
let x = {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Nested {...x} {a} b={[1]} c={42}/>
|
Loading…
Reference in new issue