nested
diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index 007b4eb721..6b8f2e45c6 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -322,6 +322,12 @@ export class Boundary { var onerror = this.#props.onerror; let failed = this.#props.failed; + // If we have nothing to capture the error, or if we hit an error while + // rendering the fallback, re-throw for another boundary to handle + if (this.#is_creating_fallback || (!onerror && !failed)) { + throw error; + } + if (this.#main_effect) { destroy_effect(this.#main_effect); this.#main_effect = null; @@ -385,12 +391,6 @@ export class Boundary { } }; - // If we have nothing to capture the error, or if we hit an error while - // rendering the fallback, re-throw for another boundary to handle - if (this.#is_creating_fallback || (!onerror && !failed)) { - throw error; - } - var previous_reaction = active_reaction; try { diff --git a/packages/svelte/src/internal/client/render.js b/packages/svelte/src/internal/client/render.js index b3593f9570..52a32746a7 100644 --- a/packages/svelte/src/internal/client/render.js +++ b/packages/svelte/src/internal/client/render.js @@ -220,8 +220,12 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro var unmount = component_root(() => { var anchor_node = anchor ?? target.appendChild(create_text()); - branch(() => { - boundary(/** @type {TemplateNode} */ (anchor_node), { pending: () => {} }, (anchor_node) => { + boundary( + /** @type {TemplateNode} */ (anchor_node), + { + pending: () => {} + }, + (anchor_node) => { if (context) { push({}); var ctx = /** @type {ComponentContext} */ (component_context); @@ -249,8 +253,8 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro if (context) { pop(); } - }); - }); + } + ); return () => { for (var event_name of registered_events) { diff --git a/packages/svelte/tests/hydration/samples/binding-input/_expected.html b/packages/svelte/tests/hydration/samples/binding-input/_expected.html index e36735dc6b..7a73053b82 100644 --- a/packages/svelte/tests/hydration/samples/binding-input/_expected.html +++ b/packages/svelte/tests/hydration/samples/binding-input/_expected.html @@ -1 +1 @@ -
Hello world!
+Hello world!
diff --git a/packages/svelte/tests/hydration/samples/cloudflare-mirage-borking-2/_override.html b/packages/svelte/tests/hydration/samples/cloudflare-mirage-borking-2/_override.html index 2a1c323288..117d83d8eb 100644 --- a/packages/svelte/tests/hydration/samples/cloudflare-mirage-borking-2/_override.html +++ b/packages/svelte/tests/hydration/samples/cloudflare-mirage-borking-2/_override.html @@ -1 +1 @@ -start
cond
+start
cond
diff --git a/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html b/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html index 11e3f55d6b..04266bf7f3 100644 --- a/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html +++ b/packages/svelte/tests/hydration/samples/dynamic-text-changed/_expected.html @@ -1 +1 @@ -a
empty
+a
empty
diff --git a/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html index 2b2a31b926..4b28b305d5 100644 --- a/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html +++ b/packages/svelte/tests/hydration/samples/each-block-less-nodes-on-client/_expected.html @@ -1 +1 @@ -foo
+foo
diff --git a/packages/svelte/tests/hydration/samples/input-checked-attribute-sibling/_expected.html b/packages/svelte/tests/hydration/samples/input-checked-attribute-sibling/_expected.html index bcd53f8783..521f9c52b8 100644 --- a/packages/svelte/tests/hydration/samples/input-checked-attribute-sibling/_expected.html +++ b/packages/svelte/tests/hydration/samples/input-checked-attribute-sibling/_expected.html @@ -1 +1 @@ -. +. diff --git a/packages/svelte/tests/hydration/samples/input-value-changed/_expected.html b/packages/svelte/tests/hydration/samples/input-value-changed/_expected.html index c5384e717e..c9bc1409d7 100644 --- a/packages/svelte/tests/hydration/samples/input-value-changed/_expected.html +++ b/packages/svelte/tests/hydration/samples/input-value-changed/_expected.html @@ -1 +1 @@ - + diff --git a/packages/svelte/tests/hydration/samples/noscript/_expected.html b/packages/svelte/tests/hydration/samples/noscript/_expected.html index 990ce87303..a587a13af1 100644 --- a/packages/svelte/tests/hydration/samples/noscript/_expected.html +++ b/packages/svelte/tests/hydration/samples/noscript/_expected.html @@ -1 +1 @@ -Count: 1
+Count: 1
diff --git a/packages/svelte/tests/hydration/samples/pre-first-node-newline/_expected.html b/packages/svelte/tests/hydration/samples/pre-first-node-newline/_expected.html index 26de34d1ed..a4d2df2147 100644 --- a/packages/svelte/tests/hydration/samples/pre-first-node-newline/_expected.html +++ b/packages/svelte/tests/hydration/samples/pre-first-node-newline/_expected.html @@ -1,7 +1,7 @@ -static content no line
static content ignored line +diff --git a/packages/svelte/tests/hydration/samples/removes-undefined-attributes/_expected.html b/packages/svelte/tests/hydration/samples/removes-undefined-attributes/_expected.html index cc789c8f51..4af6885faf 100644 --- a/packages/svelte/tests/hydration/samples/removes-undefined-attributes/_expected.html +++ b/packages/svelte/tests/hydration/samples/removes-undefined-attributes/_expected.html @@ -1 +1 @@ - + diff --git a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html index e1076af2ec..1755e9bfe2 100644 --- a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html +++ b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html @@ -1 +1 @@ -foo foo +foo foo diff --git a/packages/svelte/tests/hydration/samples/safari-borking/_override.html b/packages/svelte/tests/hydration/samples/safari-borking/_override.html index 876815e7a9..b3665d1f80 100644 --- a/packages/svelte/tests/hydration/samples/safari-borking/_override.html +++ b/packages/svelte/tests/hydration/samples/safari-borking/_override.html @@ -1 +1 @@ -static content no linestatic content ignored linestatic content relevant line+-
hydrated
+hydrated
diff --git a/packages/svelte/tests/hydration/samples/standalone-component/_expected.html b/packages/svelte/tests/hydration/samples/standalone-component/_expected.html index 96850f7bdf..119576aa73 100644 --- a/packages/svelte/tests/hydration/samples/standalone-component/_expected.html +++ b/packages/svelte/tests/hydration/samples/standalone-component/_expected.html @@ -1 +1 @@ -child
child
child
child
+child
child
child
child
diff --git a/packages/svelte/tests/hydration/samples/standalone-snippet/_expected.html b/packages/svelte/tests/hydration/samples/standalone-snippet/_expected.html index acb14818c2..61fc31a95e 100644 --- a/packages/svelte/tests/hydration/samples/standalone-snippet/_expected.html +++ b/packages/svelte/tests/hydration/samples/standalone-snippet/_expected.html @@ -1 +1 @@ -thing
thing
thing
thing
+thing
thing
thing
thing
diff --git a/packages/svelte/tests/hydration/samples/surrounding-whitespace/_expected.html b/packages/svelte/tests/hydration/samples/surrounding-whitespace/_expected.html index e728b682d0..7b51bed662 100644 --- a/packages/svelte/tests/hydration/samples/surrounding-whitespace/_expected.html +++ b/packages/svelte/tests/hydration/samples/surrounding-whitespace/_expected.html @@ -1,2 +1,2 @@ - hello + hello diff --git a/packages/svelte/tests/hydration/samples/surrounding-whitespace/_override.html b/packages/svelte/tests/hydration/samples/surrounding-whitespace/_override.html index e728b682d0..7b51bed662 100644 --- a/packages/svelte/tests/hydration/samples/surrounding-whitespace/_override.html +++ b/packages/svelte/tests/hydration/samples/surrounding-whitespace/_override.html @@ -1,2 +1,2 @@ - hello + hello diff --git a/packages/svelte/tests/hydration/samples/text-empty-2/_expected.html b/packages/svelte/tests/hydration/samples/text-empty-2/_expected.html index ff12f10bfb..e14014c2f0 100644 --- a/packages/svelte/tests/hydration/samples/text-empty-2/_expected.html +++ b/packages/svelte/tests/hydration/samples/text-empty-2/_expected.html @@ -1 +1 @@ - + diff --git a/packages/svelte/tests/hydration/samples/text-empty/_expected.html b/packages/svelte/tests/hydration/samples/text-empty/_expected.html index 2e03580f42..c4d823410f 100644 --- a/packages/svelte/tests/hydration/samples/text-empty/_expected.html +++ b/packages/svelte/tests/hydration/samples/text-empty/_expected.html @@ -1 +1 @@ -x +x diff --git a/packages/svelte/tests/hydration/samples/whitespace-at-block-start/_override.html b/packages/svelte/tests/hydration/samples/whitespace-at-block-start/_override.html index 90ca4ef4b8..7402247877 100644 --- a/packages/svelte/tests/hydration/samples/whitespace-at-block-start/_override.html +++ b/packages/svelte/tests/hydration/samples/whitespace-at-block-start/_override.html @@ -1,2 +1,2 @@ - -nested
nested