LibJS: Allow async functions named "async" as function properties

For example, https://locals.com/site/discover has a script with an
object of the form:

    var f = {
        parser: {
            sync() {},
            async async() {},
        }
    };

We were previously throwing a syntax error on the async function, as we
specifically did not allow using "async" as a function name here.
This commit is contained in:
Timothy Flynn
2024-12-26 09:09:03 -05:00
committed by Andreas Kling
parent a5455ac121
commit ada36e5c0a
2 changed files with 9 additions and 1 deletions

View File

@@ -2019,7 +2019,6 @@ NonnullRefPtr<ObjectExpression const> Parser::parse_object_expression()
if (lookahead_token.type() != TokenType::ParenOpen && lookahead_token.type() != TokenType::Colon
&& lookahead_token.type() != TokenType::Comma && lookahead_token.type() != TokenType::CurlyClose
&& lookahead_token.type() != TokenType::Async
&& !lookahead_token.trivia_contains_line_terminator()) {
consume(TokenType::Async);
function_kind = FunctionKind::Async;