From 7c74482796c032303ebb26bc6930599c2eafd775 Mon Sep 17 00:00:00 2001 From: paoloricciuti Date: Tue, 7 Apr 2026 10:31:00 +0200 Subject: [PATCH] fix: push same returned renderer in `renderer.render` --- .../svelte/src/internal/client/custom-renderer/index.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/svelte/src/internal/client/custom-renderer/index.js b/packages/svelte/src/internal/client/custom-renderer/index.js index 82ea5112c6..96667d213a 100644 --- a/packages/svelte/src/internal/client/custom-renderer/index.js +++ b/packages/svelte/src/internal/client/custom-renderer/index.js @@ -43,7 +43,7 @@ import { get_parent_node, remove_child } from '../dom/operations.js'; * @returns {Renderer & { render: , Exports extends Record>(component: ComponentType> | Component, options: {} extends Props ? { target: TFragment | TElement | TTextNode | TComment, props?: Props, context?: Map } : { target: TFragment | TElement | TTextNode | TComment, props: Props, context?: Map }) => { component: Exports, unmount: () => void } }} */ export function createRenderer(renderer) { - return { + const compound_renderer = { ...renderer, /** * @template {Record} Props @@ -52,15 +52,15 @@ export function createRenderer(renderer) { * @param {{} extends Props ? { target: TFragment | TElement | TTextNode | TComment, props?: Props, context?: Map } : { target: TFragment | TElement | TTextNode | TComment, props: Props, context?: Map }} options */ render(Component, { target, props, context }) { - var cleanup = push_renderer(renderer); + var cleanup = push_renderer(compound_renderer); try { /** @type {Exports} */ // @ts-expect-error will be defined because the render effect runs synchronously var component = undefined; const unmount = effect_root(() => { - var anchor = renderer.createComment(''); - renderer.insert(/** @type {*} */ (target), anchor, null); + var anchor = compound_renderer.createComment(''); + compound_renderer.insert(/** @type {*} */ (target), anchor, null); boundary(/** @type {*} */ (anchor), { pending: () => {} }, (anchor) => { push({}); var ctx = /** @type {ComponentContext} */ (component_context); @@ -82,4 +82,5 @@ export function createRenderer(renderer) { } } }; + return compound_renderer; }