diff options
author | André Bargull <andre.bargull@gmail.com> | 2017-09-02 17:08:45 +0200 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2017-09-04 09:42:06 -0400 |
commit | f810ad2550d7cbeb01446aa4cdf59734cd4482b8 (patch) | |
tree | 0b0259b66ca40a98876f2091d0fa4582b3c71baa /src | |
parent | c23ea89fe254a498b47fa6efdec908aa1551971d (diff) | |
download | qtdeclarative-testsuites-f810ad2550d7cbeb01446aa4cdf59734cd4482b8.tar.gz |
Fix issues in async generator case files
Incorrect $DONE handlers which led to calling $DONE twice
- async-generators/yield-promise-reject-next-yield-star-async-iterator.case
- dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case
$DONE handler not called at all:
- dstr-assignment-for-await/array-elem-put-const.case
- dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case
Incorrect assumed execution sequence in IteratorDestructuringAssignmentEvaluation:
- dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case
Diffstat (limited to 'src')
5 files changed, 28 insertions, 6 deletions
diff --git a/src/async-generators/yield-promise-reject-next-yield-star-async-iterator.case b/src/async-generators/yield-promise-reject-next-yield-star-async-iterator.case index 5239f6068..5e1f5e1bf 100644 --- a/src/async-generators/yield-promise-reject-next-yield-star-async-iterator.case +++ b/src/async-generators/yield-promise-reject-next-yield-star-async-iterator.case @@ -28,4 +28,4 @@ iter.next().then(() => { assert.sameValue(done, true, "The value of IteratorResult.done is `true`"); assert.sameValue(value, undefined, "The value of IteratorResult.value is `undefined`"); }).then($DONE, $DONE); -}).then($DONE, $DONE); +}, $DONE).catch($DONE); diff --git a/src/dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case b/src/dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case index ff7953160..93d4c0402 100644 --- a/src/dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case +++ b/src/dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case @@ -4,6 +4,12 @@ desc: > IteratorClose throws a TypeError when `return` returns a non-Object value info: | + AssignmentElement : DestructuringAssignmentTarget Initializer + 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then + a. Let lref be the result of evaluating DestructuringAssignmentTarget. + b. ReturnIfAbrupt(lref). + [...] + ArrayAssignmentPattern : [ AssignmentElementList ] [...] @@ -43,7 +49,12 @@ iterable //- body unreachable += 1; //- teardown -iter.next().then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => { - assert.sameValue(unreachable, 0); - assert.sameValue(constructor, TypeError); -}).then($DONE, $DONE); +iter.next().then(result => { + assert.sameValue(result.value, undefined); + assert.sameValue(result.done, false); + + iter.return().then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => { + assert.sameValue(unreachable, 0); + assert.sameValue(constructor, TypeError); + }).then($DONE, $DONE); +}, $DONE).catch($DONE); diff --git a/src/dstr-assignment-for-await/array-elem-put-const.case b/src/dstr-assignment-for-await/array-elem-put-const.case index 60709de65..8b4236b8d 100644 --- a/src/dstr-assignment-for-await/array-elem-put-const.case +++ b/src/dstr-assignment-for-await/array-elem-put-const.case @@ -15,3 +15,8 @@ const c = null; [ c ] //- vals [1] +//- teardown +promise.then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => { + assert.sameValue(iterCount, 0); + assert.sameValue(constructor, TypeError); +}).then($DONE, $DONE); diff --git a/src/dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case b/src/dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case index 5b831a9de..5d7e81a80 100644 --- a/src/dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case +++ b/src/dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case @@ -57,3 +57,9 @@ TypeError [ x , , ] //- vals iterable +//- teardown +promise.then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => { + assert.sameValue(iterCount, 0); + assert.sameValue(nextCount, 2); + assert.sameValue(constructor, TypeError); +}).then($DONE, $DONE); diff --git a/src/dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case b/src/dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case index 892f618f8..9ffd6a557 100644 --- a/src/dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case +++ b/src/dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case @@ -52,4 +52,4 @@ iter.next().then(() => { assert.sameValue(x, 1, 'x'); assert.sameValue(y.length, 0, 'y.length'); }).then($DONE, $DONE); -}).then($DONE, $DONE); +}, $DONE).catch($DONE); |