mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +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) {
|
if (has_definition) {
|
||||||
const reactive_declarations = component.reactive_declarations.map(d => {
|
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'
|
const snippet = d.node.body.type === 'BlockStatement'
|
||||||
? `[✂${d.node.body.start}-${d.node.end}✂]`
|
? `[✂${d.node.body.start}-${d.node.end}✂]`
|
||||||
: deindent`
|
: 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