summaryrefslogtreecommitdiff
path: root/test/language/statements/for-of/dstr-array-elem-iter-rtrn-close.js
diff options
context:
space:
mode:
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.js19
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);