diff --git a/packages/svelte/src/internal/server/render-context.js b/packages/svelte/src/internal/server/render-context.js index 1296c25fab..d75b2652b1 100644 --- a/packages/svelte/src/internal/server/render-context.js +++ b/packages/svelte/src/internal/server/render-context.js @@ -29,11 +29,11 @@ function get_render_context_safe() { } /** - * @param {RenderContext['owner']} owner + * @param {boolean} rendered * @param {UnevalReplacer | undefined} replacer * @returns {RenderContext} */ -function create_render_context(owner, replacer) { +function create_render_context(rendered, replacer) { return { warp: { values: new Map(), @@ -41,8 +41,7 @@ function create_render_context(owner, replacer) { comparisons: [], emitted: false }, - owner, - rendered: owner === 'render', + rendered, replacer }; } @@ -57,8 +56,7 @@ function create_render_context(owner, replacer) { export async function with_render_context(fn) { const existing = get_render_context_safe(); - // a `render` inside another `render` (rather than inside `withWarp`) gets its own context - if (existing?.owner === 'withWarp') { + if (existing !== null) { if (existing.rendered) { e.warp_context_already_rendered(); } @@ -68,7 +66,7 @@ export async function with_render_context(fn) { } await init_render_context(); - return run(create_render_context('render', undefined), fn); + return run(create_render_context(true, undefined), fn); } /** @@ -87,7 +85,7 @@ export async function withWarp(fn, options = {}) { } await init_render_context(); - return run(create_render_context('withWarp', options.replacer), async () => fn()); + return run(create_render_context(false, options.replacer), async () => fn()); } /** diff --git a/packages/svelte/src/internal/server/types.d.ts b/packages/svelte/src/internal/server/types.d.ts index 2d46c0dde2..082c43e27c 100644 --- a/packages/svelte/src/internal/server/types.d.ts +++ b/packages/svelte/src/internal/server/types.d.ts @@ -31,8 +31,6 @@ export interface WarpStore { export interface RenderContext { warp: WarpStore; - /** Whether this context was created by `render` or by `withWarp` */ - owner: 'render' | 'withWarp'; /** Whether a `render` has claimed this context. Each context can only be rendered once */ rendered: boolean; /** The `replacer` passed to `withWarp` */