diff --git a/Userland/Libraries/LibJS/Parser.cpp b/Userland/Libraries/LibJS/Parser.cpp index 730207be93..80c47e7fa6 100644 --- a/Userland/Libraries/LibJS/Parser.cpp +++ b/Userland/Libraries/LibJS/Parser.cpp @@ -1449,7 +1449,7 @@ NonnullRefPtr Parser::parse_object_expression() function_kind = FunctionKind::Generator; } else if (match_identifier()) { auto identifier = consume(); - if (identifier.original_value() == "async" && match_property_key()) { + if (identifier.original_value() == "async" && match_property_key() && !m_state.current_token.trivia_contains_line_terminator()) { property_type = ObjectProperty::Type::KeyValue; property_name = parse_property_key(); function_kind = FunctionKind::Async; diff --git a/Userland/Libraries/LibJS/Tests/syntax/async-await.js b/Userland/Libraries/LibJS/Tests/syntax/async-await.js index 6173c7d05a..33224aa86d 100644 --- a/Userland/Libraries/LibJS/Tests/syntax/async-await.js +++ b/Userland/Libraries/LibJS/Tests/syntax/async-await.js @@ -16,7 +16,7 @@ describe("parsing object literal async functions", () => { test("simple", () => { expect(`x = { async foo() { } }`).toEval(); expect(`x = { async - foo() { } }`).toEval(); + foo() { } }`).not.toEval(); }); test("await expression", () => { expect(`x = { foo() { await bar(); } }`).not.toEval();