From f4055960c562ca6cfd0b594eb95b7e2d8c571abf Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 10 Jul 2025 12:30:27 -0400 Subject: [PATCH] tidy up --- .../svelte/src/internal/client/context.js | 21 +++++++------------ .../svelte/src/internal/client/types.d.ts | 2 -- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/packages/svelte/src/internal/client/context.js b/packages/svelte/src/internal/client/context.js index b07ae27e51..9f948de18f 100644 --- a/packages/svelte/src/internal/client/context.js +++ b/packages/svelte/src/internal/client/context.js @@ -1,17 +1,12 @@ -/** @import { ComponentContext, DevStackEntry } from '#client' */ - +/** @import { ComponentContext, DevStackEntry, Effect } from '#client' */ import { DEV } from 'esm-env'; import { lifecycle_outside_component } from '../shared/errors.js'; import * as e from './errors.js'; -import { - active_effect, - active_reaction, - set_active_effect, - set_active_reaction -} from './runtime.js'; -import { create_user_effect, teardown } from './reactivity/effects.js'; +import { active_effect, active_reaction } from './runtime.js'; +import { create_user_effect } from './reactivity/effects.js'; import { async_mode_flag, legacy_mode_flag } from '../flags/index.js'; import { FILENAME } from '../../constants.js'; +import { BRANCH_EFFECT, EFFECT_RAN } from './constants.js'; /** @type {ComponentContext | null} */ export let component_context = null; @@ -105,7 +100,10 @@ export function setContext(key, context) { const context_map = get_or_init_context_map('setContext'); if (async_mode_flag) { - if (/** @type {ComponentContext} */ (component_context).m) { + var flags = /** @type {Effect} */ (active_effect).f; + var valid = !active_reaction && (flags & BRANCH_EFFECT) !== 0 && (flags & EFFECT_RAN) === 0; + + if (!valid) { e.set_context_after_init(); } } @@ -150,7 +148,6 @@ export function push(props, runes = false, fn) { p: component_context, c: null, e: null, - m: false, s: props, x: null, l: legacy_mode_flag && !runes ? { s: null, u: null, $: [] } : null @@ -184,8 +181,6 @@ export function pop(component) { context.x = component; } - context.m = true; - component_context = context.p; if (DEV) { diff --git a/packages/svelte/src/internal/client/types.d.ts b/packages/svelte/src/internal/client/types.d.ts index a7ef638ea3..d24218c4d3 100644 --- a/packages/svelte/src/internal/client/types.d.ts +++ b/packages/svelte/src/internal/client/types.d.ts @@ -16,8 +16,6 @@ export type ComponentContext = { c: null | Map; /** deferred effects */ e: null | Array<() => void | (() => void)>; - /** mounted */ - m: boolean; /** * props — needed for legacy mode lifecycle functions, and for `createEventDispatcher` * @deprecated remove in 6.0