mirror of
https://github.com/sveltejs/svelte.git
synced 2024-11-29 08:32:05 +01:00
only do dirty check for writable values - fixes #2052
This commit is contained in:
parent
cf775486cf
commit
bf16bb89c3
@ -314,7 +314,13 @@ export default function dom(
|
||||
|
||||
if (has_definition) {
|
||||
const reactive_declarations = component.reactive_declarations.map(d => {
|
||||
const condition = Array.from(d.dependencies).map(n => `$$dirty.${n}`).join(' || ');
|
||||
const condition = Array.from(d.dependencies)
|
||||
.filter(n => {
|
||||
const variable = component.var_lookup.get(n);
|
||||
return variable && variable.writable;
|
||||
})
|
||||
.map(n => `$$dirty.${n}`).join(' || ');
|
||||
|
||||
const snippet = d.node.body.type === 'BlockStatement'
|
||||
? `[✂${d.node.body.start}-${d.node.end}✂]`
|
||||
: deindent`
|
||||
|
@ -0,0 +1,40 @@
|
||||
/* generated by Svelte vX.Y.Z */
|
||||
import { SvelteComponent as SvelteComponent_1, init, noop, safe_not_equal } from "svelte/internal";
|
||||
|
||||
function create_fragment(ctx) {
|
||||
return {
|
||||
c: noop,
|
||||
m: noop,
|
||||
p: noop,
|
||||
i: noop,
|
||||
o: noop,
|
||||
d: noop
|
||||
};
|
||||
}
|
||||
|
||||
let a = 1;
|
||||
|
||||
let b = 2;
|
||||
|
||||
function instance($$self, $$props, $$invalidate) {
|
||||
|
||||
|
||||
let max;
|
||||
|
||||
$$self.$$.update = ($$dirty = { max: 1, Math: 1, a: 1, b: 1 }) => {
|
||||
if ($$dirty.max || $$dirty.a || $$dirty.b) {
|
||||
max = Math.max(a, b); $$invalidate('max', max);
|
||||
}
|
||||
};
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
class SvelteComponent extends SvelteComponent_1 {
|
||||
constructor(options) {
|
||||
super();
|
||||
init(this, options, instance, create_fragment, safe_not_equal);
|
||||
}
|
||||
}
|
||||
|
||||
export default SvelteComponent;
|
@ -0,0 +1,7 @@
|
||||
<script>
|
||||
let a = 1;
|
||||
let b = 2;
|
||||
|
||||
let max;
|
||||
$: max = Math.max(a, b);
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user