diff --git a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js index a424d9c65c..e5e51024ee 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js @@ -165,6 +165,7 @@ export function client_component(analysis, options) { state_fields: new Map(), transform: {}, in_constructor: false, + in_derived: false, instance_level_snippets: [], module_level_snippets: [], @@ -703,6 +704,7 @@ export function client_module(analysis, options) { state_fields: new Map(), transform: {}, in_constructor: false, + in_derived: false, is_instance: false }; diff --git a/packages/svelte/src/compiler/phases/3-transform/client/types.d.ts b/packages/svelte/src/compiler/phases/3-transform/client/types.d.ts index 4b099eed52..e691be169b 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/types.d.ts +++ b/packages/svelte/src/compiler/phases/3-transform/client/types.d.ts @@ -21,6 +21,11 @@ export interface ClientTransformState extends TransformState { */ readonly in_constructor: boolean; + /** + * True if we're directly inside a `$derived(...)` expression (but not `$derived.by(...)`) + */ + readonly in_derived: boolean; + /** `true` if we're transforming the contents of `