fix(lexer): Prevent deadlock with unclosed tag
This commit is contained in:
committed by
Kyle Fuller
parent
65a461d0a1
commit
584ed916ab
@@ -90,6 +90,7 @@ class Scanner {
|
|||||||
index = content.index(after: index)
|
index = content.index(after: index)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content = ""
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ func testLexer() {
|
|||||||
let lexer = Lexer(templateString: "{# Comment #}")
|
let lexer = Lexer(templateString: "{# Comment #}")
|
||||||
let tokens = lexer.tokenize()
|
let tokens = lexer.tokenize()
|
||||||
|
|
||||||
try expect(tokens.count) == (1)
|
try expect(tokens.count) == 1
|
||||||
try expect(tokens.first) == .comment(value: "Comment")
|
try expect(tokens.first) == .comment(value: "Comment")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,6 +28,14 @@ func testLexer() {
|
|||||||
try expect(tokens.first) == .variable(value: "Variable")
|
try expect(tokens.first) == .variable(value: "Variable")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$0.it("can tokenize unclosed tag by ignoring it") {
|
||||||
|
let lexer = Lexer(templateString: "{{ thing")
|
||||||
|
let tokens = lexer.tokenize()
|
||||||
|
|
||||||
|
try expect(tokens.count) == 1
|
||||||
|
try expect(tokens.first) == .text(value: "")
|
||||||
|
}
|
||||||
|
|
||||||
$0.it("can tokenize a mixture of content") {
|
$0.it("can tokenize a mixture of content") {
|
||||||
let lexer = Lexer(templateString: "My name is {{ name }}.")
|
let lexer = Lexer(templateString: "My name is {{ name }}.")
|
||||||
let tokens = lexer.tokenize()
|
let tokens = lexer.tokenize()
|
||||||
|
|||||||
Reference in New Issue
Block a user