summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndré Bargull <andre.bargull@gmail.com>2017-09-02 17:08:45 +0200
committerRick Waldron <waldron.rick@gmail.com>2017-09-04 09:42:06 -0400
commitf810ad2550d7cbeb01446aa4cdf59734cd4482b8 (patch)
tree0b0259b66ca40a98876f2091d0fa4582b3c71baa /src
parentc23ea89fe254a498b47fa6efdec908aa1551971d (diff)
downloadqtdeclarative-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')
-rw-r--r--src/async-generators/yield-promise-reject-next-yield-star-async-iterator.case2
-rw-r--r--src/dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case19
-rw-r--r--src/dstr-assignment-for-await/array-elem-put-const.case5
-rw-r--r--src/dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case6
-rw-r--r--src/dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case2
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);