| ary-init-iter-close.js | 
          ---
description: Iterator is closed when not exhausted by pattern evaluation (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    [...]
    4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator,
       result).
    [...]
--- | 
          2026 | 
        
        
          | ary-init-iter-get-err-array-prototype.js | 
          ---
description: Abrupt completion returned by GetIterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iteratorRecord be ? GetIterator(value).
    GetIterator ( obj [ , hint [ , method ] ] )
    [...]
    4. Let iterator be ? Call(method, obj).
    Call ( F, V [ , argumentsList ] )
    [...]
    2. If IsCallable(F) is false, throw a TypeError exception.
--- | 
          1853 | 
        
        
          | ary-init-iter-get-err.js | 
          ---
description: Abrupt completion returned by GetIterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iterator be GetIterator(value).
    2. ReturnIfAbrupt(iterator).
--- | 
          1688 | 
        
        
          | ary-init-iter-no-close.js | 
          ---
description: Iterator is not closed when exhausted by pattern evaluation (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    [...]
    4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator,
       result).
    [...]
--- | 
          2028 | 
        
        
          | ary-name-iter-val.js | 
          ---
description: SingleNameBinding with normal value iteration (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2342 | 
        
        
          | ary-ptrn-elem-ary-elem-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2115 | 
        
        
          | ary-ptrn-elem-ary-elem-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2086 | 
        
        
          | ary-ptrn-elem-ary-elision-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2178 | 
        
        
          | ary-ptrn-elem-ary-elision-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2083 | 
        
        
          | ary-ptrn-elem-ary-empty-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2220 | 
        
        
          | ary-ptrn-elem-ary-empty-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2073 | 
        
        
          | ary-ptrn-elem-ary-rest-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2237 | 
        
        
          | ary-ptrn-elem-ary-rest-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2284 | 
        
        
          | ary-ptrn-elem-ary-val-null.js | 
          ---
description: Nested array destructuring with a null value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iterator be GetIterator(value).
    2. ReturnIfAbrupt(iterator).
--- | 
          1975 | 
        
        
          | ary-ptrn-elem-id-init-exhausted.js | 
          ---
description: Destructuring initializer with an exhausted iterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2042 | 
        
        
          | ary-ptrn-elem-id-init-fn-name-arrow.js | 
          ---
description: SingleNameBinding does assign name to arrow functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2110 | 
        
        
          | ary-ptrn-elem-id-init-fn-name-class.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2247 | 
        
        
          | ary-ptrn-elem-id-init-fn-name-cover.js | 
          ---
description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2223 | 
        
        
          | ary-ptrn-elem-id-init-fn-name-fn.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2169 | 
        
        
          | ary-ptrn-elem-id-init-fn-name-gen.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2189 | 
        
        
          | ary-ptrn-elem-id-init-hole.js | 
          ---
description: Destructuring initializer with a "hole" (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...] 6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1975 | 
        
        
          | ary-ptrn-elem-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2135 | 
        
        
          | ary-ptrn-elem-id-init-throws.js | 
          ---
description: Destructuring initializer returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1817 | 
        
        
          | ary-ptrn-elem-id-init-undef.js | 
          ---
description: Destructuring initializer with an undefined value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1981 | 
        
        
          | ary-ptrn-elem-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          1997 | 
        
        
          | ary-ptrn-elem-id-iter-complete.js | 
          ---
description: SingleNameBinding when value iteration completes (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2129 | 
        
        
          | ary-ptrn-elem-id-iter-done.js | 
          ---
description: SingleNameBinding when value iteration was completed previously (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1882 | 
        
        
          | ary-ptrn-elem-id-iter-step-err.js | 
          ---
description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
--- | 
          1943 | 
        
        
          | ary-ptrn-elem-id-iter-val-array-prototype.js | 
          ---
description: Array destructuring uses overriden Array.prototype[Symbol.iterator] (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializer_opt
    1. Let bindingId be StringValue of BindingIdentifier.
    2. Let lhs be ? ResolveBinding(bindingId, environment).
    3. If iteratorRecord.[[Done]] is false, then
        a. Let next be IteratorStep(iteratorRecord).
        b. If next is an abrupt completion, set iteratorRecord.[[Done]] to true.
        c. ReturnIfAbrupt(next).
        d. If next is false, set iteratorRecord.[[Done]] to true.
        e. Else,
            i. Let v be IteratorValue(next).
            ii. If v is an abrupt completion, set iteratorRecord.[[Done]] to true.
            iii. ReturnIfAbrupt(v).
    [...]
    7. Return InitializeReferencedBinding(lhs, v).
--- | 
          2628 | 
        
        
          | ary-ptrn-elem-id-iter-val-err.js | 
          ---
description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set iteratorRecord.[[done]] to
              true.
          iii. ReturnIfAbrupt(v).
--- | 
          2307 | 
        
        
          | ary-ptrn-elem-id-iter-val.js | 
          ---
description: SingleNameBinding when value iteration was completed previously (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2368 | 
        
        
          | ary-ptrn-elem-obj-id-init.js | 
          ---
description: BindingElement with object binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2133 | 
        
        
          | ary-ptrn-elem-obj-id.js | 
          ---
description: BindingElement with object binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2155 | 
        
        
          | ary-ptrn-elem-obj-prop-id-init.js | 
          ---
description: BindingElement with object binding pattern and initializer is used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2328 | 
        
        
          | ary-ptrn-elem-obj-prop-id.js | 
          ---
description: BindingElement with object binding pattern and initializer is not used (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2353 | 
        
        
          | ary-ptrn-elem-obj-val-null.js | 
          ---
description: Nested object destructuring with a null value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ObjectBindingPattern
    1. Let valid be RequireObjectCoercible(value).
    2. ReturnIfAbrupt(valid).
--- | 
          1984 | 
        
        
          | ary-ptrn-elem-obj-val-undef.js | 
          ---
description: Nested object destructuring with a value of `undefined` (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ObjectBindingPattern
    1. Let valid be RequireObjectCoercible(value).
    2. ReturnIfAbrupt(valid).
--- | 
          1991 | 
        
        
          | ary-ptrn-elision-exhausted.js | 
          ---
description: Elision accepts exhausted iterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       [...]
    2. Return NormalCompletion(empty).
--- | 
          1987 | 
        
        
          | ary-ptrn-elision-step-err.js | 
          ---
description: Elision advances iterator and forwards abrupt completions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
--- | 
          2174 | 
        
        
          | ary-ptrn-elision.js | 
          ---
description: Elision advances iterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
    2. Return NormalCompletion(empty).
--- | 
          2300 | 
        
        
          | ary-ptrn-empty.js | 
          ---
description: No iteration occurs for an "empty" array binding pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ ]
    1. Return NormalCompletion(empty).
--- | 
          1748 | 
        
        
          | ary-ptrn-rest-ary-elem.js | 
          ---
description: Rest element containing an array BindingElementList pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2747 | 
        
        
          | ary-ptrn-rest-ary-elision.js | 
          ---
description: Rest element containing an elision (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
    2. Return NormalCompletion(empty).
--- | 
          2704 | 
        
        
          | ary-ptrn-rest-ary-empty.js | 
          ---
description: Rest element containing an "empty" array pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ ]
    1. Return NormalCompletion(empty).
--- | 
          2135 | 
        
        
          | ary-ptrn-rest-ary-rest.js | 
          ---
description: Rest element containing a rest element (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          2098 | 
        
        
          | ary-ptrn-rest-id-direct.js | 
          ---
description: Lone rest element (direct binding) (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
includes: [compareArray.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    [...]
    2. Let A be ! ArrayCreate(0).
    3. Let n be 0.
    4. Repeat,
        [...]
        f. Perform ! CreateDataPropertyOrThrow(A, ! ToString(n), nextValue).
        g. Set n to n + 1.
--- | 
          1886 | 
        
        
          | ary-ptrn-rest-id-elision-next-err.js | 
          ---
description: Rest element following elision elements (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elisionopt BindingRestElement ]
    1. If Elision is present, then
       a. Let status be the result of performing
          IteratorDestructuringAssignmentEvaluation of Elision with
          iteratorRecord as the argument.
       b. ReturnIfAbrupt(status).
    2. Return the result of performing IteratorBindingInitialization for
       BindingRestElement with iteratorRecord and environment as arguments.
--- | 
          1987 | 
        
        
          | ary-ptrn-rest-id-elision.js | 
          ---
description: Rest element following elision elements (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elisionopt BindingRestElement ]
    1. If Elision is present, then
       a. Let status be the result of performing
          IteratorDestructuringAssignmentEvaluation of Elision with
          iteratorRecord as the argument.
       b. ReturnIfAbrupt(status).
    2. Return the result of performing IteratorBindingInitialization for
       BindingRestElement with iteratorRecord and environment as arguments.
--- | 
          2225 | 
        
        
          | ary-ptrn-rest-id-exhausted.js | 
          ---
description: RestElement applied to an exhausted iterator (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. If environment is undefined, return PutValue(lhs, A).
          ii. Return InitializeReferencedBinding(lhs, A).
--- | 
          2064 | 
        
        
          | ary-ptrn-rest-id-iter-step-err.js | 
          ---
description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       a. If iteratorRecord.[[done]] is false,
          i. Let next be IteratorStep(iteratorRecord.[[iterator]]).
          ii. If next is an abrupt completion, set iteratorRecord.[[done]] to
              true.
          iii. ReturnIfAbrupt(next).
--- | 
          2215 | 
        
        
          | ary-ptrn-rest-id-iter-val-err.js | 
          ---
description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       [...]
       c. Let nextValue be IteratorValue(next).
       d. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to
          true.
       e. ReturnIfAbrupt(nextValue).
--- | 
          2178 | 
        
        
          | ary-ptrn-rest-id.js | 
          ---
description: Lone rest element (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    [...] 3. Let A be ArrayCreate(0). [...] 5. Repeat
       [...]
       f. Let status be CreateDataProperty(A, ToString (n), nextValue).
       [...]
--- | 
          1946 | 
        
        
          | ary-ptrn-rest-init-ary.js | 
          ---
description: Rest element (nested array pattern) does not support initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1861 | 
        
        
          | ary-ptrn-rest-init-id.js | 
          ---
description: Rest element (identifier) does not support initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1846 | 
        
        
          | ary-ptrn-rest-init-obj.js | 
          ---
description: Rest element (nested object pattern) does not support initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1862 | 
        
        
          | ary-ptrn-rest-not-final-ary.js | 
          ---
description: Rest element (array binding pattern) may not be followed by any element (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1876 | 
        
        
          | ary-ptrn-rest-not-final-id.js | 
          ---
description: Rest element (identifier) may not be followed by any element (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1862 | 
        
        
          | ary-ptrn-rest-not-final-obj.js | 
          ---
description: Rest element (object binding pattern) may not be followed by any element (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1879 | 
        
        
          | ary-ptrn-rest-obj-id.js | 
          ---
description: Rest element containing an object binding pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          1938 | 
        
        
          | ary-ptrn-rest-obj-prop-id.js | 
          ---
description: Rest element containing an object binding pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          2185 | 
        
        
          | browser.js | 
           | 
          0 | 
        
        
          | dflt-ary-init-iter-close.js | 
          ---
description: Iterator is closed when not exhausted by pattern evaluation (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    [...]
    4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator,
       result).
    [...]
--- | 
          2074 | 
        
        
          | dflt-ary-init-iter-get-err-array-prototype.js | 
          ---
description: Abrupt completion returned by GetIterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iteratorRecord be ? GetIterator(value).
    GetIterator ( obj [ , hint [ , method ] ] )
    [...]
    4. Let iterator be ? Call(method, obj).
    Call ( F, V [ , argumentsList ] )
    [...]
    2. If IsCallable(F) is false, throw a TypeError exception.
--- | 
          1901 | 
        
        
          | dflt-ary-init-iter-get-err.js | 
          ---
description: Abrupt completion returned by GetIterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iterator be GetIterator(value).
    2. ReturnIfAbrupt(iterator).
--- | 
          1736 | 
        
        
          | dflt-ary-init-iter-no-close.js | 
          ---
description: Iterator is not closed when exhausted by pattern evaluation (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    [...]
    4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator,
       result).
    [...]
--- | 
          2076 | 
        
        
          | dflt-ary-name-iter-val.js | 
          ---
description: SingleNameBinding with normal value iteration (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2390 | 
        
        
          | dflt-ary-ptrn-elem-ary-elem-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2163 | 
        
        
          | dflt-ary-ptrn-elem-ary-elem-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2134 | 
        
        
          | dflt-ary-ptrn-elem-ary-elision-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2226 | 
        
        
          | dflt-ary-ptrn-elem-ary-elision-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2131 | 
        
        
          | dflt-ary-ptrn-elem-ary-empty-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2268 | 
        
        
          | dflt-ary-ptrn-elem-ary-empty-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2121 | 
        
        
          | dflt-ary-ptrn-elem-ary-rest-init.js | 
          ---
description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2285 | 
        
        
          | dflt-ary-ptrn-elem-ary-rest-iter.js | 
          ---
description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       [...]
       e. Else,
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2332 | 
        
        
          | dflt-ary-ptrn-elem-ary-val-null.js | 
          ---
description: Nested array destructuring with a null value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ArrayBindingPattern
    1. Let iterator be GetIterator(value).
    2. ReturnIfAbrupt(iterator).
--- | 
          2023 | 
        
        
          | dflt-ary-ptrn-elem-id-init-exhausted.js | 
          ---
description: Destructuring initializer with an exhausted iterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2090 | 
        
        
          | dflt-ary-ptrn-elem-id-init-fn-name-arrow.js | 
          ---
description: SingleNameBinding does assign name to arrow functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2158 | 
        
        
          | dflt-ary-ptrn-elem-id-init-fn-name-class.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2295 | 
        
        
          | dflt-ary-ptrn-elem-id-init-fn-name-cover.js | 
          ---
description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2271 | 
        
        
          | dflt-ary-ptrn-elem-id-init-fn-name-fn.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2217 | 
        
        
          | dflt-ary-ptrn-elem-id-init-fn-name-gen.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2237 | 
        
        
          | dflt-ary-ptrn-elem-id-init-hole.js | 
          ---
description: Destructuring initializer with a "hole" (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...] 6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2023 | 
        
        
          | dflt-ary-ptrn-elem-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2183 | 
        
        
          | dflt-ary-ptrn-elem-id-init-throws.js | 
          ---
description: Destructuring initializer returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1865 | 
        
        
          | dflt-ary-ptrn-elem-id-init-undef.js | 
          ---
description: Destructuring initializer with an undefined value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       [...]
    7. If environment is undefined, return PutValue(lhs, v).
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2029 | 
        
        
          | dflt-ary-ptrn-elem-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          2045 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-complete.js | 
          ---
description: SingleNameBinding when value iteration completes (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2177 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-done.js | 
          ---
description: SingleNameBinding when value iteration was completed previously (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       [...]
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1930 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-step-err.js | 
          ---
description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
--- | 
          1991 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-val-array-prototype.js | 
          ---
description: Array destructuring uses overriden Array.prototype[Symbol.iterator] (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializer_opt
    1. Let bindingId be StringValue of BindingIdentifier.
    2. Let lhs be ? ResolveBinding(bindingId, environment).
    3. If iteratorRecord.[[Done]] is false, then
        a. Let next be IteratorStep(iteratorRecord).
        b. If next is an abrupt completion, set iteratorRecord.[[Done]] to true.
        c. ReturnIfAbrupt(next).
        d. If next is false, set iteratorRecord.[[Done]] to true.
        e. Else,
            i. Let v be IteratorValue(next).
            ii. If v is an abrupt completion, set iteratorRecord.[[Done]] to true.
            iii. ReturnIfAbrupt(v).
    [...]
    7. Return InitializeReferencedBinding(lhs, v).
--- | 
          2676 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-val-err.js | 
          ---
description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set iteratorRecord.[[done]] to
              true.
          iii. ReturnIfAbrupt(v).
--- | 
          2355 | 
        
        
          | dflt-ary-ptrn-elem-id-iter-val.js | 
          ---
description: SingleNameBinding when value iteration was completed previously (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2416 | 
        
        
          | dflt-ary-ptrn-elem-obj-id-init.js | 
          ---
description: BindingElement with object binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2181 | 
        
        
          | dflt-ary-ptrn-elem-obj-id.js | 
          ---
description: BindingElement with object binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2203 | 
        
        
          | dflt-ary-ptrn-elem-obj-prop-id-init.js | 
          ---
description: BindingElement with object binding pattern and initializer is used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2376 | 
        
        
          | dflt-ary-ptrn-elem-obj-prop-id.js | 
          ---
description: BindingElement with object binding pattern and initializer is not used (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPatternInitializer opt
    [...]
    2. If iteratorRecord.[[done]] is true, let v be undefined.
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be ? GetValue(defaultValue).
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
--- | 
          2401 | 
        
        
          | dflt-ary-ptrn-elem-obj-val-null.js | 
          ---
description: Nested object destructuring with a null value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ObjectBindingPattern
    1. Let valid be RequireObjectCoercible(value).
    2. ReturnIfAbrupt(valid).
--- | 
          2032 | 
        
        
          | dflt-ary-ptrn-elem-obj-val-undef.js | 
          ---
description: Nested object destructuring with a value of `undefined` (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. If iteratorRecord.[[done]] is false, then
       [...]
       e. Else
          i. Let v be IteratorValue(next).
          [...]
    4. Return the result of performing BindingInitialization of BindingPattern
       with v and environment as the arguments.
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPattern : ObjectBindingPattern
    1. Let valid be RequireObjectCoercible(value).
    2. ReturnIfAbrupt(valid).
--- | 
          2039 | 
        
        
          | dflt-ary-ptrn-elision-exhausted.js | 
          ---
description: Elision accepts exhausted iterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       [...]
    2. Return NormalCompletion(empty).
--- | 
          2035 | 
        
        
          | dflt-ary-ptrn-elision-step-err.js | 
          ---
description: Elision advances iterator and forwards abrupt completions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
--- | 
          2222 | 
        
        
          | dflt-ary-ptrn-elision.js | 
          ---
description: Elision advances iterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
    2. Return NormalCompletion(empty).
--- | 
          2348 | 
        
        
          | dflt-ary-ptrn-empty.js | 
          ---
description: No iteration occurs for an "empty" array binding pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ ]
    1. Return NormalCompletion(empty).
--- | 
          1796 | 
        
        
          | dflt-ary-ptrn-rest-ary-elem.js | 
          ---
description: Rest element containing an array BindingElementList pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
       e. Else,
          [...]
          i. Let v be IteratorValue(next).
          ii. If v is an abrupt completion, set
              iteratorRecord.[[done]] to true.
          iii. ReturnIfAbrupt(v).
    5. If iteratorRecord.[[done]] is true, let v be undefined.
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          2795 | 
        
        
          | dflt-ary-ptrn-rest-ary-elision.js | 
          ---
description: Rest element containing an elision (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elision ]
    1. Return the result of performing
       IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord
       as the argument.
    12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation
    Elision : ,
    1. If iteratorRecord.[[done]] is false, then
       a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
       b. If next is an abrupt completion, set iteratorRecord.[[done]] to true.
       c. ReturnIfAbrupt(next).
       d. If next is false, set iteratorRecord.[[done]] to true.
    2. Return NormalCompletion(empty).
--- | 
          2752 | 
        
        
          | dflt-ary-ptrn-rest-ary-empty.js | 
          ---
description: Rest element containing an "empty" array pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ ]
    1. Return NormalCompletion(empty).
--- | 
          2183 | 
        
        
          | dflt-ary-ptrn-rest-ary-rest.js | 
          ---
description: Rest element containing a rest element (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          2146 | 
        
        
          | dflt-ary-ptrn-rest-id-direct.js | 
          ---
description: Lone rest element (direct binding) (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
includes: [compareArray.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    [...]
    2. Let A be ! ArrayCreate(0).
    3. Let n be 0.
    4. Repeat,
        [...]
        f. Perform ! CreateDataPropertyOrThrow(A, ! ToString(n), nextValue).
        g. Set n to n + 1.
--- | 
          1934 | 
        
        
          | dflt-ary-ptrn-rest-id-elision-next-err.js | 
          ---
description: Rest element following elision elements (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elisionopt BindingRestElement ]
    1. If Elision is present, then
       a. Let status be the result of performing
          IteratorDestructuringAssignmentEvaluation of Elision with
          iteratorRecord as the argument.
       b. ReturnIfAbrupt(status).
    2. Return the result of performing IteratorBindingInitialization for
       BindingRestElement with iteratorRecord and environment as arguments.
--- | 
          2035 | 
        
        
          | dflt-ary-ptrn-rest-id-elision.js | 
          ---
description: Rest element following elision elements (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    ArrayBindingPattern : [ Elisionopt BindingRestElement ]
    1. If Elision is present, then
       a. Let status be the result of performing
          IteratorDestructuringAssignmentEvaluation of Elision with
          iteratorRecord as the argument.
       b. ReturnIfAbrupt(status).
    2. Return the result of performing IteratorBindingInitialization for
       BindingRestElement with iteratorRecord and environment as arguments.
--- | 
          2273 | 
        
        
          | dflt-ary-ptrn-rest-id-exhausted.js | 
          ---
description: RestElement applied to an exhausted iterator (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. If environment is undefined, return PutValue(lhs, A).
          ii. Return InitializeReferencedBinding(lhs, A).
--- | 
          2112 | 
        
        
          | dflt-ary-ptrn-rest-id-iter-step-err.js | 
          ---
description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       a. If iteratorRecord.[[done]] is false,
          i. Let next be IteratorStep(iteratorRecord.[[iterator]]).
          ii. If next is an abrupt completion, set iteratorRecord.[[done]] to
              true.
          iii. ReturnIfAbrupt(next).
--- | 
          2263 | 
        
        
          | dflt-ary-ptrn-rest-id-iter-val-err.js | 
          ---
description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    1. Let lhs be ResolveBinding(StringValue of BindingIdentifier,
       environment).
    2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat,
       [...]
       c. Let nextValue be IteratorValue(next).
       d. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to
          true.
       e. ReturnIfAbrupt(nextValue).
--- | 
          2226 | 
        
        
          | dflt-ary-ptrn-rest-id.js | 
          ---
description: Lone rest element (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingIdentifier
    [...] 3. Let A be ArrayCreate(0). [...] 5. Repeat
       [...]
       f. Let status be CreateDataProperty(A, ToString (n), nextValue).
       [...]
--- | 
          1994 | 
        
        
          | dflt-ary-ptrn-rest-init-ary.js | 
          ---
description: Rest element (nested array pattern) does not support initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1909 | 
        
        
          | dflt-ary-ptrn-rest-init-id.js | 
          ---
description: Rest element (identifier) does not support initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1894 | 
        
        
          | dflt-ary-ptrn-rest-init-obj.js | 
          ---
description: Rest element (nested object pattern) does not support initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1910 | 
        
        
          | dflt-ary-ptrn-rest-not-final-ary.js | 
          ---
description: Rest element (array binding pattern) may not be followed by any element (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1924 | 
        
        
          | dflt-ary-ptrn-rest-not-final-id.js | 
          ---
description: Rest element (identifier) may not be followed by any element (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1910 | 
        
        
          | dflt-ary-ptrn-rest-not-final-obj.js | 
          ---
description: Rest element (object binding pattern) may not be followed by any element (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
negative:
  phase: parse
  type: SyntaxError
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ArrayBindingPattern[Yield] :
        [ Elisionopt BindingRestElement[?Yield]opt ]
        [ BindingElementList[?Yield] ]
        [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ]
--- | 
          1927 | 
        
        
          | dflt-ary-ptrn-rest-obj-id.js | 
          ---
description: Rest element containing an object binding pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          1986 | 
        
        
          | dflt-ary-ptrn-rest-obj-prop-id.js | 
          ---
description: Rest element containing an object binding pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.6 Runtime Semantics: IteratorBindingInitialization
    BindingRestElement : ... BindingPattern
    1. Let A be ArrayCreate(0).
    [...]
    3. Repeat
       [...]
       b. If iteratorRecord.[[done]] is true, then
          i. Return the result of performing BindingInitialization of
             BindingPattern with A and environment as the arguments.
       [...]
--- | 
          2233 | 
        
        
          | dflt-obj-init-null.js | 
          ---
description: Value specifed for object binding pattern must be object coercible (null) (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1599 | 
        
        
          | dflt-obj-init-undefined.js | 
          ---
description: Value specifed for object binding pattern must be object coercible (undefined) (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1614 | 
        
        
          | dflt-obj-ptrn-empty.js | 
          ---
description: No property access occurs for an "empty" object binding pattern (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1834 | 
        
        
          | dflt-obj-ptrn-id-get-value-err.js | 
          ---
description: Error thrown when accessing the corresponding property of the value object (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. Let v be GetV(value, propertyName).
    5. ReturnIfAbrupt(v).
--- | 
          1838 | 
        
        
          | dflt-obj-ptrn-id-init-fn-name-arrow.js | 
          ---
description: SingleNameBinding assigns `name` to arrow functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2103 | 
        
        
          | dflt-obj-ptrn-id-init-fn-name-class.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2242 | 
        
        
          | dflt-obj-ptrn-id-init-fn-name-cover.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2217 | 
        
        
          | dflt-obj-ptrn-id-init-fn-name-fn.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2164 | 
        
        
          | dflt-obj-ptrn-id-init-fn-name-gen.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2184 | 
        
        
          | dflt-obj-ptrn-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
    [...]
--- | 
          2089 | 
        
        
          | dflt-obj-ptrn-id-init-throws.js | 
          ---
description: Error thrown when evaluating the initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let  defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1857 | 
        
        
          | dflt-obj-ptrn-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          2037 | 
        
        
          | dflt-obj-ptrn-id-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1776 | 
        
        
          | dflt-obj-ptrn-list-err.js | 
          ---
description: Binding property list evaluation is interrupted by an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPropertyList : BindingPropertyList , BindingProperty
    1. Let status be the result of performing BindingInitialization for
       BindingPropertyList using value and environment as arguments.
    2. ReturnIfAbrupt(status).
--- | 
          1915 | 
        
        
          | dflt-obj-ptrn-prop-ary-init.js | 
          ---
description: Object binding pattern with "nested" array binding pattern using initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2142 | 
        
        
          | dflt-obj-ptrn-prop-ary-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1788 | 
        
        
          | dflt-obj-ptrn-prop-ary-value-null.js | 
          ---
description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1807 | 
        
        
          | dflt-obj-ptrn-prop-ary.js | 
          ---
description: Object binding pattern with "nested" array binding pattern not using initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2051 | 
        
        
          | dflt-obj-ptrn-prop-eval-err.js | 
          ---
description: Evaluation of property name returns an abrupt completion (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingProperty : PropertyName : BindingElement
    1. Let P be the result of evaluating PropertyName
    2. ReturnIfAbrupt(P).
--- | 
          1730 | 
        
        
          | dflt-obj-ptrn-prop-id-get-value-err.js | 
          ---
description: Error thrown when accessing the corresponding property of the value object (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. Let v be GetV(value, propertyName).
    2. ReturnIfAbrupt(v).
--- | 
          1908 | 
        
        
          | dflt-obj-ptrn-prop-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
    [...]
--- | 
          2320 | 
        
        
          | dflt-obj-ptrn-prop-id-init-throws.js | 
          ---
description: Error thrown when evaluating the initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1858 | 
        
        
          | dflt-obj-ptrn-prop-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          2039 | 
        
        
          | dflt-obj-ptrn-prop-id-init.js | 
          ---
description: Binding as specified via property name, identifier, and initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1850 | 
        
        
          | dflt-obj-ptrn-prop-id-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1843 | 
        
        
          | dflt-obj-ptrn-prop-id.js | 
          ---
description: Binding as specified via property name and identifier (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1832 | 
        
        
          | dflt-obj-ptrn-prop-obj-init.js | 
          ---
description: Object binding pattern with "nested" object binding pattern using initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2170 | 
        
        
          | dflt-obj-ptrn-prop-obj-value-null.js | 
          ---
description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1821 | 
        
        
          | dflt-obj-ptrn-prop-obj-value-undef.js | 
          ---
description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1803 | 
        
        
          | dflt-obj-ptrn-prop-obj.js | 
          ---
description: Object binding pattern with "nested" object binding pattern not using initializer (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding, default-parameters]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2071 | 
        
        
          | dflt-obj-ptrn-rest-getter.js | 
          ---
description: Getter is called when obj is being deconstructed to a rest Object (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding, default-parameters]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1807 | 
        
        
          | dflt-obj-ptrn-rest-skip-non-enumerable.js | 
          ---
description: Rest object doesn't contain non-enumerable properties (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding, default-parameters]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1977 | 
        
        
          | dflt-obj-ptrn-rest-val-obj.js | 
          ---
description: Rest object contains just unextracted data (generator function expression (default parameter))
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding, default-parameters]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1936 | 
        
        
          | obj-init-null.js | 
          ---
description: Value specifed for object binding pattern must be object coercible (null) (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1551 | 
        
        
          | obj-init-undefined.js | 
          ---
description: Value specifed for object binding pattern must be object coercible (undefined) (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1566 | 
        
        
          | obj-ptrn-empty.js | 
          ---
description: No property access occurs for an "empty" object binding pattern (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    Runtime Semantics: BindingInitialization
    ObjectBindingPattern : { }
    1. Return NormalCompletion(empty).
--- | 
          1786 | 
        
        
          | obj-ptrn-id-get-value-err.js | 
          ---
description: Error thrown when accessing the corresponding property of the value object (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    4. Let v be GetV(value, propertyName).
    5. ReturnIfAbrupt(v).
--- | 
          1790 | 
        
        
          | obj-ptrn-id-init-fn-name-arrow.js | 
          ---
description: SingleNameBinding assigns `name` to arrow functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2055 | 
        
        
          | obj-ptrn-id-init-fn-name-class.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2194 | 
        
        
          | obj-ptrn-id-init-fn-name-cover.js | 
          ---
description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2169 | 
        
        
          | obj-ptrn-id-init-fn-name-fn.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2116 | 
        
        
          | obj-ptrn-id-init-fn-name-gen.js | 
          ---
description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
          i. Let hasNameProperty be HasOwnProperty(v, "name").
          ii. ReturnIfAbrupt(hasNameProperty).
          iii. If hasNameProperty is false, perform SetFunctionName(v,
               bindingId).
--- | 
          2136 | 
        
        
          | obj-ptrn-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       [...]
    [...]
--- | 
          2041 | 
        
        
          | obj-ptrn-id-init-throws.js | 
          ---
description: Error thrown when evaluating the initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let  defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1809 | 
        
        
          | obj-ptrn-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    6. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          1989 | 
        
        
          | obj-ptrn-id-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1728 | 
        
        
          | obj-ptrn-list-err.js | 
          ---
description: Binding property list evaluation is interrupted by an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingPropertyList : BindingPropertyList , BindingProperty
    1. Let status be the result of performing BindingInitialization for
       BindingPropertyList using value and environment as arguments.
    2. ReturnIfAbrupt(status).
--- | 
          1867 | 
        
        
          | obj-ptrn-prop-ary-init.js | 
          ---
description: Object binding pattern with "nested" array binding pattern using initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2094 | 
        
        
          | obj-ptrn-prop-ary-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1740 | 
        
        
          | obj-ptrn-prop-ary-value-null.js | 
          ---
description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1759 | 
        
        
          | obj-ptrn-prop-ary.js | 
          ---
description: Object binding pattern with "nested" array binding pattern not using initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2003 | 
        
        
          | obj-ptrn-prop-eval-err.js | 
          ---
description: Evaluation of property name returns an abrupt completion (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.5 Runtime Semantics: BindingInitialization
    BindingProperty : PropertyName : BindingElement
    1. Let P be the result of evaluating PropertyName
    2. ReturnIfAbrupt(P).
--- | 
          1682 | 
        
        
          | obj-ptrn-prop-id-get-value-err.js | 
          ---
description: Error thrown when accessing the corresponding property of the value object (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    1. Let v be GetV(value, propertyName).
    2. ReturnIfAbrupt(v).
--- | 
          1860 | 
        
        
          | obj-ptrn-prop-id-init-skipped.js | 
          ---
description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
    [...]
--- | 
          2272 | 
        
        
          | obj-ptrn-prop-id-init-throws.js | 
          ---
description: Error thrown when evaluating the initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
--- | 
          1810 | 
        
        
          | obj-ptrn-prop-id-init-unresolvable.js | 
          ---
description: Destructuring initializer is an unresolvable reference (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    BindingElement : BindingPattern Initializeropt
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    6.2.3.1 GetValue (V)
    1. ReturnIfAbrupt(V).
    2. If Type(V) is not Reference, return V.
    3. Let base be GetBase(V).
    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
--- | 
          1991 | 
        
        
          | obj-ptrn-prop-id-init.js | 
          ---
description: Binding as specified via property name, identifier, and initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1802 | 
        
        
          | obj-ptrn-prop-id-trailing-comma.js | 
          ---
description: Trailing comma is allowed following BindingPropertyList (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3 Destructuring Binding Patterns
    ObjectBindingPattern[Yield] :
        { }
        { BindingPropertyList[?Yield] }
        { BindingPropertyList[?Yield] , }
--- | 
          1795 | 
        
        
          | obj-ptrn-prop-id.js | 
          ---
description: Binding as specified via property name and identifier (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    SingleNameBinding : BindingIdentifier Initializeropt
    [...]
    8. Return InitializeReferencedBinding(lhs, v).
--- | 
          1784 | 
        
        
          | obj-ptrn-prop-obj-init.js | 
          ---
description: Object binding pattern with "nested" object binding pattern using initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       a. Let defaultValue be the result of evaluating Initializer.
       b. Let v be GetValue(defaultValue).
       c. ReturnIfAbrupt(v).
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2122 | 
        
        
          | obj-ptrn-prop-obj-value-null.js | 
          ---
description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1773 | 
        
        
          | obj-ptrn-prop-obj-value-undef.js | 
          ---
description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          1755 | 
        
        
          | obj-ptrn-prop-obj.js | 
          ---
description: Object binding pattern with "nested" object binding pattern not using initializer (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [generators, destructuring-binding]
flags: [generated]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
    [...]
    3. If Initializer is present and v is undefined, then
       [...]
    4. Return the result of performing BindingInitialization for BindingPattern
       passing v and environment as arguments.
--- | 
          2023 | 
        
        
          | obj-ptrn-rest-getter.js | 
          ---
description: Getter is called when obj is being deconstructed to a rest Object (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1759 | 
        
        
          | obj-ptrn-rest-skip-non-enumerable.js | 
          ---
description: Rest object doesn't contain non-enumerable properties (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1929 | 
        
        
          | obj-ptrn-rest-val-obj.js | 
          ---
description: Rest object contains just unextracted data (generator function expression)
esid: sec-generator-function-definitions-runtime-semantics-evaluation
features: [object-rest, generators, destructuring-binding]
flags: [generated]
includes: [propertyHelper.js]
info: |
    GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
        [...]
        3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
           GeneratorBody, scope, strict).
        [...]
    9.2.1 [[Call]] ( thisArgument, argumentsList)
    [...]
    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
    [...]
    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
    [...]
    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
    [...]
    23. Let iteratorRecord be Record {[[iterator]]:
        CreateListIterator(argumentsList), [[done]]: false}.
    24. If hasDuplicates is true, then
        [...]
    25. Else,
        b. Let formalStatus be IteratorBindingInitialization for formals with
           iteratorRecord and env as arguments.
    [...]
--- | 
          1888 | 
        
        
          | shell.js | 
           | 
          0 |