From 9f036959e867e52bbec12a384e00f21ee0a07be2 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sat, 24 Oct 2020 12:48:25 +0100 Subject: [PATCH] LibJS: Report correct line/column for string literal syntax errors We're passing a token to this function, so m_current_token is actually the next token - which leads to incorrect line/column numbers for string literal syntax errors: "\u" ^ Uncaught exception: [SyntaxError]: Malformed unicode escape sequence (line: 1, column: 5) Rather than: "\u" ^ Uncaught exception: [SyntaxError]: Malformed unicode escape sequence (line: 1, column: 1) --- Libraries/LibJS/Parser.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Libraries/LibJS/Parser.cpp b/Libraries/LibJS/Parser.cpp index c2b6e340c4..806d4aa73b 100644 --- a/Libraries/LibJS/Parser.cpp +++ b/Libraries/LibJS/Parser.cpp @@ -849,10 +849,8 @@ NonnullRefPtr Parser::parse_string_literal(Token token) message = "Unicode code_point must not be greater than 0x10ffff in escape sequence"; } - syntax_error( - message, - m_parser_state.m_current_token.line_number(), - m_parser_state.m_current_token.line_column()); + if (!message.is_empty()) + syntax_error(message, token.line_number(), token.line_column()); } if (m_parser_state.m_use_strict_directive == UseStrictDirectiveState::Looking) {