diff --git a/spec.html b/spec.html
index baf334dd37..e705a1ff01 100644
--- a/spec.html
+++ b/spec.html
@@ -11395,6 +11395,9 @@
Static Semantics: MV
The MV of HexDigits :: HexDigits HexDigit is (the MV of |HexDigits| × 16ℝ) plus the MV of |HexDigit|.
+
+ The MV of Hex4Digits :: HexDigit HexDigit HexDigit HexDigit is (0x1000ℝ times the MV of the first |HexDigit|) plus (0x100ℝ times the MV of the second |HexDigit|) plus (0x10ℝ times the MV of the third |HexDigit|) plus the MV of the fourth |HexDigit|.
+
@@ -11760,7 +11763,7 @@ Static Semantics: SV
The SV of UnicodeEscapeSequence :: `u` Hex4Digits is the SV of |Hex4Digits|.
- The SV of Hex4Digits :: HexDigit HexDigit HexDigit HexDigit is the code unit whose value is (0x1000ℝ times the MV of the first |HexDigit|) plus (0x100ℝ times the MV of the second |HexDigit|) plus (0x10ℝ times the MV of the third |HexDigit|) plus the MV of the fourth |HexDigit|.
+ The SV of Hex4Digits :: HexDigit HexDigit HexDigit HexDigit is the code unit whose value is the MV of |Hex4Digits|.
The SV of UnicodeEscapeSequence :: `u{` CodePoint `}` is the UTF16Encoding of the MV of |CodePoint|.
@@ -12043,7 +12046,7 @@ Static Semantics: TV and TRV
The TRV of NotEscapeSequence :: `u` `{` CodePoint [lookahead <! HexDigit] [lookahead != `}`] is the sequence consisting of the code unit 0x0075 (LATIN SMALL LETTER U) followed by the code unit 0x007B (LEFT CURLY BRACKET) followed by the code units of the TRV of |CodePoint|.
- The TRV of DecimalDigit :: one of `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` is the SV of the |SourceCharacter| that is that single code point.
+ The TRV of DecimalDigit :: one of `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` is the UTF16Encoding of the single code point matched by this production.
The TRV of CharacterEscapeSequence :: SingleEscapeCharacter is the TRV of |SingleEscapeCharacter|.
@@ -12052,7 +12055,7 @@ Static Semantics: TV and TRV
The TRV of CharacterEscapeSequence :: NonEscapeCharacter is the SV of |NonEscapeCharacter|.
- The TRV of SingleEscapeCharacter :: one of `'` `"` `\` `b` `f` `n` `r` `t` `v` is the SV of the |SourceCharacter| that is that single code point.
+ The TRV of SingleEscapeCharacter :: one of `'` `"` `\` `b` `f` `n` `r` `t` `v` is the UTF16Encoding of the single code point matched by this production.
The TRV of HexEscapeSequence :: `x` HexDigit HexDigit is the sequence consisting of the code unit 0x0078 (LATIN SMALL LETTER X) followed by TRV of the first |HexDigit| followed by the TRV of the second |HexDigit|.
@@ -12073,7 +12076,7 @@ Static Semantics: TV and TRV
The TRV of HexDigits :: HexDigits HexDigit is the sequence consisting of TRV of |HexDigits| followed by TRV of |HexDigit|.
- The TRV of a |HexDigit| is the SV of the |SourceCharacter| that is that |HexDigit|.
+ The TRV of HexDigit :: one of `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` `a` `b` `c` `d` `e` `f` `A` `B` `C` `D` `E` `F` is the UTF16Encoding of the single code point matched by this production.
The TRV of LineContinuation :: `\` LineTerminatorSequence is the sequence consisting of the code unit 0x005C (REVERSE SOLIDUS) followed by the code units of TRV of |LineTerminatorSequence|.
@@ -13581,7 +13584,7 @@ Static Semantics: Early Errors
Static Semantics: CoveredCallExpression
- CallExpression : CoverCallExpressionAndAsyncArrowHead
+ CoverCallExpressionAndAsyncArrowHead : MemberExpression Arguments
1. Return the |CallMemberExpression| that is covered by |CoverCallExpressionAndAsyncArrowHead|.
@@ -16707,6 +16710,12 @@ Static Semantics: BoundNames
1. Return a new empty List.
+ ObjectBindingPattern : `{` BindingPropertyList `,` BindingRestProperty `}`
+
+ 1. Let _names_ be BoundNames of |BindingPropertyList|.
+ 1. Append to _names_ the elements of BoundNames of |BindingRestProperty|.
+ 1. Return _names_.
+
ArrayBindingPattern : `[` Elision? `]`
1. Return a new empty List.
@@ -16758,10 +16767,18 @@ Static Semantics: BoundNames
Static Semantics: ContainsExpression
- ObjectBindingPattern : `{` `}`
+
+ ObjectBindingPattern :
+ `{` `}`
+ `{` BindingRestProperty `}`
+
1. Return *false*.
+ ObjectBindingPattern : `{` BindingPropertyList `,` BindingRestProperty `}`
+
+ 1. Return ContainsExpression of |BindingPropertyList|.
+
ArrayBindingPattern : `[` Elision? `]`
1. Return *false*.
@@ -19595,6 +19612,16 @@ Static Semantics: Contains
+
+ Static Semantics: ContainsDuplicateLabels
+ With parameter _labelSet_.
+
+ FunctionStatementList : [empty]
+
+ 1. Return *false*.
+
+
+
Static Semantics: ContainsExpression
@@ -19614,6 +19641,26 @@ Static Semantics: ContainsExpression
+
+ Static Semantics: ContainsUndefinedBreakTarget
+ With parameter _labelSet_.
+
+ FunctionStatementList : [empty]
+
+ 1. Return *false*.
+
+
+
+
+ Static Semantics: ContainsUndefinedContinueTarget
+ With parameters _iterationSet_ and _labelSet_.
+
+ FunctionStatementList : [empty]
+
+ 1. Return *false*.
+
+
+
Static Semantics: ContainsUseStrict
@@ -19626,7 +19673,11 @@ Static Semantics: ContainsUseStrict
Static Semantics: ExpectedArgumentCount
- FormalParameters : [empty]
+
+ FormalParameters :
+ [empty]
+ FunctionRestParameter
+
1. Return 0.
@@ -19637,6 +19688,11 @@ Static Semantics: ExpectedArgumentCount
The ExpectedArgumentCount of a |FormalParameterList| is the number of |FormalParameters| to the left of either the rest parameter or the first |FormalParameter| with an Initializer. A |FormalParameter| without an initializer is allowed after the first parameter with an initializer but such parameters are considered to be optional with *undefined* as their default value.
+ FormalParameterList : FormalParameter
+
+ 1. If HasInitializer of |FormalParameter| is *true*, return 0.
+ 1. Return 1.
+
FormalParameterList : FormalParameterList `,` FormalParameter
1. Let _count_ be ExpectedArgumentCount of |FormalParameterList|.
@@ -20000,6 +20056,11 @@ Static Semantics: ContainsExpression
1. Return *false*.
+ ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList
+
+ 1. Let _formals_ be CoveredFormalsList of |CoverParenthesizedExpressionAndArrowParameterList|.
+ 1. Return ContainsExpression of _formals_.
+
@@ -20018,6 +20079,11 @@ Static Semantics: ExpectedArgumentCount
1. Return 1.
+ ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList
+
+ 1. Let _formals_ be CoveredFormalsList of |CoverParenthesizedExpressionAndArrowParameterList|.
+ 1. Return ExpectedArgumentCount of _formals_.
+
@@ -20052,6 +20118,7 @@ Static Semantics: CoveredFormalsList
CoverParenthesizedExpressionAndArrowParameterList :
`(` Expression `)`
+ `(` Expression `,` `)`
`(` `)`
`(` `...` BindingIdentifier `)`
`(` `...` BindingPattern `)`
@@ -20120,6 +20187,11 @@ Runtime Semantics: IteratorBindingInitialization
1. If _iteratorRecord_.[[Done]] is *true*, let _v_ be *undefined*.
1. Return the result of performing BindingInitialization for |BindingIdentifier| using _v_ and _environment_ as the arguments.
+ ArrowParameters : CoverParenthesizedExpressionAndArrowParameterList
+
+ 1. Let _formals_ be CoveredFormalsList of |CoverParenthesizedExpressionAndArrowParameterList|.
+ 1. Return IteratorBindingInitialization of _formals_.
+
@@ -21984,6 +22056,9 @@ Statement Rules
`for` `(` LeftHandSideExpression `in` Expression `)` Statement
`for` `(` `var` ForBinding `in` Expression `)` Statement
`for` `(` ForDeclaration `in` Expression `)` Statement
+ `for` `await` `(` LeftHandSideExpression `of` AssignmentExpression `)` Statement
+ `for` `await` `(` `var` ForBinding `of` AssignmentExpression `)` Statement
+ `for` `await` `(` ForDeclaration `of` AssignmentExpression `)` Statement
WithStatement : `with` `(` Expression `)` Statement