summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_6/Comprehensions/array-yield.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/ecma_6/Comprehensions/array-yield.js')
-rw-r--r--js/src/tests/ecma_6/Comprehensions/array-yield.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/Comprehensions/array-yield.js b/js/src/tests/ecma_6/Comprehensions/array-yield.js
new file mode 100644
index 000000000..69e699522
--- /dev/null
+++ b/js/src/tests/ecma_6/Comprehensions/array-yield.js
@@ -0,0 +1,23 @@
+// Interactions between yield and array comprehensions.
+
+
+function assertIteratorResult(result, value, done) {
+ assertDeepEq(result.value, value);
+ assertEq(result.done, done);
+}
+
+function* t1() { return [for (x of yield 0) x*2] }
+
+var o = t1();
+assertIteratorResult(o.next(), 0, false);
+assertIteratorResult(o.next([0, 1, 2]), [0, 2, 4], true);
+
+function* t2() { return [for (x of [1,2,3]) yield x] }
+
+o = t2();
+assertIteratorResult(o.next(), 1, false);
+assertIteratorResult(o.next(5), 2, false);
+assertIteratorResult(o.next(6), 3, false);
+assertIteratorResult(o.next(7), [5, 6, 7], true);
+
+reportCompare(null, null, "test");