Skip to content

Commit 1b33248

Browse files
authored
#6299 - Throw a compile error when passing an empty directive name (#6300)
* Compile error when passing empty directive names * Revert "Compile error when passing empty directive names" This reverts commit ac8718b. * Compile error when passing empty directive names * Adjust empty-directive-name error offset
1 parent 2357e64 commit 1b33248

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

src/compiler/parse/state/tag.ts

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

388+
if (directive_name === '') {
389+
parser.error({
390+
code: 'empty-directive-name',
391+
message: `${type} name cannot be empty`
392+
}, start + colon_index + 1);
393+
}
394+
388395
if (type === 'Binding' && directive_name !== 'this') {
389396
check_unique(directive_name);
390397
} else if (type !== 'EventHandler' && type !== 'Action') {
@@ -398,13 +405,6 @@ function read_attribute(parser: Parser, unique_names: Set<string>) {
398405
}, start);
399406
}
400407

401-
if (type === 'Class' && directive_name === '') {
402-
parser.error({
403-
code: 'invalid-class-directive',
404-
message: 'Class binding name cannot be empty'
405-
}, start + colon_index + 1);
406-
}
407-
408408
if (value[0]) {
409409
if ((value as any[]).length > 1 || value[0].type === 'Text') {
410410
parser.error({

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"code": "invalid-class-directive",
3-
"message": "Class binding name cannot be empty",
2+
"code": "empty-directive-name",
3+
"message": "Class name cannot be empty",
44
"start": {
55
"line": 1,
66
"column": 10,
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": 8,
7+
"character": 8
8+
},
9+
"pos": 8
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)