From 45e48602f6a8bc175c5fa477ecd7ae7624c0f40e Mon Sep 17 00:00:00 2001 From: Nic <162764842+Nic-Polumeyv@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:08:05 -0400 Subject: [PATCH] the tables a root keeps are typed as a root's; the module's answer is cast where its option is known on --- packages/svelte/src/compiler/phases/1-parse/js.js | 9 +++++---- packages/svelte/src/compiler/utils/ast.js | 10 +++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/svelte/src/compiler/phases/1-parse/js.js b/packages/svelte/src/compiler/phases/1-parse/js.js index b5ff395474..f15b171df3 100644 --- a/packages/svelte/src/compiler/phases/1-parse/js.js +++ b/packages/svelte/src/compiler/phases/1-parse/js.js @@ -30,12 +30,13 @@ export function parse(source, comments, typescript) { comments.push(/** @type {AST.JSComment} */ (comment)); } // a module read on its own is one piece: its program, in its own scope + const scopes = /** @type {teasel.Scope[]} */ (answer.scopes); keep_tables(answer.node, { node: answer.node, - scope: answer.scopes[0], - scopes: answer.scopes.slice(1), - bindings: answer.bindings, - references: answer.references + scope: scopes[0], + scopes: scopes.slice(1), + bindings: /** @type {teasel.Binding[]} */ (answer.bindings), + references: /** @type {teasel.Reference[]} */ (answer.references) }); return answer.node; diff --git a/packages/svelte/src/compiler/utils/ast.js b/packages/svelte/src/compiler/utils/ast.js index 43e0f4fecb..27cab2e914 100644 --- a/packages/svelte/src/compiler/utils/ast.js +++ b/packages/svelte/src/compiler/utils/ast.js @@ -12,13 +12,13 @@ import { bindingOf } from '@teasel/parser'; const PARSED = Symbol('parsed'); /** - * Keeps the parser's answer on the root it parsed, a script's program or a template's - * expression, pattern, parameter list or declaration, for its tables. + * Keeps the parser's tables on the root they belong to, a script's program or a template's + * expression, pattern, parameter list or declaration. * @param {object} root - * @param {import('@teasel/parser').Parsed} answer + * @param {Tables} tables */ -export function keep_tables(root, answer) { - /** @type {any} */ (root)[PARSED] = answer; +export function keep_tables(root, tables) { + /** @type {any} */ (root)[PARSED] = tables; } /**