diff options
author | Valerie R Young <valerie@bocoup.com> | 2018-02-16 14:20:03 -0500 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2018-02-22 13:34:08 -0500 |
commit | 0e99fa8a3a547d8cd210ed2ea9bf5949aa4011d3 (patch) | |
tree | 25510aa82fd5074d8c9576b4b6da97125ac1ab70 | |
parent | 8add0d64b226665972d8021a7a271b82c2c4ffa2 (diff) | |
download | qtdeclarative-testsuites-0e99fa8a3a547d8cd210ed2ea9bf5949aa4011d3.tar.gz |
async-iteration: add esid for 'esid: pending' tests
35 files changed, 214 insertions, 37 deletions
diff --git a/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js b/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js index cd5abe086..5e8e493f6 100644 --- a/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js +++ b/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and IsSimpleParameterList of UniqueFormalParameters is false. diff --git a/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js b/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js index 79d1f7ae8..03574a241 100644 --- a/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js +++ b/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a SyntaxError if FormalParameters contains arguments in strict mode. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js b/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js index 112881b82..bdd70a334 100644 --- a/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js +++ b/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-identifiers-static-semantics-early-errors description: > `await` is not a valid BindingIdentifier for AsyncGeneratorExpressions. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js index 42882e1a8..2984c5a5f 100644 --- a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js +++ b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-identifiers-static-semantics-early-errors description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. diff --git a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js index d504afa5a..d9d2e9abb 100644 --- a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js +++ b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-identifiers-static-semantics-early-errors description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. diff --git a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js index 52e875a4e..9e9ff9190 100644 --- a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js +++ b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a syntax error if AsyncGeneratorBody contains SuperCall is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js index 0aebe9d19..a196756b3 100644 --- a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js +++ b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a syntax error if AsyncGeneratorBody contains SuperProperty is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js b/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js index 145aaec54..22ce8f319 100644 --- a/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js +++ b/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-strict-mode-of-ecmascript description: > It is a SyntaxError if FormalParameters contains eval in strict mode. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js index 782c8c750..0a9413259 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js @@ -3,10 +3,13 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody +info: | + It is a Syntax Error if any element of the BoundNames of FormalParameters + also occurs in the LexicallyDeclaredNames of GeneratorBody. negative: phase: parse type: SyntaxError diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js index 2b5604364..149d7fe6e 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js index 7bdb8cdba..407c213bf 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a Syntax Error if FormalParameters Contains AwaitExpression is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js index fe4081d26..db30969bf 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: sec-identifiers +esid: sec-identifiers-static-semantics-early-errors description: > `await` is a reserved keyword within async generator function bodies and may not be used as the binding identifier of a parameter. diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js index f3d63c954..c4046911d 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a syntax error if FormalParameters contains SuperCall is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js index fab4a9e8e..c8950ab9b 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a syntax error if FormalParameters contains SuperProperty is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js index 155fe3f8e..edb21f3a9 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > It is a Syntax Error if FormalParameters Contains YieldExpression is true. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js index d914897c6..4f1f9aefb 100644 --- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js +++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: sec-identifiers +esid: sec-identifiers-static-semantics-early-errors description: > `yield` is a reserved keyword within async generator function bodies and may not be used as the binding identifier of a parameter. diff --git a/test/language/expressions/async-generator/early-errors-expression-label-name-await.js b/test/language/expressions/async-generator/early-errors-expression-label-name-await.js index d93b02a70..7f18c4318 100644 --- a/test/language/expressions/async-generator/early-errors-expression-label-name-await.js +++ b/test/language/expressions/async-generator/early-errors-expression-label-name-await.js @@ -3,10 +3,14 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: sec-identifiers +esid: sec-identifiers-static-semantics-early-errors description: > `await` is a reserved keyword within async generator function bodies and may not be used as a label. +info: | + BindingIdentifier : await + + It is a Syntax Error if this production has an [Await] parameter. negative: phase: parse type: SyntaxError diff --git a/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js b/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js index b8f990e6f..5035798cc 100644 --- a/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js +++ b/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js @@ -3,10 +3,16 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: sec-identifiers +esid: sec-identifiers-static-semantics-early-errors description: > `yield` is a reserved keyword within async generator function bodies and may not be used as a label. +info: | + BindingIdentifier : Identifier + LabelIdentifier : Identifier + + It is a Syntax Error if this production has an [Await] parameter and + StringValue of Identifier is "await". negative: phase: parse type: SyntaxError diff --git a/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js b/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js index 050ffa37b..475f2febf 100644 --- a/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js +++ b/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: prod-LeftHandSideExpression description: > Async generator function expressions are not a simple assignment target. negative: diff --git a/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js b/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js index 7f0b95f4c..6f698792e 100644 --- a/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js +++ b/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-async-generator-function-definitions-static-semantics-early-errors description: > `yield` is not a valid BindingIdentifier for AsyncGeneratorExpressions. negative: diff --git a/test/language/expressions/async-generator/return-suspendedStart-promise.js b/test/language/expressions/async-generator/return-suspendedStart-promise.js index e0c57ab21..8556d7fd3 100644 --- a/test/language/expressions/async-generator/return-suspendedStart-promise.js +++ b/test/language/expressions/async-generator/return-suspendedStart-promise.js @@ -3,11 +3,21 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Generator is not resumed after a return type completion. Returning promise before start info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedStart", generator is closed without being resumed. diff --git a/test/language/expressions/async-generator/return-suspendedStart.js b/test/language/expressions/async-generator/return-suspendedStart.js index 2de04762f..f54041c8b 100644 --- a/test/language/expressions/async-generator/return-suspendedStart.js +++ b/test/language/expressions/async-generator/return-suspendedStart.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Generator is not resumed after a return type completion. Returning non-promise before start info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedStart", generator is closed without being resumed. diff --git a/test/language/expressions/async-generator/return-suspendedYield-promise.js b/test/language/expressions/async-generator/return-suspendedYield-promise.js index 686b53586..5387e5444 100644 --- a/test/language/expressions/async-generator/return-suspendedYield-promise.js +++ b/test/language/expressions/async-generator/return-suspendedYield-promise.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Generator is not resumed after a return type completion. Returning promise info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedYield", generator is resumed and immediately closes the generator diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js index 34687c09f..48052d139 100644 --- a/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js +++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Returned generator suspended in a yield position resumes execution within an associated finally info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js index 4ad8c6270..493f65605 100644 --- a/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js +++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js @@ -3,12 +3,23 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Returned generator suspended in a yield position resumes execution within an associated finally, capturing a new abrupt completion and does not resume again within that finally block. info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally.js index f400b8bd9..3660358e3 100644 --- a/test/language/expressions/async-generator/return-suspendedYield-try-finally.js +++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Returned generator suspended in a yield position resumes execution within an associated finally. info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/return-suspendedYield.js b/test/language/expressions/async-generator/return-suspendedYield.js index 25e5f6f10..21aca35e6 100644 --- a/test/language/expressions/async-generator/return-suspendedYield.js +++ b/test/language/expressions/async-generator/return-suspendedYield.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-return description: > Returned generator suspended in a yield position does not resume execution without an associated finally. info: | + AsyncGenerator.prototype.return ( value ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is "suspendedYield", generator is resumed and immediately closes the generator diff --git a/test/language/expressions/async-generator/throw-suspendedStart-promise.js b/test/language/expressions/async-generator/throw-suspendedStart-promise.js index 7c62aba17..06fccf685 100644 --- a/test/language/expressions/async-generator/throw-suspendedStart-promise.js +++ b/test/language/expressions/async-generator/throw-suspendedStart-promise.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Generator is not resumed after a throw completion with a promise arg before start info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedStart", generator is closed without being resumed. diff --git a/test/language/expressions/async-generator/throw-suspendedStart.js b/test/language/expressions/async-generator/throw-suspendedStart.js index 6cc1c2326..ef8abdf55 100644 --- a/test/language/expressions/async-generator/throw-suspendedStart.js +++ b/test/language/expressions/async-generator/throw-suspendedStart.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Generator is not resumed after a throw completion with a non-promise arg before start info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedStart", generator is closed without being resumed. diff --git a/test/language/expressions/async-generator/throw-suspendedYield-promise.js b/test/language/expressions/async-generator/throw-suspendedYield-promise.js index 0d2dbaf94..3948ed65d 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield-promise.js +++ b/test/language/expressions/async-generator/throw-suspendedYield-promise.js @@ -3,10 +3,21 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Generator is not resumed after a throw completion with a promise arg info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", generator is resumed and immediately and @@ -36,7 +47,7 @@ it.next().then(function(ret) { assert.sameValue(ret.value, undefined, 'Generator is closed'); assert.sameValue(ret.done, true, 'Generator is closed'); }).then($DONE, $DONE); - + }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js b/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js index 5806017fc..dad975f7a 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js +++ b/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Thrown generator suspended in a yield position resumes execution within the associated catch-block info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an @@ -40,7 +51,7 @@ it.next().then(function(ret) { assert.sameValue(ret.value, undefined, 'Generator is closed'); assert.sameValue(ret.done, true, 'Generator is closed'); }).then($DONE, $DONE); - + }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js index 2a9740291..281aee5d6 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js +++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Thrown generator suspended in a yield position resumes execution within the associated finally block, returns and suspends execution again. info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js index b7faf9cec..15088f8ff 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js +++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js @@ -3,12 +3,23 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Thrown generator suspended in a yield position resumes execution within the associated finally block and throws an error and suspendeds execution again info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js index ef7e200b5..3ec534a3a 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js +++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js @@ -3,11 +3,22 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Thrown generator suspended in a yield position resumes execution within the associated finally block. info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", and generator is resumed within a try-block with an diff --git a/test/language/expressions/async-generator/throw-suspendedYield.js b/test/language/expressions/async-generator/throw-suspendedYield.js index eba5c47b6..b413285bc 100644 --- a/test/language/expressions/async-generator/throw-suspendedYield.js +++ b/test/language/expressions/async-generator/throw-suspendedYield.js @@ -3,10 +3,21 @@ /*--- author: Caitlin Potter <caitp@igalia.com> -esid: pending +esid: sec-asyncgenerator-prototype-throw description: > Generator is not resumed after a throw completion with an error object info: | + AsyncGenerator.prototype.throw ( exception ) + 1. Let generator be the this value. + 2. Let completion be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}. + 3. Return ! AsyncGeneratorEnqueue(generator, completion). + + AsyncGeneratorEnqueue ( generator, completion ) + ... + 8. If state is not "executing", then + a. Perform ! AsyncGeneratorResumeNext(generator). + ... + AsyncGeneratorResumeNext: If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is "suspendedYield", generator is resumed and immediately and |