From e3b0f80b7c6c7888771c046bf3227d27bbcd6f9b Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 Sep 2025 15:54:14 -0600 Subject: [PATCH] chore: Update a bunch of tests for hydration markers --- .../src/internal/client/dom/blocks/boundary.js | 12 ++++++------ packages/svelte/src/internal/client/render.js | 12 ++++++++---- .../samples/binding-input/_expected.html | 2 +- .../cloudflare-mirage-borking-2/_override.html | 2 +- .../samples/dynamic-text-changed/_expected.html | 2 +- .../_expected.html | 2 +- .../each-block-fallback-mismatch/_expected.html | 2 +- .../_expected.html | 2 +- .../_expected.html | 2 +- .../element-attribute-added/_expected.html | 2 +- .../element-attribute-changed/_expected.html | 2 +- .../element-attribute-removed/_expected.html | 2 +- .../samples/if-block-mismatch-2/_expected.html | 2 +- .../samples/if-block-mismatch/_expected.html | 2 +- .../_expected.html | 2 +- .../samples/input-value-changed/_expected.html | 2 +- .../hydration/samples/noscript/_expected.html | 2 +- .../pre-first-node-newline/_expected.html | 4 ++-- .../removes-undefined-attributes/_expected.html | 2 +- .../repair-mismatched-a-href/_expected.html | 2 +- .../samples/safari-borking/_override.html | 2 +- .../hydration/samples/script/_expected.html | 2 +- .../samples/snippet-raw-hydrate/_expected.html | 2 +- .../samples/standalone-component/_expected.html | 2 +- .../samples/standalone-snippet/_expected.html | 2 +- .../surrounding-whitespace/_expected.html | 2 +- .../surrounding-whitespace/_override.html | 2 +- .../samples/text-empty-2/_expected.html | 2 +- .../hydration/samples/text-empty/_expected.html | 2 +- .../whitespace-at-block-start/_override.html | 4 ++-- .../samples/textarea-content/_config.js | 4 ++-- packages/svelte/tests/runtime-legacy/shared.ts | 17 ++++++----------- .../samples/snippet-slot-let-error/_config.js | 1 + .../samples/comment-preserve/_expected.html | 2 +- .../head-meta-hydrate-duplicate/_expected.html | 2 +- .../_expected.html | 2 ++ 36 files changed, 57 insertions(+), 55 deletions(-) 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 @@ -

Hello everybody!

+

Hello everybody!

diff --git a/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html index 2b2a31b926..4b28b305d5 100644 --- a/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html +++ b/packages/svelte/tests/hydration/samples/each-block-0-on-server-more-on-client/_expected.html @@ -1 +1 @@ -
  • a
  • a
  • a
  • a
  • a
  • a
  • +
  • a
  • a
  • a
  • a
  • a
  • a
  • diff --git a/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html b/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html index af66d98b25..8ace6d0373 100644 --- a/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_expected.html +++ b/packages/svelte/tests/hydration/samples/each-block-fallback-mismatch/_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 @@ -
  • a
  • a
  • a
  • a
  • a
  • a
  • +
  • a
  • a
  • a
  • a
  • a
  • a
  • diff --git a/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html b/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html index fa72a80dcd..89cbd0b466 100644 --- a/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html +++ b/packages/svelte/tests/hydration/samples/each-block-more-nodes-on-client/_expected.html @@ -1 +1 @@ -
  • a
  • a
  • b
  • b
  • a
  • a
  • b
  • b
  • a
  • a
  • b
  • b
  • +
  • a
  • a
  • b
  • b
  • a
  • a
  • b
  • b
  • a
  • a
  • b
  • b
  • diff --git a/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html index 7d8e91c757..27f9299c54 100644 --- a/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html +++ b/packages/svelte/tests/hydration/samples/element-attribute-added/_expected.html @@ -1 +1 @@ -
    +
    diff --git a/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html index 7d8e91c757..27f9299c54 100644 --- a/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html +++ b/packages/svelte/tests/hydration/samples/element-attribute-changed/_expected.html @@ -1 +1 @@ -
    +
    diff --git a/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html b/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html index a6c1be8b49..1a69c9fa30 100644 --- a/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html +++ b/packages/svelte/tests/hydration/samples/element-attribute-removed/_expected.html @@ -1 +1 @@ -
    +
    diff --git a/packages/svelte/tests/hydration/samples/if-block-mismatch-2/_expected.html b/packages/svelte/tests/hydration/samples/if-block-mismatch-2/_expected.html index 08a3809de9..5620250623 100644 --- a/packages/svelte/tests/hydration/samples/if-block-mismatch-2/_expected.html +++ b/packages/svelte/tests/hydration/samples/if-block-mismatch-2/_expected.html @@ -1 +1 @@ -
    hello +
    hello diff --git a/packages/svelte/tests/hydration/samples/if-block-mismatch/_expected.html b/packages/svelte/tests/hydration/samples/if-block-mismatch/_expected.html index 79cf2cf35f..5ace45d895 100644 --- a/packages/svelte/tests/hydration/samples/if-block-mismatch/_expected.html +++ b/packages/svelte/tests/hydration/samples/if-block-mismatch/_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 @@ -

    Hello!

    Count: 1

    +

    Hello!

    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
    +
    static content no line
    	static content ignored line
     
     	static content relevant 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 @@ -

    call +636-555-3226 now!

    +

    call +636-555-3226 now!

    diff --git a/packages/svelte/tests/hydration/samples/script/_expected.html b/packages/svelte/tests/hydration/samples/script/_expected.html index b3a4d92219..ab881a6197 100644 --- a/packages/svelte/tests/hydration/samples/script/_expected.html +++ b/packages/svelte/tests/hydration/samples/script/_expected.html @@ -1 +1 @@ - + diff --git a/packages/svelte/tests/hydration/samples/snippet-raw-hydrate/_expected.html b/packages/svelte/tests/hydration/samples/snippet-raw-hydrate/_expected.html index 8d9dde52c1..0629ab64c2 100644 --- a/packages/svelte/tests/hydration/samples/snippet-raw-hydrate/_expected.html +++ b/packages/svelte/tests/hydration/samples/snippet-raw-hydrate/_expected.html @@ -1 +1 @@ -

    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

    \ No newline at end of file + +

    nested

    \ No newline at end of file diff --git a/packages/svelte/tests/runtime-legacy/samples/textarea-content/_config.js b/packages/svelte/tests/runtime-legacy/samples/textarea-content/_config.js index 7cd7c553e0..dac6ee4fb8 100644 --- a/packages/svelte/tests/runtime-legacy/samples/textarea-content/_config.js +++ b/packages/svelte/tests/runtime-legacy/samples/textarea-content/_config.js @@ -4,7 +4,7 @@ export default test({ withoutNormalizeHtml: true, // Unable to test `html` with `
    `, +multiple leading newlines`, test({ assert, target }) { // Test for