diff --git a/spec.emu b/spec.emu
index 4edda37..b6fe145 100644
--- a/spec.emu
+++ b/spec.emu
@@ -2101,7 +2101,7 @@ contributors: Ron Buckton, Ecma International
Syntax
LexicalDeclaration[In, Yield, Await] :
- LetOrConst BindingList[?In, ?Yield, ?Await, ~Using] `;`
+ LetOrConst BindingList[?In, ?Yield, ?Await] `;`
UsingDeclaration[?In, ?Yield, ?Await]
LetOrConst :
@@ -2110,17 +2110,16 @@ contributors: Ron Buckton, Ecma International
UsingDeclaration[In, Yield, Await] :
- `using` [no LineTerminator here] [lookahead != `await`] BindingList[?In, ?Yield, ?Await, +Using] `;`
+ `using` [no LineTerminator here] [lookahead != `await`] BindingList[?In, ?Yield, ?Await] `;`
- BindingList[In, Yield, Await, Using] :
- LexicalBinding[?In, ?Yield, ?Await, ?Using]
- BindingList[?In, ?Yield, ?Await, ?Using] `,` LexicalBinding[?In, ?Yield, ?Await, ?Using]
+ BindingList[In, Yield, Await] :
+ LexicalBinding[?In, ?Yield, ?Await]
+ BindingList[?In, ?Yield, ?Await] `,` LexicalBinding[?In, ?Yield, ?Await]
- LexicalBinding[In, Yield, Await, Using] :
+ LexicalBinding[In, Yield, Await] :
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]?
- BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
- [~Using] BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
+ BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
@@ -2155,6 +2154,14 @@ contributors: Ron Buckton, Ecma International
+
+ LexicalBinding : BindingPattern Initializer
+
+
+ -
+ It is a Syntax Error if IsUsingDeclaration of the |LexicalDeclaration| containing this |LexicalBinding| is *true*.
+
+
@@ -2448,25 +2455,37 @@ contributors: Ron Buckton, Ecma International
ForInOfStatement[Yield, Await, Return] :
`for` `(` [lookahead != `let` `[`] LeftHandSideExpression[?Yield, ?Await] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
- `for` `(` `var` ForBinding[?Yield, ?Await, ~Using] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
+ `for` `(` `var` ForBinding[?Yield, ?Await] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
`for` `(` ForDeclaration[?Yield, ?Await, ~Using] `in` Expression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
`for` `(` [lookahead ∉ {`let`, `async` `of`}] LeftHandSideExpression[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
- `for` `(` `var` ForBinding[?Yield, ?Await, ~Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
+ `for` `(` `var` ForBinding[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
`for` `(` [lookahead != `using` `of`] ForDeclaration[?Yield, ?Await, +Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
[+Await] `for` `await` `(` [lookahead != `let`] LeftHandSideExpression[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
- [+Await] `for` `await` `(` `var` ForBinding[?Yield, ?Await, ~Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
+ [+Await] `for` `await` `(` `var` ForBinding[?Yield, ?Await] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
[+Await] `for` `await` `(` [lookahead != `using` `of`] ForDeclaration[?Yield, ?Await, +Using] `of` AssignmentExpression[+In, ?Yield, ?Await] `)` Statement[?Yield, ?Await, ?Return]
ForDeclaration[Yield, Await, Using] :
- LetOrConst ForBinding[?Yield, ?Await, ~Using]
- [+Using] `using` [no LineTerminator here] [lookahead != `await`] ForBinding[?Yield, ?Await, +Using]
+ LetOrConst ForBinding[?Yield, ?Await]
+ [+Using] `using` [no LineTerminator here] [lookahead != `await`] ForBinding[?Yield, ?Await]
- ForBinding[Yield, Await, Using] :
+ ForBinding[Yield, Await] :
BindingIdentifier[?Yield, ?Await]
- BindingPattern[?Yield, ?Await]
- [~Using] BindingPattern[?Yield, ?Await]
+ BindingPattern[?Yield, ?Await]
+
+ Static Semantics: Early Errors
+
+
+ ForBinding : BindingPattern
+
+ -
+ It is a Syntax Error if this |ForBinding| is contained within a |ForDeclaration| and IsUsingDeclaration of that |ForDeclaration| is *true*.
+
+
+
+
+
Runtime Semantics: ForDeclarationBindingInstantiation (