diff options
Diffstat (limited to 'Userland/Libraries/LibJS/Tests/syntax')
-rw-r--r-- | Userland/Libraries/LibJS/Tests/syntax/async-await.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Userland/Libraries/LibJS/Tests/syntax/async-await.js b/Userland/Libraries/LibJS/Tests/syntax/async-await.js index 2512be6be2..652f0e810e 100644 --- a/Userland/Libraries/LibJS/Tests/syntax/async-await.js +++ b/Userland/Libraries/LibJS/Tests/syntax/async-await.js @@ -1,8 +1,9 @@ describe("parsing freestanding async functions", () => { test("simple", () => { expect(`async function foo() {}`).toEval(); + // Although it does not create an async function it is valid. expect(`async - function foo() {}`).not.toEval(); + function foo() {}`).toEval(); }); test("await expression", () => { expect(`async function foo() { await bar(); }`).toEval(); @@ -167,6 +168,18 @@ describe("non async function declaration usage of async still works", () => { const evalResult = eval("async >= 2"); expect(evalResult).toBeTrue(); }); + + test("async with line ending does not create a function", () => { + expect(() => { + // The ignore is needed otherwise prettier puts a ';' after async. + // prettier-ignore + async + function f() {} + }).toThrowWithMessage(ReferenceError, "'async' is not defined"); + + expect(`async + function f() { await 3; }`).not.toEval(); + }); }); describe("await cannot be used in class static init blocks", () => { |