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)
This commit is contained in:
Linus Groh 2020-10-24 12:48:25 +01:00 committed by Andreas Kling
parent d6f8c52245
commit 9f036959e8
Notes: sideshowbarker 2024-07-19 01:46:34 +09:00

View file

@ -849,10 +849,8 @@ NonnullRefPtr<StringLiteral> 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) {