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);