diff options
Diffstat (limited to 'test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js')
-rw-r--r-- | test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js b/test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js index 84175bc50..e1f43ddf8 100644 --- a/test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js +++ b/test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js @@ -40,12 +40,16 @@ info: | 8. If innerResult.[[type]] is throw, return Completion(innerResult). ---*/ +var nextCount = 0; var returnCount = 0; var unreachable = 0; var thisValue = null; var args = null; -var iterable = {}; var iterator = { + next: function() { + nextCount += 1; + return {done: false, value: undefined}; + }, return: function() { returnCount += 1; thisValue = this; @@ -53,7 +57,7 @@ var iterator = { return {}; } }; -var iter, result; +var iterable = {}; iterable[Symbol.iterator] = function() { return iterator; }; @@ -62,7 +66,7 @@ function* g() { var counter = 0; -for ([ {}[yield] ] of [iterable]) { +for ([ {} = yield ] of [iterable]) { unreachable += 1; counter += 1; } @@ -70,10 +74,15 @@ for ([ {}[yield] ] of [iterable]) { assert.sameValue(counter, 1); } -iter = g(); +var iter = g(); iter.next(); -result = iter.return(777); +assert.sameValue(nextCount, 1); +assert.sameValue(returnCount, 0); + +var result = iter.return(777); + +assert.sameValue(nextCount, 1); assert.sameValue(returnCount, 1); assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); assert.sameValue(result.value, 777); |