LibJS: Disallow member expression in binding pattern as parameters

This commit is contained in:
davidot 2021-11-26 23:37:14 +01:00 committed by Linus Groh
commit 156dfe3d62
Notes: sideshowbarker 2024-07-17 23:18:23 +09:00
2 changed files with 17 additions and 1 deletions

View file

@ -46,6 +46,20 @@ describe("parsing", () => {
expect(`const [ a, [ ...{length} ] ] = [];`).toEval();
expect(`let [ a, [ ...{length} ] ] = [];`).toEval();
});
test("function parameters cannot use member expresssions", () => {
expect("function f([a.b]) {}").not.toEval();
expect("function f([b[0]]) {}").not.toEval();
expect("function f({c:a.b}) {}").not.toEval();
expect("function f({a:b[0]}) {}").not.toEval();
expect("([a.b]) => 1").not.toEval();
expect("([b[0]]) => 2").not.toEval();
expect("({c:a.b}) => 3").not.toEval();
expect("({a:b[0]}) => 4").not.toEval();
});
});
describe("evaluating", () => {