Browse Source

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)
Linus Groh 4 năm trước cách đây
mục cha
commit
9f036959e8
1 tập tin đã thay đổi với 2 bổ sung4 xóa
  1. 2 4
      Libraries/LibJS/Parser.cpp

+ 2 - 4
Libraries/LibJS/Parser.cpp

@@ -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) {