tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

throw-closes.js (781B)


      1 // When a generator function throws, the generator is closed.
      2 
      3 load(libdir + "asserts.js");
      4 load(libdir + "iteration.js");
      5 
      6 // Star generator, next() throws.
      7 function *g() {
      8    yield 1;
      9    yield 2;
     10    throw 3;
     11    yield 4;
     12 }
     13 var i = g();
     14 assertIteratorNext(i, 1);
     15 assertIteratorNext(i, 2);
     16 assertThrowsValue(() => i.next(), 3);
     17 assertIteratorDone(i);
     18 assertIteratorDone(i);
     19 
     20 // Star generator, throw() throws.
     21 function *h() {
     22    yield 1;
     23    yield 2;
     24 }
     25 var i = h();
     26 assertIteratorNext(i, 1);
     27 assertThrowsValue(() => i.throw(4), 4);
     28 assertIteratorDone(i);
     29 
     30 // Star generator, return() throws.
     31 function *h2() {
     32    try {
     33 yield 1;
     34 yield 2;
     35    } finally {
     36 throw 6;
     37    }
     38 }
     39 var i = h2();
     40 assertIteratorNext(i, 1);
     41 assertThrowsValue(() => i.return(4), 6);
     42 assertIteratorDone(i);