From d6f1e8c8e5d10fcd80724d75e98386617b715999 Mon Sep 17 00:00:00 2001 From: Vadim K Date: Tue, 12 May 2020 15:26:23 +0600 Subject: [PATCH] fix use-directives called multiple times (#4693) (#1) Co-authored-by: Christian Heine --- src/compiler/compile/render_dom/Block.ts | 4 +-- .../compile/render_dom/wrappers/AwaitBlock.ts | 2 +- .../compile/render_dom/wrappers/EachBlock.ts | 6 ++-- .../compile/render_dom/wrappers/IfBlock.ts | 8 ++--- .../wrappers/InlineComponent/index.ts | 4 +-- src/runtime/internal/Component.ts | 4 +-- test/js/samples/bind-width-height/expected.js | 4 +-- .../samples/capture-inject-state/expected.js | 4 +-- .../expected.js | 4 +-- .../component-static-array/expected.js | 6 ++-- .../component-static-immutable/expected.js | 6 ++-- .../component-static-immutable2/expected.js | 6 ++-- .../samples/component-static-var/expected.js | 6 ++-- test/js/samples/component-static/expected.js | 6 ++-- .../expected.js | 4 +-- test/js/samples/css-media-query/expected.js | 4 +-- .../css-shadow-dom-keyframes/expected.js | 4 +-- test/js/samples/data-attribute/expected.js | 4 +-- test/js/samples/debug-empty/expected.js | 4 +-- .../debug-foo-bar-baz-things/expected.js | 8 ++--- test/js/samples/debug-foo/expected.js | 8 ++--- .../samples/debug-no-dependencies/expected.js | 8 ++--- .../samples/deconflict-builtins/expected.js | 8 ++--- .../expected.js | 4 +-- test/js/samples/dynamic-import/expected.js | 6 ++-- .../each-block-array-literal/expected.js | 8 ++--- .../each-block-changed-check/expected.js | 8 ++--- .../each-block-keyed-animated/expected.js | 8 ++--- test/js/samples/each-block-keyed/expected.js | 8 ++--- .../js/samples/head-no-whitespace/expected.js | 4 +-- test/js/samples/hoisted-const/expected.js | 4 +-- test/js/samples/hoisted-let/expected.js | 4 +-- .../samples/hydrated-void-element/expected.js | 4 +-- test/js/samples/if-block-complex/expected.js | 8 ++--- .../js/samples/if-block-no-update/expected.js | 10 +++--- test/js/samples/if-block-simple/expected.js | 10 +++--- .../expected.js | 4 +-- .../inline-style-optimized-url/expected.js | 4 +-- .../inline-style-optimized/expected.js | 4 +-- .../inline-style-unoptimized/expected.js | 4 +-- .../inline-style-without-updates/expected.js | 4 +-- .../expected.js | 4 +-- test/js/samples/legacy-input-type/expected.js | 4 +-- test/js/samples/loop-protect/expected.js | 4 +-- .../non-imported-component/expected.js | 8 ++--- .../samples/non-mutable-reference/expected.js | 4 +-- .../samples/select-dynamic-value/expected.js | 4 +-- .../samples/src-attribute-check/expected.js | 4 +-- test/js/samples/svg-title/expected.js | 4 +-- test/js/samples/transition-local/expected.js | 14 ++++---- .../transition-repeated-outro/expected.js | 8 ++--- .../samples/unchanged-expression/expected.js | 4 +-- .../expected.js | 4 +-- .../use-elements-as-anchors/expected.js | 34 +++++++++---------- .../Component.svelte | 5 +++ .../_config.js | 21 ++++++++++++ .../main.svelte | 17 ++++++++++ 57 files changed, 207 insertions(+), 164 deletions(-) create mode 100644 test/runtime/samples/each-block-keyed-component-action/Component.svelte create mode 100644 test/runtime/samples/each-block-keyed-component-action/_config.js create mode 100644 test/runtime/samples/each-block-keyed-component-action/main.svelte diff --git a/src/compiler/compile/render_dom/Block.ts b/src/compiler/compile/render_dom/Block.ts index b29b4d4afd95..e93ae134acea 100644 --- a/src/compiler/compile/render_dom/Block.ts +++ b/src/compiler/compile/render_dom/Block.ts @@ -295,7 +295,7 @@ export default class Block { if (this.chunks.mount.length === 0) { properties.mount = noop; } else if (this.event_listeners.length === 0) { - properties.mount = x`function #mount(#target, #anchor) { + properties.mount = x`function #mount(#target, #anchor, #remount) { ${this.chunks.mount} }`; } else { @@ -484,4 +484,4 @@ export default class Block { } } } -} \ No newline at end of file +} diff --git a/src/compiler/compile/render_dom/wrappers/AwaitBlock.ts b/src/compiler/compile/render_dom/wrappers/AwaitBlock.ts index 1898a840d23b..b2f2de545927 100644 --- a/src/compiler/compile/render_dom/wrappers/AwaitBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/AwaitBlock.ts @@ -205,7 +205,7 @@ export default class AwaitBlockWrapper extends Wrapper { const has_transitions = this.pending.block.has_intro_method || this.pending.block.has_outro_method; block.chunks.mount.push(b` - ${info}.block.m(${initial_mount_node}, ${info}.anchor = ${anchor_node}); + ${info}.block.m(${initial_mount_node}, ${info}.anchor = ${anchor_node}, #remount); ${info}.mount = () => ${update_mount_node}; ${info}.anchor = ${anchor}; `); diff --git a/src/compiler/compile/render_dom/wrappers/EachBlock.ts b/src/compiler/compile/render_dom/wrappers/EachBlock.ts index 1efadfb90cf2..fb902a034479 100644 --- a/src/compiler/compile/render_dom/wrappers/EachBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/EachBlock.ts @@ -294,7 +294,7 @@ export default class EachBlockWrapper extends Wrapper { block.chunks.mount.push(b` if (${each_block_else}) { - ${each_block_else}.m(${initial_mount_node}, ${initial_anchor_node}); + ${each_block_else}.m(${initial_mount_node}, ${initial_anchor_node}, #remount); } `); @@ -417,7 +417,7 @@ export default class EachBlockWrapper extends Wrapper { block.chunks.mount.push(b` for (let #i = 0; #i < ${view_length}; #i += 1) { - ${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node}); + ${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node}, #remount); } `); @@ -509,7 +509,7 @@ export default class EachBlockWrapper extends Wrapper { block.chunks.mount.push(b` for (let #i = 0; #i < ${view_length}; #i += 1) { - ${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node}); + ${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node}, #remount); } `); diff --git a/src/compiler/compile/render_dom/wrappers/IfBlock.ts b/src/compiler/compile/render_dom/wrappers/IfBlock.ts index e18d9f3b6bc3..48d8ca9d92ef 100644 --- a/src/compiler/compile/render_dom/wrappers/IfBlock.ts +++ b/src/compiler/compile/render_dom/wrappers/IfBlock.ts @@ -297,11 +297,11 @@ export default class IfBlockWrapper extends Wrapper { if (if_exists_condition) { block.chunks.mount.push( - b`if (${if_exists_condition}) ${name}.m(${initial_mount_node}, ${anchor_node});` + b`if (${if_exists_condition}) ${name}.m(${initial_mount_node}, ${anchor_node}, #remount);` ); } else { block.chunks.mount.push( - b`${name}.m(${initial_mount_node}, ${anchor_node});` + b`${name}.m(${initial_mount_node}, ${anchor_node}, #remount);` ); } @@ -427,7 +427,7 @@ export default class IfBlockWrapper extends Wrapper { block.chunks.mount.push( if_current_block_type_index( - b`${if_blocks}[${current_block_type_index}].m(${initial_mount_node}, ${anchor_node});` + b`${if_blocks}[${current_block_type_index}].m(${initial_mount_node}, ${anchor_node}, #remount);` ) ); @@ -522,7 +522,7 @@ export default class IfBlockWrapper extends Wrapper { const anchor_node = parent_node ? 'null' : '#anchor'; block.chunks.mount.push( - b`if (${name}) ${name}.m(${initial_mount_node}, ${anchor_node});` + b`if (${name}) ${name}.m(${initial_mount_node}, ${anchor_node}, #remount);` ); if (branch.dependencies.length > 0) { diff --git a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts index 00f803bbbd48..5bcc77292783 100644 --- a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts +++ b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts @@ -435,7 +435,7 @@ export default class InlineComponentWrapper extends Wrapper { block.chunks.mount.push(b` if (${name}) { - @mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'}); + @mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'}, #remount); } `); @@ -509,7 +509,7 @@ export default class InlineComponentWrapper extends Wrapper { } block.chunks.mount.push( - b`@mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});` + b`@mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'}, #remount);` ); block.chunks.intro.push(b` diff --git a/src/runtime/internal/Component.ts b/src/runtime/internal/Component.ts index 7d2a92fa1bce..018d76dd5b9f 100644 --- a/src/runtime/internal/Component.ts +++ b/src/runtime/internal/Component.ts @@ -52,10 +52,10 @@ export function claim_component(block, parent_nodes) { block && block.l(parent_nodes); } -export function mount_component(component, target, anchor) { +export function mount_component(component, target, anchor, remount=false) { const { fragment, on_mount, on_destroy, after_update } = component.$$; - fragment && fragment.m(target, anchor); + fragment && fragment.m(target, anchor, remount); // onMount happens before the initial afterUpdate add_render_callback(() => { diff --git a/test/js/samples/bind-width-height/expected.js b/test/js/samples/bind-width-height/expected.js index 4848704c4b0d..5d56896a317d 100644 --- a/test/js/samples/bind-width-height/expected.js +++ b/test/js/samples/bind-width-height/expected.js @@ -21,7 +21,7 @@ function create_fragment(ctx) { div.textContent = "some content"; add_render_callback(() => /*div_elementresize_handler*/ ctx[2].call(div)); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); div_resize_listener = add_resize_listener(div, /*div_elementresize_handler*/ ctx[2].bind(div)); }, @@ -61,4 +61,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/capture-inject-state/expected.js b/test/js/samples/capture-inject-state/expected.js index cd719ac5d25f..0ff54d84ca73 100644 --- a/test/js/samples/capture-inject-state/expected.js +++ b/test/js/samples/capture-inject-state/expected.js @@ -53,7 +53,7 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, p, anchor); append_dev(p, t0); append_dev(p, t1); @@ -198,4 +198,4 @@ class Component extends SvelteComponentDev { } export default Component; -export { moduleLiveBinding, moduleContantProps }; \ No newline at end of file +export { moduleLiveBinding, moduleContantProps }; diff --git a/test/js/samples/collapses-text-around-comments/expected.js b/test/js/samples/collapses-text-around-comments/expected.js index 6fef0f9490d8..446b4f12762b 100644 --- a/test/js/samples/collapses-text-around-comments/expected.js +++ b/test/js/samples/collapses-text-around-comments/expected.js @@ -30,7 +30,7 @@ function create_fragment(ctx) { t = text(/*foo*/ ctx[0]); attr(p, "class", "svelte-1a7i8ec"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); append(p, t); }, @@ -63,4 +63,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-static-array/expected.js b/test/js/samples/component-static-array/expected.js index 44e8dbfe330f..f66ca51e1ad2 100644 --- a/test/js/samples/component-static-array/expected.js +++ b/test/js/samples/component-static-array/expected.js @@ -19,8 +19,8 @@ function create_fragment(ctx) { c() { create_component(nested.$$.fragment); }, - m(target, anchor) { - mount_component(nested, target, anchor); + m(target, anchor, remount) { + mount_component(nested, target, anchor, remount); current = true; }, p: noop, @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-static-immutable/expected.js b/test/js/samples/component-static-immutable/expected.js index a7dd8128fa94..6fcdec1d4518 100644 --- a/test/js/samples/component-static-immutable/expected.js +++ b/test/js/samples/component-static-immutable/expected.js @@ -19,8 +19,8 @@ function create_fragment(ctx) { c() { create_component(nested.$$.fragment); }, - m(target, anchor) { - mount_component(nested, target, anchor); + m(target, anchor, remount) { + mount_component(nested, target, anchor, remount); current = true; }, p: noop, @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-static-immutable2/expected.js b/test/js/samples/component-static-immutable2/expected.js index a7dd8128fa94..6fcdec1d4518 100644 --- a/test/js/samples/component-static-immutable2/expected.js +++ b/test/js/samples/component-static-immutable2/expected.js @@ -19,8 +19,8 @@ function create_fragment(ctx) { c() { create_component(nested.$$.fragment); }, - m(target, anchor) { - mount_component(nested, target, anchor); + m(target, anchor, remount) { + mount_component(nested, target, anchor, remount); current = true; }, p: noop, @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-static-var/expected.js b/test/js/samples/component-static-var/expected.js index c032a0636d42..04e673b0d994 100644 --- a/test/js/samples/component-static-var/expected.js +++ b/test/js/samples/component-static-var/expected.js @@ -37,9 +37,9 @@ function create_fragment(ctx) { input = element("input"); }, m(target, anchor, remount) { - mount_component(foo, target, anchor); + mount_component(foo, target, anchor, remount); insert(target, t0, anchor); - mount_component(bar, target, anchor); + mount_component(bar, target, anchor, remount); insert(target, t1, anchor); insert(target, input, anchor); set_input_value(input, /*z*/ ctx[0]); @@ -98,4 +98,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-static/expected.js b/test/js/samples/component-static/expected.js index 26c63f550b65..76ba371783ea 100644 --- a/test/js/samples/component-static/expected.js +++ b/test/js/samples/component-static/expected.js @@ -19,8 +19,8 @@ function create_fragment(ctx) { c() { create_component(nested.$$.fragment); }, - m(target, anchor) { - mount_component(nested, target, anchor); + m(target, anchor, remount) { + mount_component(nested, target, anchor, remount); current = true; }, p: noop, @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/component-store-access-invalidate/expected.js b/test/js/samples/component-store-access-invalidate/expected.js index 4c7bfd7009c3..08a6b9f2d15c 100644 --- a/test/js/samples/component-store-access-invalidate/expected.js +++ b/test/js/samples/component-store-access-invalidate/expected.js @@ -24,7 +24,7 @@ function create_fragment(ctx) { h1 = element("h1"); t = text(/*$foo*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, h1, anchor); append(h1, t); }, @@ -53,4 +53,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/css-media-query/expected.js b/test/js/samples/css-media-query/expected.js index f4776700599d..fbe35010a7ea 100644 --- a/test/js/samples/css-media-query/expected.js +++ b/test/js/samples/css-media-query/expected.js @@ -26,7 +26,7 @@ function create_fragment(ctx) { div = element("div"); attr(div, "class", "svelte-1slhpfn"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p: noop, @@ -46,4 +46,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/css-shadow-dom-keyframes/expected.js b/test/js/samples/css-shadow-dom-keyframes/expected.js index a0a0ebe0211b..22525193576a 100644 --- a/test/js/samples/css-shadow-dom-keyframes/expected.js +++ b/test/js/samples/css-shadow-dom-keyframes/expected.js @@ -18,7 +18,7 @@ function create_fragment(ctx) { div.textContent = "fades in"; this.c = noop; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p: noop, @@ -45,4 +45,4 @@ class Component extends SvelteElement { } customElements.define("custom-element", Component); -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/data-attribute/expected.js b/test/js/samples/data-attribute/expected.js index 49ad2f2626ba..6b3a1dd4fe11 100644 --- a/test/js/samples/data-attribute/expected.js +++ b/test/js/samples/data-attribute/expected.js @@ -24,7 +24,7 @@ function create_fragment(ctx) { attr(div0, "data-foo", "bar"); attr(div1, "data-foo", /*bar*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div0, anchor); insert(target, t, anchor); insert(target, div1, anchor); @@ -61,4 +61,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/debug-empty/expected.js b/test/js/samples/debug-empty/expected.js index dd142adb26b2..751b937bc3a4 100644 --- a/test/js/samples/debug-empty/expected.js +++ b/test/js/samples/debug-empty/expected.js @@ -38,7 +38,7 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, h1, anchor); append_dev(h1, t0); append_dev(h1, t1); @@ -125,4 +125,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; 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 977702b99f5c..c61082efbd11 100644 --- a/test/js/samples/debug-foo-bar-baz-things/expected.js +++ b/test/js/samples/debug-foo-bar-baz-things/expected.js @@ -50,7 +50,7 @@ function create_each_block(ctx) { add_location(span, file, 8, 1, 116); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, span, anchor); append_dev(span, t0); insert_dev(target, t1, anchor); @@ -112,9 +112,9 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert_dev(target, t0, anchor); @@ -271,4 +271,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/debug-foo/expected.js b/test/js/samples/debug-foo/expected.js index fe62ff77bfb1..0a19cf0eed0d 100644 --- a/test/js/samples/debug-foo/expected.js +++ b/test/js/samples/debug-foo/expected.js @@ -47,7 +47,7 @@ function create_each_block(ctx) { add_location(span, file, 6, 1, 82); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, span, anchor); append_dev(span, t0); insert_dev(target, t1, anchor); @@ -106,9 +106,9 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert_dev(target, t0, anchor); @@ -235,4 +235,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/debug-no-dependencies/expected.js b/test/js/samples/debug-no-dependencies/expected.js index 76068e8cf464..982d3eba04ca 100644 --- a/test/js/samples/debug-no-dependencies/expected.js +++ b/test/js/samples/debug-no-dependencies/expected.js @@ -41,7 +41,7 @@ function create_each_block(ctx) { t0 = space(); t1 = text(t1_value); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, t0, anchor); insert_dev(target, t1, anchor); }, @@ -84,9 +84,9 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert_dev(target, each_1_anchor, anchor); @@ -161,4 +161,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/deconflict-builtins/expected.js b/test/js/samples/deconflict-builtins/expected.js index fb98844ef7a9..297175bd9eb9 100644 --- a/test/js/samples/deconflict-builtins/expected.js +++ b/test/js/samples/deconflict-builtins/expected.js @@ -31,7 +31,7 @@ function create_each_block(ctx) { span = element("span"); t = text(t_value); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, span, anchor); append(span, t); }, @@ -61,9 +61,9 @@ function create_fragment(ctx) { each_1_anchor = empty(); }, - m(target, anchor) { + m(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert(target, each_1_anchor, anchor); @@ -118,4 +118,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; 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 0a50e2cd970a..1bf819114e01 100644 --- a/test/js/samples/dev-warning-missing-data-computed/expected.js +++ b/test/js/samples/dev-warning-missing-data-computed/expected.js @@ -36,7 +36,7 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, p, anchor); append_dev(p, t0); append_dev(p, t1); @@ -129,4 +129,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/dynamic-import/expected.js b/test/js/samples/dynamic-import/expected.js index 4394e7d8a996..11fb4ef592d5 100644 --- a/test/js/samples/dynamic-import/expected.js +++ b/test/js/samples/dynamic-import/expected.js @@ -21,8 +21,8 @@ function create_fragment(ctx) { c() { create_component(lazyload.$$.fragment); }, - m(target, anchor) { - mount_component(lazyload, target, anchor); + m(target, anchor, remount) { + mount_component(lazyload, target, anchor, remount); current = true; }, p: noop, @@ -50,4 +50,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/each-block-array-literal/expected.js b/test/js/samples/each-block-array-literal/expected.js index 10d835cf7805..498d30299fa4 100644 --- a/test/js/samples/each-block-array-literal/expected.js +++ b/test/js/samples/each-block-array-literal/expected.js @@ -31,7 +31,7 @@ function create_each_block(ctx) { span = element("span"); t = text(t_value); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, span, anchor); append(span, t); }, @@ -61,9 +61,9 @@ function create_fragment(ctx) { each_1_anchor = empty(); }, - m(target, anchor) { + m(target, anchor, remount) { for (let i = 0; i < 5; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert(target, each_1_anchor, anchor); @@ -124,4 +124,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/each-block-changed-check/expected.js b/test/js/samples/each-block-changed-check/expected.js index 5d88032b8794..0f1e34f78df4 100644 --- a/test/js/samples/each-block-changed-check/expected.js +++ b/test/js/samples/each-block-changed-check/expected.js @@ -56,7 +56,7 @@ function create_each_block(ctx) { html_tag = new HtmlTag(raw_value, null); attr(div, "class", "comment"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); append(div, strong); append(strong, t0); @@ -101,9 +101,9 @@ function create_fragment(ctx) { p = element("p"); t1 = text(/*foo*/ ctx[3]); }, - m(target, anchor) { + m(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert(target, t0, anchor); @@ -169,4 +169,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/each-block-keyed-animated/expected.js b/test/js/samples/each-block-keyed-animated/expected.js index 7fb81c27a226..28673577c03f 100644 --- a/test/js/samples/each-block-keyed-animated/expected.js +++ b/test/js/samples/each-block-keyed-animated/expected.js @@ -39,7 +39,7 @@ function create_each_block(key_1, ctx) { t = text(t_value); this.first = div; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); append(div, t); }, @@ -84,9 +84,9 @@ function create_fragment(ctx) { each_1_anchor = empty(); }, - m(target, anchor) { + m(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert(target, each_1_anchor, anchor); @@ -142,4 +142,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/each-block-keyed/expected.js b/test/js/samples/each-block-keyed/expected.js index ad8c074e99f8..827a2a994873 100644 --- a/test/js/samples/each-block-keyed/expected.js +++ b/test/js/samples/each-block-keyed/expected.js @@ -35,7 +35,7 @@ function create_each_block(key_1, ctx) { t = text(t_value); this.first = div; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); append(div, t); }, @@ -69,9 +69,9 @@ function create_fragment(ctx) { each_1_anchor = empty(); }, - m(target, anchor) { + m(target, anchor, remount) { for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); + each_blocks[i].m(target, anchor, remount); } insert(target, each_1_anchor, anchor); @@ -111,4 +111,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/head-no-whitespace/expected.js b/test/js/samples/head-no-whitespace/expected.js index 444bad3fd48a..674eb8c80f07 100644 --- a/test/js/samples/head-no-whitespace/expected.js +++ b/test/js/samples/head-no-whitespace/expected.js @@ -23,7 +23,7 @@ function create_fragment(ctx) { attr(meta1, "name", "twitter:title"); attr(meta1, "content", "Svelte"); }, - m(target, anchor) { + m(target, anchor, remount) { append(document.head, meta0); append(document.head, meta1); }, @@ -44,4 +44,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/hoisted-const/expected.js b/test/js/samples/hoisted-const/expected.js index 2842b547516e..59b7c1198786 100644 --- a/test/js/samples/hoisted-const/expected.js +++ b/test/js/samples/hoisted-const/expected.js @@ -17,7 +17,7 @@ function create_fragment(ctx) { b = element("b"); b.textContent = `${get_answer()}`; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, b, anchor); }, p: noop, @@ -42,4 +42,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/hoisted-let/expected.js b/test/js/samples/hoisted-let/expected.js index 285b12411835..ad940563a315 100644 --- a/test/js/samples/hoisted-let/expected.js +++ b/test/js/samples/hoisted-let/expected.js @@ -17,7 +17,7 @@ function create_fragment(ctx) { b = element("b"); b.textContent = `${get_answer()}`; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, b, anchor); }, p: noop, @@ -42,4 +42,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/hydrated-void-element/expected.js b/test/js/samples/hydrated-void-element/expected.js index e53d16d9250e..88cc0d6a5c29 100644 --- a/test/js/samples/hydrated-void-element/expected.js +++ b/test/js/samples/hydrated-void-element/expected.js @@ -38,7 +38,7 @@ function create_fragment(ctx) { if (img.src !== (img_src_value = "donuts.jpg")) attr(img, "src", img_src_value); attr(img, "alt", "donuts"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, img, anchor); insert(target, t, anchor); insert(target, div, anchor); @@ -61,4 +61,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/if-block-complex/expected.js b/test/js/samples/if-block-complex/expected.js index a8244de8b02d..d39e4d142f87 100644 --- a/test/js/samples/if-block-complex/expected.js +++ b/test/js/samples/if-block-complex/expected.js @@ -19,7 +19,7 @@ function create_if_block(ctx) { div = element("div"); attr(div, "class", "divider"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, d(detaching) { @@ -38,8 +38,8 @@ function create_fragment(ctx) { if (if_block) if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); + m(target, anchor, remount) { + if (if_block) if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); }, p: noop, @@ -64,4 +64,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/if-block-no-update/expected.js b/test/js/samples/if-block-no-update/expected.js index f225c221bfe3..c62c3e64ba52 100644 --- a/test/js/samples/if-block-no-update/expected.js +++ b/test/js/samples/if-block-no-update/expected.js @@ -18,7 +18,7 @@ function create_else_block(ctx) { p = element("p"); p.textContent = "not foo!"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -36,7 +36,7 @@ function create_if_block(ctx) { p = element("p"); p.textContent = "foo!"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -61,8 +61,8 @@ function create_fragment(ctx) { if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if_block.m(target, anchor); + m(target, anchor, remount) { + if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); }, p(ctx, [dirty]) { @@ -102,4 +102,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/if-block-simple/expected.js b/test/js/samples/if-block-simple/expected.js index eb6c8e89490a..7ba283315c10 100644 --- a/test/js/samples/if-block-simple/expected.js +++ b/test/js/samples/if-block-simple/expected.js @@ -18,7 +18,7 @@ function create_if_block(ctx) { p = element("p"); p.textContent = "foo!"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -36,14 +36,14 @@ function create_fragment(ctx) { if (if_block) if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); + m(target, anchor, remount) { + if (if_block) if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); }, p(ctx, [dirty]) { if (/*foo*/ ctx[0]) { if (if_block) { - + } else { if_block = create_if_block(ctx); if_block.c(); @@ -80,4 +80,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/inline-style-optimized-multiple/expected.js b/test/js/samples/inline-style-optimized-multiple/expected.js index 84a38abd7bbe..4514bc68966c 100644 --- a/test/js/samples/inline-style-optimized-multiple/expected.js +++ b/test/js/samples/inline-style-optimized-multiple/expected.js @@ -19,7 +19,7 @@ function create_fragment(ctx) { set_style(div, "color", /*color*/ ctx[0]); set_style(div, "transform", "translate(" + /*x*/ ctx[1] + "px," + /*y*/ ctx[2] + "px)"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p(ctx, [dirty]) { @@ -60,4 +60,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/inline-style-optimized-url/expected.js b/test/js/samples/inline-style-optimized-url/expected.js index 77870348a572..6f921c121ad5 100644 --- a/test/js/samples/inline-style-optimized-url/expected.js +++ b/test/js/samples/inline-style-optimized-url/expected.js @@ -18,7 +18,7 @@ function create_fragment(ctx) { div = element("div"); set_style(div, "background", "url(data:image/png;base64," + /*data*/ ctx[0] + ")"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p(ctx, [dirty]) { @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/inline-style-optimized/expected.js b/test/js/samples/inline-style-optimized/expected.js index 5bef284f0946..b3e43469d202 100644 --- a/test/js/samples/inline-style-optimized/expected.js +++ b/test/js/samples/inline-style-optimized/expected.js @@ -18,7 +18,7 @@ function create_fragment(ctx) { div = element("div"); set_style(div, "color", /*color*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p(ctx, [dirty]) { @@ -51,4 +51,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/inline-style-unoptimized/expected.js b/test/js/samples/inline-style-unoptimized/expected.js index fdff685eade2..f84aa2e31ae0 100644 --- a/test/js/samples/inline-style-unoptimized/expected.js +++ b/test/js/samples/inline-style-unoptimized/expected.js @@ -25,7 +25,7 @@ function create_fragment(ctx) { attr(div0, "style", /*style*/ ctx[0]); attr(div1, "style", div1_style_value = "" + (/*key*/ ctx[1] + ": " + /*value*/ ctx[2])); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div0, anchor); insert(target, t, anchor); insert(target, div1, anchor); @@ -70,4 +70,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/inline-style-without-updates/expected.js b/test/js/samples/inline-style-without-updates/expected.js index 375896f259ea..f3d6a641c6e1 100644 --- a/test/js/samples/inline-style-without-updates/expected.js +++ b/test/js/samples/inline-style-without-updates/expected.js @@ -18,7 +18,7 @@ function create_fragment(ctx) { div = element("div"); set_style(div, "color", color); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, p: noop, @@ -39,4 +39,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/instrumentation-script-main-block/expected.js b/test/js/samples/instrumentation-script-main-block/expected.js index bc809246028b..67f82b1befa8 100644 --- a/test/js/samples/instrumentation-script-main-block/expected.js +++ b/test/js/samples/instrumentation-script-main-block/expected.js @@ -23,7 +23,7 @@ function create_fragment(ctx) { t0 = text("x: "); t1 = text(/*x*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); append(p, t0); append(p, t1); @@ -72,4 +72,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/legacy-input-type/expected.js b/test/js/samples/legacy-input-type/expected.js index 2b76a485225a..33ac3dfdf13c 100644 --- a/test/js/samples/legacy-input-type/expected.js +++ b/test/js/samples/legacy-input-type/expected.js @@ -18,7 +18,7 @@ function create_fragment(ctx) { input = element("input"); set_input_type(input, "search"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, input, anchor); }, p: noop, @@ -37,4 +37,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/loop-protect/expected.js b/test/js/samples/loop-protect/expected.js index c52d9df437e5..b5e93c0d27db 100644 --- a/test/js/samples/loop-protect/expected.js +++ b/test/js/samples/loop-protect/expected.js @@ -29,7 +29,7 @@ function create_fragment(ctx) { l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, - m: function mount(target, anchor) { + m: function mount(target, anchor, remount) { insert_dev(target, div, anchor); /*div_binding*/ ctx[1](div); }, @@ -165,4 +165,4 @@ class Component extends SvelteComponentDev { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/non-imported-component/expected.js b/test/js/samples/non-imported-component/expected.js index 2784fd17acb3..b8743367be82 100644 --- a/test/js/samples/non-imported-component/expected.js +++ b/test/js/samples/non-imported-component/expected.js @@ -28,10 +28,10 @@ function create_fragment(ctx) { t = space(); create_component(nonimported.$$.fragment); }, - m(target, anchor) { - mount_component(imported, target, anchor); + m(target, anchor, remount) { + mount_component(imported, target, anchor, remount); insert(target, t, anchor); - mount_component(nonimported, target, anchor); + mount_component(nonimported, target, anchor, remount); current = true; }, p: noop, @@ -61,4 +61,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/non-mutable-reference/expected.js b/test/js/samples/non-mutable-reference/expected.js index 93f2145a2e65..e89d513d665f 100644 --- a/test/js/samples/non-mutable-reference/expected.js +++ b/test/js/samples/non-mutable-reference/expected.js @@ -17,7 +17,7 @@ function create_fragment(ctx) { h1 = element("h1"); h1.textContent = `Hello ${name}!`; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, h1, anchor); }, p: noop, @@ -38,4 +38,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/select-dynamic-value/expected.js b/test/js/samples/select-dynamic-value/expected.js index a93a47bd3ac4..4d50fbfb211f 100644 --- a/test/js/samples/select-dynamic-value/expected.js +++ b/test/js/samples/select-dynamic-value/expected.js @@ -28,7 +28,7 @@ function create_fragment(ctx) { option1.__value = "2"; option1.value = option1.__value; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, select, anchor); append(select, option0); append(select, option1); @@ -80,4 +80,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/src-attribute-check/expected.js b/test/js/samples/src-attribute-check/expected.js index e03b3a6ba7ee..747afe5f7f5b 100644 --- a/test/js/samples/src-attribute-check/expected.js +++ b/test/js/samples/src-attribute-check/expected.js @@ -39,7 +39,7 @@ function create_fragment(ctx) { attr(img1, "alt", "potato"); if (img1.src !== (img1_src_value = "" + (/*slug*/ ctx[1] + ".jpg"))) attr(img1, "src", img1_src_value); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, img0, anchor); insert(target, t, anchor); insert(target, img1, anchor); @@ -82,4 +82,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/svg-title/expected.js b/test/js/samples/svg-title/expected.js index cd7ae3b55152..dd3aadb202a6 100644 --- a/test/js/samples/svg-title/expected.js +++ b/test/js/samples/svg-title/expected.js @@ -22,7 +22,7 @@ function create_fragment(ctx) { title = svg_element("title"); t = text("a title"); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, svg, anchor); append(svg, title); append(title, t); @@ -43,4 +43,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/transition-local/expected.js b/test/js/samples/transition-local/expected.js index 25a03f026f75..a9a3e2fa6166 100644 --- a/test/js/samples/transition-local/expected.js +++ b/test/js/samples/transition-local/expected.js @@ -22,8 +22,8 @@ function create_if_block(ctx) { if (if_block) if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); + m(target, anchor, remount) { + if (if_block) if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); }, p(ctx, dirty) { @@ -60,7 +60,7 @@ function create_if_block_1(ctx) { div = element("div"); div.textContent = "..."; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); }, i(local) { @@ -89,8 +89,8 @@ function create_fragment(ctx) { if (if_block) if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); + m(target, anchor, remount) { + if (if_block) if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); }, p(ctx, [dirty]) { @@ -117,7 +117,7 @@ function create_fragment(ctx) { } function foo() { - + } function instance($$self, $$props, $$invalidate) { @@ -139,4 +139,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/transition-repeated-outro/expected.js b/test/js/samples/transition-repeated-outro/expected.js index 1f76a93666be..e4a6331cede7 100644 --- a/test/js/samples/transition-repeated-outro/expected.js +++ b/test/js/samples/transition-repeated-outro/expected.js @@ -26,7 +26,7 @@ function create_if_block(ctx) { div = element("div"); div.innerHTML = `

wheeee

`; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); current = true; }, @@ -56,8 +56,8 @@ function create_fragment(ctx) { if (if_block) if_block.c(); if_block_anchor = empty(); }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); + m(target, anchor, remount) { + if (if_block) if_block.m(target, anchor, remount); insert(target, if_block_anchor, anchor); current = true; }, @@ -116,4 +116,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/unchanged-expression/expected.js b/test/js/samples/unchanged-expression/expected.js index 673d5b6abc8d..673961046127 100644 --- a/test/js/samples/unchanged-expression/expected.js +++ b/test/js/samples/unchanged-expression/expected.js @@ -43,7 +43,7 @@ function create_fragment(ctx) { t8 = text("Hello "); t9 = text(/*world3*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div0, anchor); append(div0, p0); append(div0, t1); @@ -89,4 +89,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/unreferenced-state-not-invalidated/expected.js b/test/js/samples/unreferenced-state-not-invalidated/expected.js index b10ea815b966..15d89f44fb58 100644 --- a/test/js/samples/unreferenced-state-not-invalidated/expected.js +++ b/test/js/samples/unreferenced-state-not-invalidated/expected.js @@ -23,7 +23,7 @@ function create_fragment(ctx) { p = element("p"); t = text(/*y*/ ctx[0]); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); append(p, t); }, @@ -74,4 +74,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/js/samples/use-elements-as-anchors/expected.js b/test/js/samples/use-elements-as-anchors/expected.js index 5be8808edbcf..4e5fd2462661 100644 --- a/test/js/samples/use-elements-as-anchors/expected.js +++ b/test/js/samples/use-elements-as-anchors/expected.js @@ -20,7 +20,7 @@ function create_if_block_4(ctx) { p = element("p"); p.textContent = "a"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -38,7 +38,7 @@ function create_if_block_3(ctx) { p = element("p"); p.textContent = "b"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -56,7 +56,7 @@ function create_if_block_2(ctx) { p = element("p"); p.textContent = "c"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -74,7 +74,7 @@ function create_if_block_1(ctx) { p = element("p"); p.textContent = "d"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -92,7 +92,7 @@ function create_if_block(ctx) { p = element("p"); p.textContent = "e"; }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, p, anchor); }, d(detaching) { @@ -138,27 +138,27 @@ function create_fragment(ctx) { if (if_block4) if_block4.c(); if_block4_anchor = empty(); }, - m(target, anchor) { + m(target, anchor, remount) { insert(target, div, anchor); - if (if_block0) if_block0.m(div, null); + if (if_block0) if_block0.m(div, null, remount); append(div, t0); append(div, p0); append(div, t2); - if (if_block1) if_block1.m(div, null); + if (if_block1) if_block1.m(div, null, remount); append(div, t3); - if (if_block2) if_block2.m(div, null); + if (if_block2) if_block2.m(div, null, remount); append(div, t4); append(div, p1); append(div, t6); - if (if_block3) if_block3.m(div, null); + if (if_block3) if_block3.m(div, null, remount); insert(target, t7, anchor); - if (if_block4) if_block4.m(target, anchor); + if (if_block4) if_block4.m(target, anchor, remount); insert(target, if_block4_anchor, anchor); }, p(ctx, [dirty]) { if (/*a*/ ctx[0]) { if (if_block0) { - + } else { if_block0 = create_if_block_4(ctx); if_block0.c(); @@ -171,7 +171,7 @@ function create_fragment(ctx) { if (/*b*/ ctx[1]) { if (if_block1) { - + } else { if_block1 = create_if_block_3(ctx); if_block1.c(); @@ -184,7 +184,7 @@ function create_fragment(ctx) { if (/*c*/ ctx[2]) { if (if_block2) { - + } else { if_block2 = create_if_block_2(ctx); if_block2.c(); @@ -197,7 +197,7 @@ function create_fragment(ctx) { if (/*d*/ ctx[3]) { if (if_block3) { - + } else { if_block3 = create_if_block_1(ctx); if_block3.c(); @@ -210,7 +210,7 @@ function create_fragment(ctx) { if (/*e*/ ctx[4]) { if (if_block4) { - + } else { if_block4 = create_if_block(ctx); if_block4.c(); @@ -261,4 +261,4 @@ class Component extends SvelteComponent { } } -export default Component; \ No newline at end of file +export default Component; diff --git a/test/runtime/samples/each-block-keyed-component-action/Component.svelte b/test/runtime/samples/each-block-keyed-component-action/Component.svelte new file mode 100644 index 000000000000..18a6c7452a01 --- /dev/null +++ b/test/runtime/samples/each-block-keyed-component-action/Component.svelte @@ -0,0 +1,5 @@ + + +
diff --git a/test/runtime/samples/each-block-keyed-component-action/_config.js b/test/runtime/samples/each-block-keyed-component-action/_config.js new file mode 100644 index 000000000000..c4421f89aea2 --- /dev/null +++ b/test/runtime/samples/each-block-keyed-component-action/_config.js @@ -0,0 +1,21 @@ +export default { + test({ assert, component, raf }) { + assert.equal(component.count, 0); + + component.arr = ["2"]; + + assert.equal(component.count, 1); + + component.arr = ["1", "2"]; + + assert.equal(component.count, 2); + + component.arr = ["2", "1"]; + + assert.equal(component.count, 2); + + component.arr = []; + + assert.equal(component.count, 0); + }, +}; diff --git a/test/runtime/samples/each-block-keyed-component-action/main.svelte b/test/runtime/samples/each-block-keyed-component-action/main.svelte new file mode 100644 index 000000000000..bfacdf402a02 --- /dev/null +++ b/test/runtime/samples/each-block-keyed-component-action/main.svelte @@ -0,0 +1,17 @@ + + +{#each arr as item (item)} + +{/each}