diff --git a/Spec.html b/Spec.html
index da35e94..86652d4 100644
--- a/Spec.html
+++ b/Spec.html
@@ -33,15 +33,13 @@
Spread Properties
Syntax
-
- IdentifierReference
- CoverInitializedName
- PropertyName:AssignmentExpression
- MethodDefinition
-
- ...AssignmentExpression
-
-
+
+ PropertyDefinition[Yield, Await] :
+ IdentifierReference[?Yield, ?Await]
+ CoverInitializedName[?Yield, ?Await]
+ PropertyName[?Yield, ?Await]
+ `...` AssignmentExpression[In, ?Yield, ?Await]
+
Runtime Semantics: PropertyDefinitionEvaluation
@@ -66,30 +64,27 @@ Rest Properties
Syntax
-
- {AssignmentRestProperty}
- {AssignmentPropertyList}
- {AssignmentPropertyList,AssignmentRestProperty}
-
+
+ ObjectAssignmentPattern[Yield, Await] :
+ `{` AssignmentRestProperty[?Yield, ?Await]? `}`
+ `{` AssignmentPropertyList[?Yield, ?Await] `}`
+ `{` AssignmentPropertyList[?Yield, ?Await] `,` AssignmentRestProperty[?Yield, ?Await]? `}`
-
-
- ...DestructuringAssignmentTarget
-
-
+
+ AssignmentRestProperty[Yield, Await] :
+ `...` DestructuringAssignmentTarget[Yield, Await]
+
-
- {BindingRestProperty}
- {BindingPropertyList}
- {BindingPropertyList,BindingRestProperty}
-
+ ObjectBindingPattern[Yield, Await] :
+ `{` BindingRestProperty[?Yield, ?Await]? `}`
+ `{` BindingPropertyList[?Yield, ?Await] `}`
+ `{` BindingPropertyList[?Yield, ?Await] `,` BindingRestProperty[?Yield, ?Await]? `}`
-
-
- ...BindingIdentifier
- ...BindingPattern
-
-
+
+ BindingRestProperty[Yield, Await] :
+ `...` BindingIdentifier[?Yield, ?Await]
+
+
Runtime Semantics: DestructuringAssignmentEvaluation
@@ -177,7 +172,7 @@ Runtime Semantics: PropertyDestructuringAssignmentEvaluation
Runtime Semantics: RestDestructuringAssignmentEvaluation
With parameters _value_ and _excludedNames_.
- AssignmentRestProperty[Yield] : `...` DestructuringAssignmentTarget
+ AssignmentRestProperty[Yield, Await] : `...` DestructuringAssignmentTarget
1. If |DestructuringAssignmentTarget| is neither an |ObjectLiteral| nor an |ArrayLiteral|, then
1. Let _lref_ be the result of evaluating |DestructuringAssignmentTarget|.
@@ -187,7 +182,7 @@ Runtime Semantics: RestDestructuringAssignmentEvaluation
1. ReturnIfAbrupt(_assignStatus_).
1. If |DestructuringAssignmentTarget| is neither an |ObjectLiteral| nor an |ArrayLiteral|, then
1. Return PutValue(_lref_, _restObj_).
- 1. Let _nestedAssignmentPattern_ be the parse of the source text corresponding to |DestructuringAssignmentTarget| using either |AssignmentPattern| or |AssignmentPattern[Yield]| as the goal symbol depending upon whether this |AssignmentRestProperty| has the [Yield] parameter.
+ 1. Let _nestedAssignmentPattern_ be the parse of the source text corresponding to |DestructuringAssignmentTarget| using either |AssignmentPattern[?Yield, ?Await]| as the goal symbol, adopting the parameter values from |AssignmentRestProperty|.
1. Return the result of performing DestructuringAssignmentEvaluation of _nestedAssignmentPattern_ with _restObj_ as the argument.
@@ -284,14 +279,6 @@ Runtime Semantics: RestBindingInitialization
1. If _environment_ is *undefined*, return PutValue(_lhs_, _restObj_).
1. Return InitializeReferencedBinding(_lhs_, _restObj_).
-
- BindingRestProperty : `...` BindingPattern
-
- 1. Let _restObj_ be ObjectCreate(%ObjectPrototype%).
- 1. Let _assignStatus_ be CopyDataProperties(_restObj_, _value_, _excludedNames_).
- 1. ReturnIfAbrupt(_assignStatus_).
- 1. Return the result of performing BindingInitialization of |BindingPattern| with _restObj_ and _environment_ as the arguments.
-