From c8e47cc98ddd00ed7cdcc76313fc769867a48c4d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 4 Jun 2025 16:40:30 -0400 Subject: [PATCH] tidy --- .../src/internal/client/dom/blocks/async.js | 18 ++---------------- .../src/internal/client/dom/blocks/boundary.js | 7 +++---- .../src/internal/client/reactivity/deriveds.js | 2 +- .../src/internal/client/reactivity/effects.js | 2 +- 4 files changed, 7 insertions(+), 22 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/async.js b/packages/svelte/src/internal/client/dom/blocks/async.js index 25c37cafb0..669992c2e3 100644 --- a/packages/svelte/src/internal/client/dom/blocks/async.js +++ b/packages/svelte/src/internal/client/dom/blocks/async.js @@ -1,8 +1,5 @@ -/** @import { Effect, TemplateNode, Value } from '#client' */ -/** @import { Batch } from '../../reactivity/batch.js' */ +/** @import { TemplateNode, Value } from '#client' */ import { async_derived } from '../../reactivity/deriveds.js'; -import { current_batch } from '../../reactivity/batch.js'; -import { active_effect, schedule_effect } from '../../runtime.js'; import { capture, get_pending_boundary } from './boundary.js'; /** @@ -13,26 +10,15 @@ import { capture, get_pending_boundary } from './boundary.js'; export function async(node, expressions, fn) { // TODO handle hydration - var batch = /** @type {Batch} */ (current_batch); - var effect = /** @type {Effect} */ (active_effect); - - var boundary = get_pending_boundary(effect); - var ran = boundary.ran; - var restore = capture(); + var boundary = get_pending_boundary(); boundary.increment(); Promise.all(expressions.map((fn) => async_derived(fn))).then((result) => { - if (ran) batch.restore(); - restore(); fn(node, ...result); - // TODO is this necessary? - schedule_effect(effect); - - if (ran) batch.flush(); boundary.decrement(); }); } diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index 2f7c0d2e4d..cb9fc6ef6b 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -327,9 +327,8 @@ function move_effect(effect, fragment) { } } -/** @param {Effect} effect */ -export function get_pending_boundary(effect) { - let boundary = effect.b; +export function get_pending_boundary() { + var boundary = /** @type {Effect} */ (active_effect).b; while (boundary !== null && !boundary.has_pending_snippet()) { boundary = boundary.parent; @@ -367,7 +366,7 @@ export function capture(track = true) { // TODO we should probably be incrementing the current batch, not the boundary? export function suspend() { - let boundary = get_pending_boundary(/** @type {Effect} */ (active_effect)); + let boundary = get_pending_boundary(); boundary.increment(); diff --git a/packages/svelte/src/internal/client/reactivity/deriveds.js b/packages/svelte/src/internal/client/reactivity/deriveds.js index 4a44636894..a264af2a73 100644 --- a/packages/svelte/src/internal/client/reactivity/deriveds.js +++ b/packages/svelte/src/internal/client/reactivity/deriveds.js @@ -104,7 +104,7 @@ export function async_derived(fn, location) { throw new Error('TODO cannot create unowned async derived'); } - let boundary = get_pending_boundary(parent); + let boundary = get_pending_boundary(); var promise = /** @type {Promise} */ (/** @type {unknown} */ (undefined)); var signal = source(/** @type {V} */ (UNINITIALIZED)); diff --git a/packages/svelte/src/internal/client/reactivity/effects.js b/packages/svelte/src/internal/client/reactivity/effects.js index 431e819dbc..f3d4a9e382 100644 --- a/packages/svelte/src/internal/client/reactivity/effects.js +++ b/packages/svelte/src/internal/client/reactivity/effects.js @@ -346,7 +346,7 @@ export function template_effect(fn, sync = [], async = [], d = derived) { var batch = /** @type {Batch} */ (current_batch); var restore = capture(); - var boundary = get_pending_boundary(parent); + var boundary = get_pending_boundary(); var ran = boundary.ran; Promise.all(async.map((expression) => async_derived(expression))).then((result) => {