From 3ee8e0b14c9c6549e293eea498ec0659969df513 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Wed, 25 Sep 2024 12:24:40 +0100 Subject: [PATCH] fix: validation should not fail on anonymous declarations (#13393) * fix: validation should not fail on anonymous declarations * feedback --- .changeset/twelve-bears-worry.md | 5 +++++ .../compiler/phases/2-analyze/visitors/ClassDeclaration.js | 2 +- .../phases/2-analyze/visitors/FunctionDeclaration.js | 2 +- .../validator/samples/anonymous-declarations/class.svelte.js | 1 + .../validator/samples/anonymous-declarations/errors.json | 1 + .../samples/anonymous-declarations/function.svelte.js | 1 + .../validator/samples/anonymous-declarations/input.svelte | 4 ++++ 7 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changeset/twelve-bears-worry.md create mode 100644 packages/svelte/tests/validator/samples/anonymous-declarations/class.svelte.js create mode 100644 packages/svelte/tests/validator/samples/anonymous-declarations/errors.json create mode 100644 packages/svelte/tests/validator/samples/anonymous-declarations/function.svelte.js create mode 100644 packages/svelte/tests/validator/samples/anonymous-declarations/input.svelte diff --git a/.changeset/twelve-bears-worry.md b/.changeset/twelve-bears-worry.md new file mode 100644 index 0000000000..c12dd9d366 --- /dev/null +++ b/.changeset/twelve-bears-worry.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: validation should not fail on anonymous declarations diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js index ec865c8313..20925a65b7 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js @@ -8,7 +8,7 @@ import { validate_identifier_name } from './shared/utils.js'; * @param {Context} context */ export function ClassDeclaration(node, context) { - if (context.state.analysis.runes) { + if (context.state.analysis.runes && node.id !== null) { validate_identifier_name(context.state.scope.get(node.id.name)); } diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/FunctionDeclaration.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/FunctionDeclaration.js index 2e996431d1..83e3167be9 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/FunctionDeclaration.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/FunctionDeclaration.js @@ -8,7 +8,7 @@ import { validate_identifier_name } from './shared/utils.js'; * @param {Context} context */ export function FunctionDeclaration(node, context) { - if (context.state.analysis.runes) { + if (context.state.analysis.runes && node.id !== null) { validate_identifier_name(context.state.scope.get(node.id.name)); } diff --git a/packages/svelte/tests/validator/samples/anonymous-declarations/class.svelte.js b/packages/svelte/tests/validator/samples/anonymous-declarations/class.svelte.js new file mode 100644 index 0000000000..a6e68e9838 --- /dev/null +++ b/packages/svelte/tests/validator/samples/anonymous-declarations/class.svelte.js @@ -0,0 +1 @@ +export default class {} diff --git a/packages/svelte/tests/validator/samples/anonymous-declarations/errors.json b/packages/svelte/tests/validator/samples/anonymous-declarations/errors.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/packages/svelte/tests/validator/samples/anonymous-declarations/errors.json @@ -0,0 +1 @@ +[] diff --git a/packages/svelte/tests/validator/samples/anonymous-declarations/function.svelte.js b/packages/svelte/tests/validator/samples/anonymous-declarations/function.svelte.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/svelte/tests/validator/samples/anonymous-declarations/function.svelte.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/svelte/tests/validator/samples/anonymous-declarations/input.svelte b/packages/svelte/tests/validator/samples/anonymous-declarations/input.svelte new file mode 100644 index 0000000000..19ff5b5c89 --- /dev/null +++ b/packages/svelte/tests/validator/samples/anonymous-declarations/input.svelte @@ -0,0 +1,4 @@ +