@@ -21278,23 +21278,23 @@ <h1>Let, Const, and Using Declarations</h1>
2127821278 <h2>Syntax</h2>
2127921279 <emu-grammar type="definition">
2128021280 LexicalDeclaration[In, Yield, Await] :
21281- LetOrConst BindingList[?In, ?Yield, ?Await, ~Using ] `;`
21281+ LetOrConst BindingList[?In, ?Yield, ?Await] `;`
2128221282 UsingDeclaration[?In, ?Yield, ?Await]
2128321283
2128421284 LetOrConst :
2128521285 `let`
2128621286 `const`
2128721287
2128821288 UsingDeclaration[In, Yield, Await] :
21289- `using` [no LineTerminator here] [lookahead != `await`] BindingList[?In, ?Yield, ?Await, +Using ] `;`
21289+ `using` [no LineTerminator here] [lookahead != `await`] BindingList[?In, ?Yield, ?Await] `;`
2129021290
21291- BindingList[In, Yield, Await, Using ] :
21292- LexicalBinding[?In, ?Yield, ?Await, ?Using ]
21293- BindingList[?In, ?Yield, ?Await, ?Using ] `,` LexicalBinding[?In, ?Yield, ?Await, ?Using ]
21291+ BindingList[In, Yield, Await] :
21292+ LexicalBinding[?In, ?Yield, ?Await]
21293+ BindingList[?In, ?Yield, ?Await] `,` LexicalBinding[?In, ?Yield, ?Await]
2129421294
21295- LexicalBinding[In, Yield, Await, Using ] :
21295+ LexicalBinding[In, Yield, Await] :
2129621296 BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]?
21297- [~Using] BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
21297+ BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
2129821298 </emu-grammar>
2129921299
2130021300 <emu-clause id="sec-let-const-and-using-declarations-static-semantics-early-errors" oldids="sec-let-and-const-declarations-static-semantics-early-errors">
@@ -21329,6 +21329,12 @@ <h1>Static Semantics: Early Errors</h1>
2132921329 It is a Syntax Error if |Initializer| is not present and IsConstantDeclaration of the |LexicalDeclaration| containing this |LexicalBinding| is *true*.
2133021330 </li>
2133121331 </ul>
21332+ <emu-grammar>LexicalBinding : BindingPattern Initializer</emu-grammar>
21333+ <ul>
21334+ <li>
21335+ It is a Syntax Error IsUsingDeclaration of the |LexicalDeclaration| containing this |LexicalBinding| is *true*.
21336+ </li>
21337+ </ul>
2133221338 </emu-clause>
2133321339
2133421340 <emu-clause id="sec-let-const-and-using-declarations-runtime-semantics-evaluation" oldids="sec-let-and-const-declarations-runtime-semantics-evaluation" type="sdo">
@@ -21981,22 +21987,22 @@ <h2>Syntax</h2>
2198121987 <emu-grammar type="definition">
2198221988 ForInOfStatement[Yield, Await, Return] :
2198321989 `for` `(` [lookahead != `let` `[`] LeftHandSideExpression[?Yield, ?Await] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21984- `for` `(` `var` ForBinding[?Yield, ?Await, ~Using ] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21990+ `for` `(` `var` ForBinding[?Yield, ?Await] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2198521991 `for` `(` ForDeclaration[?Yield, ?Await, ~Using] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2198621992 `for` `(` [lookahead ∉ { `let`, `async` `of` }] LeftHandSideExpression[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21987- `for` `(` `var` ForBinding[?Yield, ?Await, ~Using ] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21993+ `for` `(` `var` ForBinding[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2198821994 `for` `(` [lookahead != `using` `of`] ForDeclaration[?Yield, ?Await, +Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2198921995 [+Await] `for` `await` `(` [lookahead != `let`] LeftHandSideExpression[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21990- [+Await] `for` `await` `(` `var` ForBinding[?Yield, ?Await, ~Using ] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
21996+ [+Await] `for` `await` `(` `var` ForBinding[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2199121997 [+Await] `for` `await` `(` [lookahead != `using` `of`] ForDeclaration[?Yield, ?Await, +Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
2199221998
2199321999 ForDeclaration[Yield, Await, Using] :
21994- LetOrConst ForBinding[?Yield, ?Await, ~Using ]
21995- [+Using] `using` [no LineTerminator here] [lookahead != `await`] ForBinding[?Yield, ?Await, +Using ]
22000+ LetOrConst ForBinding[?Yield, ?Await]
22001+ [+Using] `using` [no LineTerminator here] [lookahead != `await`] ForBinding[?Yield, ?Await]
2199622002
21997- ForBinding[Yield, Await, Using ] :
22003+ ForBinding[Yield, Await] :
2199822004 BindingIdentifier[?Yield, ?Await]
21999- [~Using] BindingPattern[?Yield, ?Await]
22005+ BindingPattern[?Yield, ?Await]
2200022006 </emu-grammar>
2200122007 <emu-note>
2200222008 <p>This section is extended by Annex <emu-xref href="#sec-initializers-in-forin-statement-heads"></emu-xref>.</p>
@@ -22059,6 +22065,12 @@ <h1>Static Semantics: Early Errors</h1>
2205922065 It is a Syntax Error if the BoundNames of |ForDeclaration| contains any duplicate entries.
2206022066 </li>
2206122067 </ul>
22068+ <emu-grammar>ForBinding : BindingPattern</emu-grammar>
22069+ <ul>
22070+ <li>
22071+ It is a Syntax Error if this |ForBinding| is contained within a |ForDeclaration| and IsUsingDeclaration of that |ForDeclaration| is *true*.
22072+ </li>
22073+ </ul>
2206222074 </emu-clause>
2206322075
2206422076 <emu-clause id="sec-static-semantics-isdestructuring" oldids="sec-static-semantics-static-semantics-isdestructuring,sec-for-in-and-for-of-statements-static-semantics-isdestructuring" type="sdo">
0 commit comments