From 2c5b556b56dafd67be156b106058c5e11cb6022d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 13 May 2026 16:18:30 -0400 Subject: [PATCH] consistency --- .../internal/client/custom-renderer/index.js | 5 +++-- .../internal/client/custom-renderer/state.js | 17 ++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/svelte/src/internal/client/custom-renderer/index.js b/packages/svelte/src/internal/client/custom-renderer/index.js index 8e5ee011d8..8fc51d1f77 100644 --- a/packages/svelte/src/internal/client/custom-renderer/index.js +++ b/packages/svelte/src/internal/client/custom-renderer/index.js @@ -25,7 +25,8 @@ 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(compound_renderer); + var pop_renderer = push_renderer(compound_renderer); + try { /** @type {Exports} */ // @ts-expect-error will be defined because the render effect runs synchronously @@ -51,7 +52,7 @@ export function createRenderer(renderer) { }); return { component, unmount }; } finally { - cleanup(); + pop_renderer(); } } }; diff --git a/packages/svelte/src/internal/client/custom-renderer/state.js b/packages/svelte/src/internal/client/custom-renderer/state.js index 202885ab79..7b46e21b2e 100644 --- a/packages/svelte/src/internal/client/custom-renderer/state.js +++ b/packages/svelte/src/internal/client/custom-renderer/state.js @@ -1,6 +1,4 @@ -/** - * @import { Renderer } from "./types.js"; - */ +/** @import { Renderer } from './types.js'; */ /** * @type {Renderer | null} @@ -19,10 +17,11 @@ export function set_renderer(value) { * @param {Renderer | null} value */ export function push_renderer(value) { - let old_renderer = current_renderer; + var previous_renderer = current_renderer; current_renderer = value; + return () => { - current_renderer = old_renderer; + current_renderer = previous_renderer; }; } @@ -32,9 +31,13 @@ export function push_renderer(value) { * @returns {T} */ export function without_renderer(fn) { - if (current_renderer === null) return fn(); - let previous_renderer = current_renderer; + if (current_renderer === null) { + return fn(); + } + + var previous_renderer = current_renderer; current_renderer = null; + try { return fn(); } finally {