From 0dc0eef4c5b405db83a8dff4ad44e854c62eaca7 Mon Sep 17 00:00:00 2001 From: Phaqui Date: Fri, 29 Jan 2021 02:45:14 +0100 Subject: [PATCH] Fix 5858: Class binding names cannot be empty --- src/compiler/parse/state/tag.ts | 7 +++++++ .../samples/error-empty-class-binding-name/error.json | 10 ++++++++++ .../error-empty-class-binding-name/input.svelte | 1 + 3 files changed, 18 insertions(+) create mode 100644 test/parser/samples/error-empty-class-binding-name/error.json create mode 100644 test/parser/samples/error-empty-class-binding-name/input.svelte diff --git a/src/compiler/parse/state/tag.ts b/src/compiler/parse/state/tag.ts index 696a47b649..d06c3b9c03 100644 --- a/src/compiler/parse/state/tag.ts +++ b/src/compiler/parse/state/tag.ts @@ -387,6 +387,13 @@ function read_attribute(parser: Parser, unique_names: Set) { }, start); } + if (type === 'Class' && directive_name === "") { + parser.error({ + code: 'invalid-class-directive-value', + message: 'Class binding name cannot be empty' + }, start + colon_index + 1); + } + if (value[0]) { if ((value as any[]).length > 1 || value[0].type === 'Text') { parser.error({ diff --git a/test/parser/samples/error-empty-class-binding-name/error.json b/test/parser/samples/error-empty-class-binding-name/error.json new file mode 100644 index 0000000000..69e4667f7e --- /dev/null +++ b/test/parser/samples/error-empty-class-binding-name/error.json @@ -0,0 +1,10 @@ +{ + "code": "invalid-class-directive-value", + "message": "Class binding name cannot be empty", + "start": { + "line": 1, + "column": 10, + "character": 10 + }, + "pos": 10 +} diff --git a/test/parser/samples/error-empty-class-binding-name/input.svelte b/test/parser/samples/error-empty-class-binding-name/input.svelte new file mode 100644 index 0000000000..b2a60759e7 --- /dev/null +++ b/test/parser/samples/error-empty-class-binding-name/input.svelte @@ -0,0 +1 @@ +

Hello!