mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 09:58:11 +00:00
LibJS: Don't match async \n function as an async function declaration
This commit is contained in:
parent
c2ebaa9d87
commit
5010d4c20c
2 changed files with 27 additions and 5 deletions
|
@ -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", () => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue