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
Notes: github-actions[bot] 2024-12-26 16:24:04 +00:00
2 changed files with 9 additions and 1 deletions

View file

@ -207,6 +207,15 @@ describe("shorthanded properties with special names", () => {
});
test("async functions as properties", () => {
expect("({ async async() {} });").toEval();
expect('"use strict"; ({ async async() {} });').toEval();
expect("({ async async });").not.toEval();
expect("({ async async, });").not.toEval();
expect("({ async async() });").not.toEval();
expect("({ async async: 0 });").not.toEval();
expect("({ async async = 0 });").not.toEval();
expect("({ async foo });").not.toEval();
expect("({ async foo, });").not.toEval();
expect("({ async foo() });").not.toEval();