summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/generators/delegating-yield-4.js
blob: c076731727cd026587ea2f56ae74cf83940816b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// With yield*, inner and outer iterators can be invoked separately.

function* g(n) { for (var i=0; i<n; i++) yield i; }
function* delegate(iter) { return yield* iter; }

var inner = g(20);
var outer1 = delegate(inner);
var outer2 = delegate(inner);

assertIteratorNext(outer1, 0);
assertIteratorNext(outer2, 1);
assertIteratorNext(inner, 2);
assertIteratorNext(outer1, 3);
assertIteratorNext(outer2, 4);
assertIteratorNext(inner, 5);

if (typeof reportCompare == "function")
    reportCompare(true, true);