diff --git a/src/parse/state/tag.ts b/src/parse/state/tag.ts index 1ed7b3d1e8..64108057ce 100644 --- a/src/parse/state/tag.ts +++ b/src/parse/state/tag.ts @@ -283,6 +283,8 @@ function readTagName(parser: Parser) { const start = parser.index; if (parser.read(SELF)) { + parser.index -= 1; + // check we're inside a block, otherwise this // will cause infinite recursion let i = parser.stack.length; @@ -306,7 +308,10 @@ function readTagName(parser: Parser) { return 'svelte:self'; } - if (parser.read(COMPONENT)) return 'svelte:component'; + if (parser.read(COMPONENT)) { + parser.index -= 1; + return 'svelte:component'; + } const name = parser.readUntil(/(\s|\/|>)/);