From 9da1d6119c76200abecbd4ef4f80ae8f3e5ae3cf Mon Sep 17 00:00:00 2001 From: Stuart Cook Date: Sat, 8 May 2021 06:16:34 +1000 Subject: [PATCH] Add more tests for `for (async of` edge-cases (#2983) --- .../for-of/head-lhs-async-escaped.js | 18 ++++++++++++++++++ .../statements/for-of/head-lhs-async-parens.js | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 test/language/statements/for-of/head-lhs-async-escaped.js create mode 100644 test/language/statements/for-of/head-lhs-async-parens.js diff --git a/test/language/statements/for-of/head-lhs-async-escaped.js b/test/language/statements/for-of/head-lhs-async-escaped.js new file mode 100644 index 00000000000..048b9d0eb92 --- /dev/null +++ b/test/language/statements/for-of/head-lhs-async-escaped.js @@ -0,0 +1,18 @@ +// Copyright (C) 2021 Stuart Cook. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-for-in-and-for-of-statements +description: > + The left-hand-side of a for-of loop may be the identifier `async` written + with an escape sequence. +info: | + ForInOfStatement[Yield, Await, Return] : + for ( [lookahead ∉ { let, async of }] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] +---*/ + +let async; + +for (\u0061sync of [7]); + +assert.sameValue(async, 7); diff --git a/test/language/statements/for-of/head-lhs-async-parens.js b/test/language/statements/for-of/head-lhs-async-parens.js new file mode 100644 index 00000000000..ba7cf3e44cd --- /dev/null +++ b/test/language/statements/for-of/head-lhs-async-parens.js @@ -0,0 +1,18 @@ +// Copyright (C) 2021 Stuart Cook. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-for-in-and-for-of-statements +description: > + The left-hand-side of a for-of loop may be the identifier `async` + surrounded by parentheses. +info: | + ForInOfStatement[Yield, Await, Return] : + for ( [lookahead ∉ { let, async of }] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] +---*/ + +let async; + +for ((async) of [7]); + +assert.sameValue(async, 7);