tor-browser

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

wrappers.js (679B)


      1 // Generator methods work transparently on CrossCompartmentWrappers.
      2 
      3 load(libdir + "asserts.js");
      4 load(libdir + "iteration.js");
      5 
      6 var g = newGlobal();
      7 
      8 function *gen3() { yield 1; yield 2; }
      9 it = gen3();
     10 g.eval("function *gen4() { yield 5; yield 6; }; var it4 = gen4();");
     11 
     12 // StarGenerator.next
     13 assertIteratorResult(it.next.call(g.it4), 5, false)
     14 
     15 // StarGenerator.throw
     16 assertThrowsValue(() => it.throw.call(g.it4, 8), 8);
     17 
     18 // StarGenerator.return
     19 assertIteratorResult(it.return.call(g.it4, 8), 8, true);
     20 
     21 // Other objects should throw.
     22 try {
     23    it.next.call([]);
     24    assertEq(0, 1);
     25 } catch (e) {
     26    assertEq(e.toString().includes("called on incompatible Array"), true);
     27 }