diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 53e5516bf6..b44c2fcda5 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -165,6 +165,7 @@ "esbuild": "^0.28.1", "rollup": "^4.59.0", "source-map": "^0.7.4", + "acorn": "^8.18.0", "tinyglobby": "^0.2.12", "typescript": "^5.5.4", "vitest": "^4.1.7", @@ -173,9 +174,8 @@ "dependencies": { "@jridgewell/remapping": "^2.3.5", "@jridgewell/sourcemap-codec": "^1.6.0", - "@sveltejs/acorn-typescript": "^1.0.13", + "@teasel/parser": "link:../../../teasel/bindings/node", "@types/estree": "^1.0.9", - "acorn": "^8.18.0", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", diff --git a/packages/svelte/src/compiler/phases/1-parse/acorn.js b/packages/svelte/src/compiler/phases/1-parse/acorn.js deleted file mode 100644 index add61ea19f..0000000000 --- a/packages/svelte/src/compiler/phases/1-parse/acorn.js +++ /dev/null @@ -1,289 +0,0 @@ -/** @import { Comment, Program, Statement } from 'estree' */ -/** @import { AST } from '#compiler' */ -/** @import { Parser } from './index.js' */ -import * as acorn from 'acorn'; -import { walk } from 'zimmerframe'; -import { tsPlugin } from '@sveltejs/acorn-typescript'; -import * as e from '../../errors.js'; -import { locator } from '../../state.js'; - -const JSParser = acorn.Parser; -const TSParser = JSParser.extend(tsPlugin()); - -/** - * @typedef {Comment & { - * start: number; - * end: number; - * }} CommentWithLocation - */ - -/** - * @param {string} source - * @param {AST.JSComment[]} comments - * @param {boolean} typescript - * @param {boolean} [is_script] - */ -export function parse(source, comments, typescript, is_script) { - const acorn = typescript ? TSParser : JSParser; - - const { onComment, add_comments } = get_comment_handlers( - source, - /** @type {CommentWithLocation[]} */ (comments) - ); - - // @ts-expect-error - const parse_statement = acorn.prototype.parseStatement; - - // If we're dealing with a