From a5ea12ee9313cf3f117b43ca38d3a594b888cbb2 Mon Sep 17 00:00:00 2001 From: Siddhesh Kabra <146343711+Xsidz@users.noreply.github.com> Date: Tue, 18 Aug 2026 21:04:51 +0530 Subject: [PATCH] fix: skip Program comment nodes in migration to prevent crash (#18656) Fixes #18304 The parent of a declaration could be the Program, on which HTML comments are added, which subsequently crashes the funciton. Ignore such comments. --------- Co-authored-by: Simon Holthausen --- .changeset/fix-migrate-comment-no-position.md | 5 +++++ packages/svelte/src/compiler/migrate/index.js | 7 ++++++- .../tests/migrate/samples/props-export-alias/input.svelte | 1 + .../tests/migrate/samples/props-export-alias/output.svelte | 1 + 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-migrate-comment-no-position.md diff --git a/.changeset/fix-migrate-comment-no-position.md b/.changeset/fix-migrate-comment-no-position.md new file mode 100644 index 0000000000..fa9981dc60 --- /dev/null +++ b/.changeset/fix-migrate-comment-no-position.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ignore comments of Program node during migration script diff --git a/packages/svelte/src/compiler/migrate/index.js b/packages/svelte/src/compiler/migrate/index.js index 0370155c12..3baef3ecae 100644 --- a/packages/svelte/src/compiler/migrate/index.js +++ b/packages/svelte/src/compiler/migrate/index.js @@ -1590,7 +1590,12 @@ function migrate_slot_usage(node, path, state) { */ function extract_type_and_comment(declarator, state, path) { const str = state.str; - const parent = path.at(-1); + let parent = path.at(-1); + + if (parent?.type === 'Program') { + // We don't want comments from the program node + parent = undefined; + } // Try to find jsdoc above the declaration let comment_node = /** @type {Node} */ (parent)?.leadingComments?.at(-1); diff --git a/packages/svelte/tests/migrate/samples/props-export-alias/input.svelte b/packages/svelte/tests/migrate/samples/props-export-alias/input.svelte index 1cb57ef5fd..fc06166e21 100644 --- a/packages/svelte/tests/migrate/samples/props-export-alias/input.svelte +++ b/packages/svelte/tests/migrate/samples/props-export-alias/input.svelte @@ -1,3 +1,4 @@ +