| Index: src/preparser.h
|
| diff --git a/src/preparser.h b/src/preparser.h
|
| index 18004a5096d4c20f0ea81470c4a2f69681289fbb..e3868ff665a088efa431b4ba025fb82cf3d3d3e0 100644
|
| --- a/src/preparser.h
|
| +++ b/src/preparser.h
|
| @@ -2875,11 +2875,17 @@ ParserBase<Traits>::ParseTemplateLiteral(ExpressionT tag, int start, bool* ok) {
|
|
|
| do {
|
| next = peek();
|
| - if (!next) {
|
| + if (next == Token::EOS) {
|
| ReportMessageAt(Scanner::Location(start, peek_position()),
|
| "unterminated_template");
|
| *ok = false;
|
| return Traits::EmptyExpression();
|
| + } else if (next == Token::ILLEGAL) {
|
| + Traits::ReportMessageAt(
|
| + Scanner::Location(position() + 1, peek_position()),
|
| + "unexpected_token", "ILLEGAL", false);
|
| + *ok = false;
|
| + return Traits::EmptyExpression();
|
| }
|
|
|
| int expr_pos = peek_position();
|
| @@ -2898,11 +2904,17 @@ ParserBase<Traits>::ParseTemplateLiteral(ExpressionT tag, int start, bool* ok) {
|
| next = scanner()->ScanTemplateContinuation();
|
| Next();
|
|
|
| - if (!next) {
|
| + if (next == Token::EOS) {
|
| ReportMessageAt(Scanner::Location(start, position()),
|
| "unterminated_template");
|
| *ok = false;
|
| return Traits::EmptyExpression();
|
| + } else if (next == Token::ILLEGAL) {
|
| + Traits::ReportMessageAt(
|
| + Scanner::Location(position() + 1, peek_position()),
|
| + "unexpected_token", "ILLEGAL", false);
|
| + *ok = false;
|
| + return Traits::EmptyExpression();
|
| }
|
|
|
| Traits::AddTemplateSpan(&ts, next == Token::TEMPLATE_TAIL);
|
|
|