Merge pull request #2066 from sveltejs/gh-2052

only do dirty check for writable values
pull/2073/head
Rich Harris 6 years ago committed by GitHub
commit 52d78fb697
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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