diff --git a/src/compiler/compile/render_dom/Block.ts b/src/compiler/compile/render_dom/Block.ts
index c8fa884721..3b5dd22ded 100644
--- a/src/compiler/compile/render_dom/Block.ts
+++ b/src/compiler/compile/render_dom/Block.ts
@@ -302,9 +302,6 @@ export default class Block {
const ctx = this.maintain_context ? x`#new_ctx` : x`#ctx`;
let dirty: Identifier | ArrayPattern = { type: 'Identifier', name: '#dirty' };
- if (!this.renderer.context_overflow && !this.parent) {
- dirty = { type: 'ArrayPattern', elements: [dirty] };
- }
properties.update = x`function #update(${ctx}, ${dirty}) {
${this.maintain_context && b`#ctx = ${ctx};`}
diff --git a/src/compiler/compile/render_dom/Renderer.ts b/src/compiler/compile/render_dom/Renderer.ts
index 046a90b684..8f0297a731 100644
--- a/src/compiler/compile/render_dom/Renderer.ts
+++ b/src/compiler/compile/render_dom/Renderer.ts
@@ -248,7 +248,7 @@ export default class Renderer {
.reduce((lhs, rhs) => x`${lhs} | ${rhs}`);
}
- return x`${dirty} & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression;
+ return x`${dirty}[0] & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression;
}
} as any;
}
diff --git a/test/js/samples/action-custom-event-handler/expected.js b/test/js/samples/action-custom-event-handler/expected.js
index 6c3a2a5b0b..1d41829707 100644
--- a/test/js/samples/action-custom-event-handler/expected.js
+++ b/test/js/samples/action-custom-event-handler/expected.js
@@ -23,8 +23,8 @@ function create_fragment(ctx) {
insert(target, button, anchor);
foo_action = foo.call(null, button, /*foo_function*/ ctx[1]) || ({});
},
- p(ctx, [dirty]) {
- if (is_function(foo_action.update) && dirty & /*bar*/ 1) foo_action.update.call(null, /*foo_function*/ ctx[1]);
+ p(ctx, dirty) {
+ if (is_function(foo_action.update) && dirty[0] & /*bar*/ 1) foo_action.update.call(null, /*foo_function*/ ctx[1]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/bind-open/expected.js b/test/js/samples/bind-open/expected.js
index d4f148cac9..a54fc9c406 100644
--- a/test/js/samples/bind-open/expected.js
+++ b/test/js/samples/bind-open/expected.js
@@ -27,8 +27,8 @@ function create_fragment(ctx) {
insert(target, details, anchor);
details.open = /*open*/ ctx[0];
},
- p(ctx, [dirty]) {
- if (dirty & /*open*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*open*/ 1) {
details.open = /*open*/ ctx[0];
}
},
diff --git a/test/js/samples/capture-inject-dev-only/expected.js b/test/js/samples/capture-inject-dev-only/expected.js
index 6c639d9207..87a708c5e1 100644
--- a/test/js/samples/capture-inject-dev-only/expected.js
+++ b/test/js/samples/capture-inject-dev-only/expected.js
@@ -37,10 +37,10 @@ function create_fragment(ctx) {
insert(target, input, anchor);
set_input_value(input, /*foo*/ ctx[0]);
},
- p(ctx, [dirty]) {
- if (dirty & /*foo*/ 1) set_data(t0, /*foo*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*foo*/ 1) set_data(t0, /*foo*/ ctx[0]);
- if (dirty & /*foo*/ 1 && input.value !== /*foo*/ ctx[0]) {
+ if (dirty[0] & /*foo*/ 1 && input.value !== /*foo*/ ctx[0]) {
set_input_value(input, /*foo*/ ctx[0]);
}
},
diff --git a/test/js/samples/collapses-text-around-comments/expected.js b/test/js/samples/collapses-text-around-comments/expected.js
index 6fef0f9490..f9402994a9 100644
--- a/test/js/samples/collapses-text-around-comments/expected.js
+++ b/test/js/samples/collapses-text-around-comments/expected.js
@@ -34,8 +34,8 @@ function create_fragment(ctx) {
insert(target, p, anchor);
append(p, t);
},
- p(ctx, [dirty]) {
- if (dirty & /*foo*/ 1) set_data(t, /*foo*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*foo*/ 1) set_data(t, /*foo*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/component-static-var/expected.js b/test/js/samples/component-static-var/expected.js
index e01402b6d4..1f3cd93c3e 100644
--- a/test/js/samples/component-static-var/expected.js
+++ b/test/js/samples/component-static-var/expected.js
@@ -46,12 +46,12 @@ function create_fragment(ctx) {
set_input_value(input, /*z*/ ctx[0]);
current = true;
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
const bar_changes = {};
- if (dirty & /*z*/ 1) bar_changes.x = /*z*/ ctx[0];
+ if (dirty[0] & /*z*/ 1) bar_changes.x = /*z*/ ctx[0];
bar.$set(bar_changes);
- if (dirty & /*z*/ 1 && input.value !== /*z*/ ctx[0]) {
+ if (dirty[0] & /*z*/ 1 && input.value !== /*z*/ ctx[0]) {
set_input_value(input, /*z*/ ctx[0]);
}
},
diff --git a/test/js/samples/component-store-access-invalidate/expected.js b/test/js/samples/component-store-access-invalidate/expected.js
index 151bd6ed0e..e913b5ff09 100644
--- a/test/js/samples/component-store-access-invalidate/expected.js
+++ b/test/js/samples/component-store-access-invalidate/expected.js
@@ -28,8 +28,8 @@ function create_fragment(ctx) {
insert(target, h1, anchor);
append(h1, t);
},
- p(ctx, [dirty]) {
- if (dirty & /*$foo*/ 1) set_data(t, /*$foo*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*$foo*/ 1) set_data(t, /*$foo*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/component-store-reassign-invalidate/expected.js b/test/js/samples/component-store-reassign-invalidate/expected.js
index 02a74cf22e..3ce37988e2 100644
--- a/test/js/samples/component-store-reassign-invalidate/expected.js
+++ b/test/js/samples/component-store-reassign-invalidate/expected.js
@@ -39,8 +39,8 @@ function create_fragment(ctx) {
insert(target, t1, anchor);
insert(target, button, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*$foo*/ 2) set_data(t0, /*$foo*/ ctx[1]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*$foo*/ 2) set_data(t0, /*$foo*/ ctx[1]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/data-attribute/expected.js b/test/js/samples/data-attribute/expected.js
index 49ad2f2626..1fbc9616fc 100644
--- a/test/js/samples/data-attribute/expected.js
+++ b/test/js/samples/data-attribute/expected.js
@@ -29,8 +29,8 @@ function create_fragment(ctx) {
insert(target, t, anchor);
insert(target, div1, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*bar*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*bar*/ 1) {
attr(div1, "data-foo", /*bar*/ ctx[0]);
}
},
diff --git a/test/js/samples/debug-empty/expected.js b/test/js/samples/debug-empty/expected.js
index 5821faadf1..00934982dc 100644
--- a/test/js/samples/debug-empty/expected.js
+++ b/test/js/samples/debug-empty/expected.js
@@ -44,8 +44,8 @@ function create_fragment(ctx) {
append_dev(h1, t2);
insert_dev(target, t3, anchor);
},
- p: function update(ctx, [dirty]) {
- if (dirty & /*name*/ 1) set_data_dev(t1, /*name*/ ctx[0]);
+ p: function update(ctx, dirty) {
+ if (dirty[0] & /*name*/ 1) set_data_dev(t1, /*name*/ ctx[0]);
debugger;
},
i: noop,
diff --git a/test/js/samples/debug-foo-bar-baz-things/expected.js b/test/js/samples/debug-foo-bar-baz-things/expected.js
index a1d6dba3b3..c74407a073 100644
--- a/test/js/samples/debug-foo-bar-baz-things/expected.js
+++ b/test/js/samples/debug-foo-bar-baz-things/expected.js
@@ -54,9 +54,9 @@ function create_each_block(ctx) {
insert_dev(target, t1, anchor);
},
p: function update(ctx, dirty) {
- if (dirty & /*things*/ 1 && t0_value !== (t0_value = /*thing*/ ctx[4].name + "")) set_data_dev(t0, t0_value);
+ if (dirty[0] & /*things*/ 1 && t0_value !== (t0_value = /*thing*/ ctx[4].name + "")) set_data_dev(t0, t0_value);
- if (dirty & /*foo, bar, baz, things*/ 15) {
+ if (dirty[0] & /*foo, bar, baz, things*/ 15) {
const foo = /*foo*/ ctx[1];
const bar = /*bar*/ ctx[2];
const baz = /*baz*/ ctx[3];
@@ -119,8 +119,8 @@ function create_fragment(ctx) {
append_dev(p, t1);
append_dev(p, t2);
},
- p: function update(ctx, [dirty]) {
- if (dirty & /*things*/ 1) {
+ p: function update(ctx, dirty) {
+ if (dirty[0] & /*things*/ 1) {
each_value = /*things*/ ctx[0];
let i;
@@ -143,7 +143,7 @@ function create_fragment(ctx) {
each_blocks.length = each_value.length;
}
- if (dirty & /*foo*/ 2) set_data_dev(t2, /*foo*/ ctx[1]);
+ if (dirty[0] & /*foo*/ 2) set_data_dev(t2, /*foo*/ ctx[1]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/debug-foo/expected.js b/test/js/samples/debug-foo/expected.js
index af79667cc2..030d15a884 100644
--- a/test/js/samples/debug-foo/expected.js
+++ b/test/js/samples/debug-foo/expected.js
@@ -51,9 +51,9 @@ function create_each_block(ctx) {
insert_dev(target, t1, anchor);
},
p: function update(ctx, dirty) {
- if (dirty & /*things*/ 1 && t0_value !== (t0_value = /*thing*/ ctx[2].name + "")) set_data_dev(t0, t0_value);
+ if (dirty[0] & /*things*/ 1 && t0_value !== (t0_value = /*thing*/ ctx[2].name + "")) set_data_dev(t0, t0_value);
- if (dirty & /*foo*/ 2) {
+ if (dirty[0] & /*foo*/ 2) {
const foo = /*foo*/ ctx[1];
console.log({ foo });
debugger;
@@ -113,8 +113,8 @@ function create_fragment(ctx) {
append_dev(p, t1);
append_dev(p, t2);
},
- p: function update(ctx, [dirty]) {
- if (dirty & /*things*/ 1) {
+ p: function update(ctx, dirty) {
+ if (dirty[0] & /*things*/ 1) {
each_value = /*things*/ ctx[0];
let i;
@@ -137,7 +137,7 @@ function create_fragment(ctx) {
each_blocks.length = each_value.length;
}
- if (dirty & /*foo*/ 2) set_data_dev(t2, /*foo*/ ctx[1]);
+ if (dirty[0] & /*foo*/ 2) set_data_dev(t2, /*foo*/ ctx[1]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/debug-hoisted/expected.js b/test/js/samples/debug-hoisted/expected.js
index eeb9465499..1b12f5a5ce 100644
--- a/test/js/samples/debug-hoisted/expected.js
+++ b/test/js/samples/debug-hoisted/expected.js
@@ -23,8 +23,8 @@ function create_fragment(ctx) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
},
m: noop,
- p: function update(ctx, [dirty]) {
- if (dirty & /*obj, kobzol*/ 3) {
+ p: function update(ctx, dirty) {
+ if (dirty[0] & /*obj, kobzol*/ 3) {
const obj = /*obj*/ ctx[0];
const kobzol = /*kobzol*/ ctx[1];
console.log({ obj, kobzol });
diff --git a/test/js/samples/debug-no-dependencies/expected.js b/test/js/samples/debug-no-dependencies/expected.js
index 054dda7953..f10dda2f46 100644
--- a/test/js/samples/debug-no-dependencies/expected.js
+++ b/test/js/samples/debug-no-dependencies/expected.js
@@ -88,7 +88,7 @@ function create_fragment(ctx) {
insert_dev(target, each_1_anchor, anchor);
},
- p: function update(ctx, [dirty]) {
+ p: function update(ctx, dirty) {
if (dirty & /*things*/ 0) {
each_value = things;
let i;
diff --git a/test/js/samples/deconflict-builtins/expected.js b/test/js/samples/deconflict-builtins/expected.js
index fb98844ef7..1931024c9c 100644
--- a/test/js/samples/deconflict-builtins/expected.js
+++ b/test/js/samples/deconflict-builtins/expected.js
@@ -36,7 +36,7 @@ function create_each_block(ctx) {
append(span, t);
},
p(ctx, dirty) {
- if (dirty & /*createElement*/ 1 && t_value !== (t_value = /*node*/ ctx[1] + "")) set_data(t, t_value);
+ if (dirty[0] & /*createElement*/ 1 && t_value !== (t_value = /*node*/ ctx[1] + "")) set_data(t, t_value);
},
d(detaching) {
if (detaching) detach(span);
@@ -68,8 +68,8 @@ function create_fragment(ctx) {
insert(target, each_1_anchor, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*createElement*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*createElement*/ 1) {
each_value = /*createElement*/ ctx[0];
let i;
diff --git a/test/js/samples/dev-warning-missing-data-computed/expected.js b/test/js/samples/dev-warning-missing-data-computed/expected.js
index beb794a50c..e8e75a4b1a 100644
--- a/test/js/samples/dev-warning-missing-data-computed/expected.js
+++ b/test/js/samples/dev-warning-missing-data-computed/expected.js
@@ -41,9 +41,9 @@ function create_fragment(ctx) {
append_dev(p, t1);
append_dev(p, t2);
},
- p: function update(ctx, [dirty]) {
- if (dirty & /*foo*/ 1 && t0_value !== (t0_value = Math.max(0, /*foo*/ ctx[0]) + "")) set_data_dev(t0, t0_value);
- if (dirty & /*bar*/ 2) set_data_dev(t2, /*bar*/ ctx[1]);
+ p: function update(ctx, dirty) {
+ if (dirty[0] & /*foo*/ 1 && t0_value !== (t0_value = Math.max(0, /*foo*/ ctx[0]) + "")) set_data_dev(t0, t0_value);
+ if (dirty[0] & /*bar*/ 2) set_data_dev(t2, /*bar*/ ctx[1]);
},
i: noop,
o: noop,
@@ -86,7 +86,7 @@ function instance($$self, $$props, $$invalidate) {
};
$$self.$$.update = () => {
- if ($$self.$$.dirty & /*foo*/ 1) {
+ if ($$self.$$.dirty[0] & /*foo*/ 1) {
$: $$invalidate(1, bar = foo * 2);
}
};
diff --git a/test/js/samples/each-block-array-literal/expected.js b/test/js/samples/each-block-array-literal/expected.js
index 10d835cf78..1685fdf709 100644
--- a/test/js/samples/each-block-array-literal/expected.js
+++ b/test/js/samples/each-block-array-literal/expected.js
@@ -36,7 +36,7 @@ function create_each_block(ctx) {
append(span, t);
},
p(ctx, dirty) {
- if (dirty & /*a, b, c, d, e*/ 31 && t_value !== (t_value = /*num*/ ctx[5] + "")) set_data(t, t_value);
+ if (dirty[0] & /*a, b, c, d, e*/ 31 && t_value !== (t_value = /*num*/ ctx[5] + "")) set_data(t, t_value);
},
d(detaching) {
if (detaching) detach(span);
@@ -68,8 +68,8 @@ function create_fragment(ctx) {
insert(target, each_1_anchor, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*a, b, c, d, e*/ 31) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*a, b, c, d, e*/ 31) {
each_value = [/*a*/ ctx[0], /*b*/ ctx[1], /*c*/ ctx[2], /*d*/ ctx[3], /*e*/ ctx[4]];
let i;
diff --git a/test/js/samples/each-block-changed-check/expected.js b/test/js/samples/each-block-changed-check/expected.js
index 5d88032b87..af5fe2c5f7 100644
--- a/test/js/samples/each-block-changed-check/expected.js
+++ b/test/js/samples/each-block-changed-check/expected.js
@@ -70,9 +70,9 @@ function create_each_block(ctx) {
html_tag.m(div);
},
p(ctx, dirty) {
- if (dirty & /*comments*/ 1 && t2_value !== (t2_value = /*comment*/ ctx[4].author + "")) set_data(t2, t2_value);
- if (dirty & /*elapsed, comments, time*/ 7 && t4_value !== (t4_value = /*elapsed*/ ctx[1](/*comment*/ ctx[4].time, /*time*/ ctx[2]) + "")) set_data(t4, t4_value);
- if (dirty & /*comments*/ 1 && raw_value !== (raw_value = /*comment*/ ctx[4].html + "")) html_tag.p(raw_value);
+ if (dirty[0] & /*comments*/ 1 && t2_value !== (t2_value = /*comment*/ ctx[4].author + "")) set_data(t2, t2_value);
+ if (dirty[0] & /*elapsed, comments, time*/ 7 && t4_value !== (t4_value = /*elapsed*/ ctx[1](/*comment*/ ctx[4].time, /*time*/ ctx[2]) + "")) set_data(t4, t4_value);
+ if (dirty[0] & /*comments*/ 1 && raw_value !== (raw_value = /*comment*/ ctx[4].html + "")) html_tag.p(raw_value);
},
d(detaching) {
if (detaching) detach(div);
@@ -110,8 +110,8 @@ function create_fragment(ctx) {
insert(target, p, anchor);
append(p, t1);
},
- p(ctx, [dirty]) {
- if (dirty & /*comments, elapsed, time*/ 7) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*comments, elapsed, time*/ 7) {
each_value = /*comments*/ ctx[0];
let i;
@@ -134,7 +134,7 @@ function create_fragment(ctx) {
each_blocks.length = each_value.length;
}
- if (dirty & /*foo*/ 8) set_data(t1, /*foo*/ ctx[3]);
+ if (dirty[0] & /*foo*/ 8) set_data(t1, /*foo*/ ctx[3]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/each-block-keyed-animated/expected.js b/test/js/samples/each-block-keyed-animated/expected.js
index 3b697d6860..a572ffdf00 100644
--- a/test/js/samples/each-block-keyed-animated/expected.js
+++ b/test/js/samples/each-block-keyed-animated/expected.js
@@ -44,7 +44,7 @@ function create_each_block(key_1, ctx) {
append(div, t);
},
p(ctx, dirty) {
- if (dirty & /*things*/ 1 && t_value !== (t_value = /*thing*/ ctx[1].name + "")) set_data(t, t_value);
+ if (dirty[0] & /*things*/ 1 && t_value !== (t_value = /*thing*/ ctx[1].name + "")) set_data(t, t_value);
},
r() {
rect = div.getBoundingClientRect();
@@ -91,7 +91,7 @@ function create_fragment(ctx) {
insert(target, each_1_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
const each_value = /*things*/ ctx[0];
for (let i = 0; i < each_blocks.length; i += 1) each_blocks[i].r();
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, fix_and_destroy_block, create_each_block, each_1_anchor, get_each_context);
diff --git a/test/js/samples/each-block-keyed/expected.js b/test/js/samples/each-block-keyed/expected.js
index 1cd9a31ece..66c38027d7 100644
--- a/test/js/samples/each-block-keyed/expected.js
+++ b/test/js/samples/each-block-keyed/expected.js
@@ -40,7 +40,7 @@ function create_each_block(key_1, ctx) {
append(div, t);
},
p(ctx, dirty) {
- if (dirty & /*things*/ 1 && t_value !== (t_value = /*thing*/ ctx[1].name + "")) set_data(t, t_value);
+ if (dirty[0] & /*things*/ 1 && t_value !== (t_value = /*thing*/ ctx[1].name + "")) set_data(t, t_value);
},
d(detaching) {
if (detaching) detach(div);
@@ -76,7 +76,7 @@ function create_fragment(ctx) {
insert(target, each_1_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
const each_value = /*things*/ ctx[0];
each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, destroy_block, create_each_block, each_1_anchor, get_each_context);
},
diff --git a/test/js/samples/event-handler-dynamic/expected.js b/test/js/samples/event-handler-dynamic/expected.js
index 34c33151bf..380bcd14e4 100644
--- a/test/js/samples/event-handler-dynamic/expected.js
+++ b/test/js/samples/event-handler-dynamic/expected.js
@@ -61,9 +61,9 @@ function create_fragment(ctx) {
insert(target, t5, anchor);
insert(target, button2, anchor);
},
- p(new_ctx, [dirty]) {
+ p(new_ctx, dirty) {
ctx = new_ctx;
- if (dirty & /*number*/ 2) set_data(t4, /*number*/ ctx[1]);
+ if (dirty[0] & /*number*/ 2) set_data(t4, /*number*/ ctx[1]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/if-block-no-update/expected.js b/test/js/samples/if-block-no-update/expected.js
index f225c221bf..17bdfaaef3 100644
--- a/test/js/samples/if-block-no-update/expected.js
+++ b/test/js/samples/if-block-no-update/expected.js
@@ -65,7 +65,7 @@ function create_fragment(ctx) {
if_block.m(target, anchor);
insert(target, if_block_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
if (current_block_type !== (current_block_type = select_block_type(ctx, dirty))) {
if_block.d(1);
if_block = current_block_type(ctx);
diff --git a/test/js/samples/if-block-simple/expected.js b/test/js/samples/if-block-simple/expected.js
index b9fad863e2..779dfbf8f2 100644
--- a/test/js/samples/if-block-simple/expected.js
+++ b/test/js/samples/if-block-simple/expected.js
@@ -40,7 +40,7 @@ function create_fragment(ctx) {
if (if_block) if_block.m(target, anchor);
insert(target, if_block_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
if (/*foo*/ ctx[0]) {
if (!if_block) {
if_block = create_if_block(ctx);
diff --git a/test/js/samples/inline-style-optimized-multiple/expected.js b/test/js/samples/inline-style-optimized-multiple/expected.js
index 84a38abd7b..8782fa841f 100644
--- a/test/js/samples/inline-style-optimized-multiple/expected.js
+++ b/test/js/samples/inline-style-optimized-multiple/expected.js
@@ -22,12 +22,12 @@ function create_fragment(ctx) {
m(target, anchor) {
insert(target, div, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*color*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*color*/ 1) {
set_style(div, "color", /*color*/ ctx[0]);
}
- if (dirty & /*x, y*/ 6) {
+ if (dirty[0] & /*x, y*/ 6) {
set_style(div, "transform", "translate(" + /*x*/ ctx[1] + "px," + /*y*/ ctx[2] + "px)");
}
},
diff --git a/test/js/samples/inline-style-optimized-url/expected.js b/test/js/samples/inline-style-optimized-url/expected.js
index 77870348a5..a3f4d0c061 100644
--- a/test/js/samples/inline-style-optimized-url/expected.js
+++ b/test/js/samples/inline-style-optimized-url/expected.js
@@ -21,8 +21,8 @@ function create_fragment(ctx) {
m(target, anchor) {
insert(target, div, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*data*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*data*/ 1) {
set_style(div, "background", "url(data:image/png;base64," + /*data*/ ctx[0] + ")");
}
},
diff --git a/test/js/samples/inline-style-optimized/expected.js b/test/js/samples/inline-style-optimized/expected.js
index 5bef284f09..44cea48c6b 100644
--- a/test/js/samples/inline-style-optimized/expected.js
+++ b/test/js/samples/inline-style-optimized/expected.js
@@ -21,8 +21,8 @@ function create_fragment(ctx) {
m(target, anchor) {
insert(target, div, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*color*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*color*/ 1) {
set_style(div, "color", /*color*/ ctx[0]);
}
},
diff --git a/test/js/samples/inline-style-unoptimized/expected.js b/test/js/samples/inline-style-unoptimized/expected.js
index fdff685ead..90aaf6c801 100644
--- a/test/js/samples/inline-style-unoptimized/expected.js
+++ b/test/js/samples/inline-style-unoptimized/expected.js
@@ -30,12 +30,12 @@ function create_fragment(ctx) {
insert(target, t, anchor);
insert(target, div1, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*style*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*style*/ 1) {
attr(div0, "style", /*style*/ ctx[0]);
}
- if (dirty & /*key, value*/ 6 && div1_style_value !== (div1_style_value = "" + (/*key*/ ctx[1] + ": " + /*value*/ ctx[2]))) {
+ if (dirty[0] & /*key, value*/ 6 && div1_style_value !== (div1_style_value = "" + (/*key*/ ctx[1] + ": " + /*value*/ ctx[2]))) {
attr(div1, "style", div1_style_value);
}
},
diff --git a/test/js/samples/input-no-initial-value/expected.js b/test/js/samples/input-no-initial-value/expected.js
index 8ff2b2798b..bd46faa0f8 100644
--- a/test/js/samples/input-no-initial-value/expected.js
+++ b/test/js/samples/input-no-initial-value/expected.js
@@ -44,8 +44,8 @@ function create_fragment(ctx) {
append(form, t0);
append(form, button);
},
- p(ctx, [dirty]) {
- if (dirty & /*test*/ 1 && input.value !== /*test*/ ctx[0]) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*test*/ 1 && input.value !== /*test*/ ctx[0]) {
set_input_value(input, /*test*/ ctx[0]);
}
},
diff --git a/test/js/samples/input-range/expected.js b/test/js/samples/input-range/expected.js
index 5a074d9754..9274328330 100644
--- a/test/js/samples/input-range/expected.js
+++ b/test/js/samples/input-range/expected.js
@@ -32,8 +32,8 @@ function create_fragment(ctx) {
insert(target, input, anchor);
set_input_value(input, /*value*/ ctx[0]);
},
- p(ctx, [dirty]) {
- if (dirty & /*value*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*value*/ 1) {
set_input_value(input, /*value*/ ctx[0]);
}
},
diff --git a/test/js/samples/input-without-blowback-guard/expected.js b/test/js/samples/input-without-blowback-guard/expected.js
index 344976ade6..05a1831a3e 100644
--- a/test/js/samples/input-without-blowback-guard/expected.js
+++ b/test/js/samples/input-without-blowback-guard/expected.js
@@ -25,8 +25,8 @@ function create_fragment(ctx) {
insert(target, input, anchor);
input.checked = /*foo*/ ctx[0];
},
- p(ctx, [dirty]) {
- if (dirty & /*foo*/ 1) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*foo*/ 1) {
input.checked = /*foo*/ ctx[0];
}
},
diff --git a/test/js/samples/instrumentation-script-if-no-block/expected.js b/test/js/samples/instrumentation-script-if-no-block/expected.js
index 4127a6d7d6..0cfbe7c339 100644
--- a/test/js/samples/instrumentation-script-if-no-block/expected.js
+++ b/test/js/samples/instrumentation-script-if-no-block/expected.js
@@ -39,8 +39,8 @@ function create_fragment(ctx) {
append(p, t2);
append(p, t3);
},
- p(ctx, [dirty]) {
- if (dirty & /*x*/ 1) set_data(t3, /*x*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*x*/ 1) set_data(t3, /*x*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/instrumentation-script-main-block/expected.js b/test/js/samples/instrumentation-script-main-block/expected.js
index bc80924602..35650e8134 100644
--- a/test/js/samples/instrumentation-script-main-block/expected.js
+++ b/test/js/samples/instrumentation-script-main-block/expected.js
@@ -28,8 +28,8 @@ function create_fragment(ctx) {
append(p, t0);
append(p, t1);
},
- p(ctx, [dirty]) {
- if (dirty & /*x*/ 1) set_data(t1, /*x*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*x*/ 1) set_data(t1, /*x*/ ctx[0]);
},
i: noop,
o: noop,
@@ -57,7 +57,7 @@ function instance($$self, $$props, $$invalidate) {
);
$$self.$$.update = () => {
- if ($$self.$$.dirty & /*x, y*/ 3) {
+ if ($$self.$$.dirty[0] & /*x, y*/ 3) {
$: $$invalidate(0, x += y);
}
};
diff --git a/test/js/samples/instrumentation-script-x-equals-x/expected.js b/test/js/samples/instrumentation-script-x-equals-x/expected.js
index 0d4493baf3..be84844254 100644
--- a/test/js/samples/instrumentation-script-x-equals-x/expected.js
+++ b/test/js/samples/instrumentation-script-x-equals-x/expected.js
@@ -40,8 +40,8 @@ function create_fragment(ctx) {
append(p, t2);
append(p, t3);
},
- p(ctx, [dirty]) {
- if (dirty & /*things*/ 1 && t3_value !== (t3_value = /*things*/ ctx[0].length + "")) set_data(t3, t3_value);
+ p(ctx, dirty) {
+ if (dirty[0] & /*things*/ 1 && t3_value !== (t3_value = /*things*/ ctx[0].length + "")) set_data(t3, t3_value);
},
i: noop,
o: noop,
diff --git a/test/js/samples/instrumentation-template-if-no-block/expected.js b/test/js/samples/instrumentation-template-if-no-block/expected.js
index 0bd627eb87..4abbe0300e 100644
--- a/test/js/samples/instrumentation-template-if-no-block/expected.js
+++ b/test/js/samples/instrumentation-template-if-no-block/expected.js
@@ -39,8 +39,8 @@ function create_fragment(ctx) {
append(p, t2);
append(p, t3);
},
- p(ctx, [dirty]) {
- if (dirty & /*x*/ 1) set_data(t3, /*x*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*x*/ 1) set_data(t3, /*x*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/instrumentation-template-x-equals-x/expected.js b/test/js/samples/instrumentation-template-x-equals-x/expected.js
index e049a6d39b..22ea219233 100644
--- a/test/js/samples/instrumentation-template-x-equals-x/expected.js
+++ b/test/js/samples/instrumentation-template-x-equals-x/expected.js
@@ -40,8 +40,8 @@ function create_fragment(ctx) {
append(p, t2);
append(p, t3);
},
- p(ctx, [dirty]) {
- if (dirty & /*things*/ 1 && t3_value !== (t3_value = /*things*/ ctx[0].length + "")) set_data(t3, t3_value);
+ p(ctx, dirty) {
+ if (dirty[0] & /*things*/ 1 && t3_value !== (t3_value = /*things*/ ctx[0].length + "")) set_data(t3, t3_value);
},
i: noop,
o: noop,
diff --git a/test/js/samples/media-bindings/expected.js b/test/js/samples/media-bindings/expected.js
index bfb1b8911d..25dde4319f 100644
--- a/test/js/samples/media-bindings/expected.js
+++ b/test/js/samples/media-bindings/expected.js
@@ -67,20 +67,20 @@ function create_fragment(ctx) {
audio.playbackRate = /*playbackRate*/ ctx[7];
}
},
- p(ctx, [dirty]) {
- if (!audio_updating && dirty & /*currentTime*/ 8 && !isNaN(/*currentTime*/ ctx[3])) {
+ p(ctx, dirty) {
+ if (!audio_updating && dirty[0] & /*currentTime*/ 8 && !isNaN(/*currentTime*/ ctx[3])) {
audio.currentTime = /*currentTime*/ ctx[3];
}
- if (dirty & /*paused*/ 32 && audio_is_paused !== (audio_is_paused = /*paused*/ ctx[5])) {
+ if (dirty[0] & /*paused*/ 32 && audio_is_paused !== (audio_is_paused = /*paused*/ ctx[5])) {
audio[audio_is_paused ? "pause" : "play"]();
}
- if (dirty & /*volume*/ 64 && !isNaN(/*volume*/ ctx[6])) {
+ if (dirty[0] & /*volume*/ 64 && !isNaN(/*volume*/ ctx[6])) {
audio.volume = /*volume*/ ctx[6];
}
- if (dirty & /*playbackRate*/ 128 && !isNaN(/*playbackRate*/ ctx[7])) {
+ if (dirty[0] & /*playbackRate*/ 128 && !isNaN(/*playbackRate*/ ctx[7])) {
audio.playbackRate = /*playbackRate*/ ctx[7];
}
diff --git a/test/js/samples/reactive-values-non-topologically-ordered/expected.js b/test/js/samples/reactive-values-non-topologically-ordered/expected.js
index 3d266f10ac..864a252a90 100644
--- a/test/js/samples/reactive-values-non-topologically-ordered/expected.js
+++ b/test/js/samples/reactive-values-non-topologically-ordered/expected.js
@@ -11,11 +11,11 @@ function instance($$self, $$props, $$invalidate) {
};
$$self.$$.update = () => {
- if ($$self.$$.dirty & /*x*/ 1) {
+ if ($$self.$$.dirty[0] & /*x*/ 1) {
$: $$invalidate(2, b = x);
}
- if ($$self.$$.dirty & /*b*/ 4) {
+ if ($$self.$$.dirty[0] & /*b*/ 4) {
$: a = b;
}
};
diff --git a/test/js/samples/reactive-values-non-writable-dependencies/expected.js b/test/js/samples/reactive-values-non-writable-dependencies/expected.js
index 38bd356d85..b3ede8dc80 100644
--- a/test/js/samples/reactive-values-non-writable-dependencies/expected.js
+++ b/test/js/samples/reactive-values-non-writable-dependencies/expected.js
@@ -11,7 +11,7 @@ function instance($$self, $$props, $$invalidate) {
};
$$self.$$.update = () => {
- if ($$self.$$.dirty & /*a, b*/ 3) {
+ if ($$self.$$.dirty[0] & /*a, b*/ 3) {
$: console.log("max", Math.max(a, b));
}
};
diff --git a/test/js/samples/select-dynamic-value/expected.js b/test/js/samples/select-dynamic-value/expected.js
index a93a47bd3a..9b63c0e75e 100644
--- a/test/js/samples/select-dynamic-value/expected.js
+++ b/test/js/samples/select-dynamic-value/expected.js
@@ -43,8 +43,8 @@ function create_fragment(ctx) {
}
}
},
- p(ctx, [dirty]) {
- if (dirty & /*current*/ 1 && select_value_value !== (select_value_value = /*current*/ ctx[0])) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*current*/ 1 && select_value_value !== (select_value_value = /*current*/ ctx[0])) {
for (var i = 0; i < select.options.length; i += 1) {
var option = select.options[i];
diff --git a/test/js/samples/src-attribute-check/expected.js b/test/js/samples/src-attribute-check/expected.js
index e03b3a6ba7..e4ec12fc04 100644
--- a/test/js/samples/src-attribute-check/expected.js
+++ b/test/js/samples/src-attribute-check/expected.js
@@ -44,12 +44,12 @@ function create_fragment(ctx) {
insert(target, t, anchor);
insert(target, img1, anchor);
},
- p(ctx, [dirty]) {
- if (dirty & /*url*/ 1 && img0.src !== (img0_src_value = /*url*/ ctx[0])) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*url*/ 1 && img0.src !== (img0_src_value = /*url*/ ctx[0])) {
attr(img0, "src", img0_src_value);
}
- if (dirty & /*slug*/ 2 && img1.src !== (img1_src_value = "" + (/*slug*/ ctx[1] + ".jpg"))) {
+ if (dirty[0] & /*slug*/ 2 && img1.src !== (img1_src_value = "" + (/*slug*/ ctx[1] + ".jpg"))) {
attr(img1, "src", img1_src_value);
}
},
diff --git a/test/js/samples/title/expected.js b/test/js/samples/title/expected.js
index d4e7e1a584..d6cac09f22 100644
--- a/test/js/samples/title/expected.js
+++ b/test/js/samples/title/expected.js
@@ -8,8 +8,8 @@ function create_fragment(ctx) {
return {
c: noop,
m: noop,
- p(ctx, [dirty]) {
- if (dirty & /*custom*/ 1 && title_value !== (title_value = "a " + /*custom*/ ctx[0] + " title")) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*custom*/ 1 && title_value !== (title_value = "a " + /*custom*/ ctx[0] + " title")) {
document.title = title_value;
}
},
diff --git a/test/js/samples/transition-local/expected.js b/test/js/samples/transition-local/expected.js
index a5d3b6318f..516a4de408 100644
--- a/test/js/samples/transition-local/expected.js
+++ b/test/js/samples/transition-local/expected.js
@@ -91,7 +91,7 @@ function create_fragment(ctx) {
if (if_block) if_block.m(target, anchor);
insert(target, if_block_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
if (/*x*/ ctx[0]) {
if (if_block) {
if_block.p(ctx, dirty);
diff --git a/test/js/samples/transition-repeated-outro/expected.js b/test/js/samples/transition-repeated-outro/expected.js
index 6f071328a4..e276058399 100644
--- a/test/js/samples/transition-repeated-outro/expected.js
+++ b/test/js/samples/transition-repeated-outro/expected.js
@@ -61,7 +61,7 @@ function create_fragment(ctx) {
insert(target, if_block_anchor, anchor);
current = true;
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
if (/*num*/ ctx[0] < 5) {
if (!if_block) {
if_block = create_if_block(ctx);
diff --git a/test/js/samples/unchanged-expression/expected.js b/test/js/samples/unchanged-expression/expected.js
index 673d5b6abc..bf40d74b5b 100644
--- a/test/js/samples/unchanged-expression/expected.js
+++ b/test/js/samples/unchanged-expression/expected.js
@@ -56,8 +56,8 @@ function create_fragment(ctx) {
append(p3, t8);
append(p3, t9);
},
- p(ctx, [dirty]) {
- if (dirty & /*world3*/ 1) set_data(t9, /*world3*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*world3*/ 1) set_data(t9, /*world3*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/js/samples/unreferenced-state-not-invalidated/expected.js b/test/js/samples/unreferenced-state-not-invalidated/expected.js
index b10ea815b9..52e45725cf 100644
--- a/test/js/samples/unreferenced-state-not-invalidated/expected.js
+++ b/test/js/samples/unreferenced-state-not-invalidated/expected.js
@@ -27,8 +27,8 @@ function create_fragment(ctx) {
insert(target, p, anchor);
append(p, t);
},
- p(ctx, [dirty]) {
- if (dirty & /*y*/ 1) set_data(t, /*y*/ ctx[0]);
+ p(ctx, dirty) {
+ if (dirty[0] & /*y*/ 1) set_data(t, /*y*/ ctx[0]);
},
i: noop,
o: noop,
@@ -58,7 +58,7 @@ function instance($$self, $$props, $$invalidate) {
let y;
$$self.$$.update = () => {
- if ($$self.$$.dirty & /*b*/ 2) {
+ if ($$self.$$.dirty[0] & /*b*/ 2) {
$: $$invalidate(0, y = b * 2);
}
};
diff --git a/test/js/samples/use-elements-as-anchors/expected.js b/test/js/samples/use-elements-as-anchors/expected.js
index 52635e9b78..62bb6ed7d8 100644
--- a/test/js/samples/use-elements-as-anchors/expected.js
+++ b/test/js/samples/use-elements-as-anchors/expected.js
@@ -155,7 +155,7 @@ function create_fragment(ctx) {
if (if_block4) if_block4.m(target, anchor);
insert(target, if_block4_anchor, anchor);
},
- p(ctx, [dirty]) {
+ p(ctx, dirty) {
if (/*a*/ ctx[0]) {
if (!if_block0) {
if_block0 = create_if_block_4(ctx);
diff --git a/test/js/samples/video-bindings/expected.js b/test/js/samples/video-bindings/expected.js
index e3d48f9922..9aa2a2c5a6 100644
--- a/test/js/samples/video-bindings/expected.js
+++ b/test/js/samples/video-bindings/expected.js
@@ -47,8 +47,8 @@ function create_fragment(ctx) {
insert(target, video, anchor);
video_resize_listener = add_resize_listener(video, /*video_elementresize_handler*/ ctx[4].bind(video));
},
- p(ctx, [dirty]) {
- if (!video_updating && dirty & /*currentTime*/ 1 && !isNaN(/*currentTime*/ ctx[0])) {
+ p(ctx, dirty) {
+ if (!video_updating && dirty[0] & /*currentTime*/ 1 && !isNaN(/*currentTime*/ ctx[0])) {
video.currentTime = /*currentTime*/ ctx[0];
}
diff --git a/test/js/samples/window-binding-scroll/expected.js b/test/js/samples/window-binding-scroll/expected.js
index f79212e25e..640b19eba8 100644
--- a/test/js/samples/window-binding-scroll/expected.js
+++ b/test/js/samples/window-binding-scroll/expected.js
@@ -46,15 +46,15 @@ function create_fragment(ctx) {
append(p, t0);
append(p, t1);
},
- p(ctx, [dirty]) {
- if (dirty & /*y*/ 1 && !scrolling) {
+ p(ctx, dirty) {
+ if (dirty[0] & /*y*/ 1 && !scrolling) {
scrolling = true;
clearTimeout(scrolling_timeout);
scrollTo(window.pageXOffset, /*y*/ ctx[0]);
scrolling_timeout = setTimeout(clear_scrolling, 100);
}
- if (dirty & /*y*/ 1) set_data(t1, /*y*/ ctx[0]);
+ if (dirty[0] & /*y*/ 1) set_data(t1, /*y*/ ctx[0]);
},
i: noop,
o: noop,
diff --git a/test/runtime/samples/store-auto-subscribe-event-callback/_config.js b/test/runtime/samples/store-auto-subscribe-event-callback/_config.js
new file mode 100644
index 0000000000..081e9d9593
--- /dev/null
+++ b/test/runtime/samples/store-auto-subscribe-event-callback/_config.js
@@ -0,0 +1,22 @@
+export default {
+ html: `
+
+ Dirty: false
+ Valid: false
+ `,
+
+ async test({ assert, component, target, window }) {
+ const input = target.querySelector('input');
+
+ input.value = 'foo';
+ const inputEvent = new window.InputEvent('input');
+
+ await input.dispatchEvent(inputEvent);
+
+ assert.htmlEqual(target.innerHTML, `
+
+ Dirty: true
+ Valid: true
+ `);
+ },
+};
diff --git a/test/runtime/samples/store-auto-subscribe-event-callback/main.svelte b/test/runtime/samples/store-auto-subscribe-event-callback/main.svelte
new file mode 100644
index 0000000000..2a78625e21
--- /dev/null
+++ b/test/runtime/samples/store-auto-subscribe-event-callback/main.svelte
@@ -0,0 +1,29 @@
+
+
+
+
+Dirty: {$validity.dirty}
+Valid: {$validity.valid}