diff options
Diffstat (limited to 'test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js')
-rw-r--r-- | test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js index ddd3f1fb0..7fb85ba02 100644 --- a/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js +++ b/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-iter-rtrn-close-null.js @@ -24,12 +24,6 @@ info: | lhs using AssignmentPattern as the goal symbol. [...] - 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 ] [...] @@ -46,8 +40,15 @@ info: | ---*/ let unreachable = 0; +let nextCount = 0; +let returnCount = 0; let iterator = { + next() { + nextCount += 1; + return {done: false, value: undefined}; + }, return() { + returnCount += 1; return null; } }; @@ -59,7 +60,7 @@ let iterable = { let iterCount = 0; async function * fn() { - for await ([ {}[yield] ] of [iterable]) { + for await ([ {} = yield ] of [iterable]) { unreachable += 1; iterCount += 1; } @@ -68,10 +69,14 @@ async function * fn() { let iter = fn(); iter.next().then(result => { + assert.sameValue(nextCount, 1); + assert.sameValue(returnCount, 0); assert.sameValue(result.value, undefined); assert.sameValue(result.done, false); iter.return().then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => { + assert.sameValue(nextCount, 1); + assert.sameValue(returnCount, 1); assert.sameValue(unreachable, 0); assert.sameValue(constructor, TypeError); }).then($DONE, $DONE); |