diff --git a/.changeset/loud-ravens-drop.md b/.changeset/loud-ravens-drop.md new file mode 100644 index 0000000000..59fb1618c5 --- /dev/null +++ b/.changeset/loud-ravens-drop.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: handle nested script tags 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 124eee0a52..5102e62c09 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 @@ -84,7 +84,10 @@ export function client_component(source, analysis, options) { }, legacy_reactive_statements: new Map(), metadata: { - template_needs_import_node: false, + context: { + template_needs_import_node: false, + template_contains_script_tag: false + }, namespace: options.namespace, bound_contenteditable: 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 14b628a89d..96fce18986 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 @@ -47,9 +47,22 @@ export interface ComponentClientTransformState extends ClientTransformState { readonly template: string[]; readonly metadata: { namespace: Namespace; - /** `true` if the HTML template needs to be instantiated with `importNode` */ - template_needs_import_node: boolean; bound_contenteditable: boolean; + /** + * Stuff that is set within the children of one `create_block` that is relevant + * to said `create_block`. Shouldn't be destructured or otherwise spread unless + * inside `create_block` to keep the object reference intact (it's also nested + * within `metadata` for this reason). + */ + context: { + /** `true` if the HTML template needs to be instantiated with `importNode` */ + template_needs_import_node: boolean; + /** + * `true` if HTML template contains a ` +