Skip to content

Commit ac8718b

Browse files
committed
Compile error when passing empty directive names
1 parent 086cff2 commit ac8718b

File tree

5 files changed

+18
-18
lines changed

5 files changed

+18
-18
lines changed

src/compiler/parse/state/tag.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,13 @@ function read_attribute(parser: Parser, unique_names: Set<string>) {
378378
if (type) {
379379
const [directive_name, ...modifiers] = name.slice(colon_index + 1).split('|');
380380

381+
if (directive_name === '') {
382+
parser.error({
383+
code: 'empty-directive-name',
384+
message: `${type} name cannot be empty`
385+
}, start+colon_index);
386+
}
387+
381388
if (type === 'Binding' && directive_name !== 'this') {
382389
check_unique(directive_name);
383390
} else if (type !== 'EventHandler' && type !== 'Action') {
@@ -391,13 +398,6 @@ function read_attribute(parser: Parser, unique_names: Set<string>) {
391398
}, start);
392399
}
393400

394-
if (type === 'Class' && directive_name === '') {
395-
parser.error({
396-
code: 'invalid-class-directive',
397-
message: 'Class binding name cannot be empty'
398-
}, start + colon_index + 1);
399-
}
400-
401401
if (value[0]) {
402402
if ((value as any[]).length > 1 || value[0].type === 'Text') {
403403
parser.error({

test/parser/samples/error-empty-classname-binding/error.json

Lines changed: 0 additions & 10 deletions
This file was deleted.

test/parser/samples/error-empty-classname-binding/input.svelte

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"code": "empty-directive-name",
3+
"message": "Action name cannot be empty",
4+
"start": {
5+
"line": 1,
6+
"column": 7,
7+
"character": 7
8+
},
9+
"pos": 7
10+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<h1 use:>Hello</h1>

0 commit comments

Comments
 (0)