tor-browser

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

using-in-generators.js (977B)


      1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
      2 
      3 load(libdir + "asserts.js");
      4 
      5 const disposedInGenerator = [];
      6 function* gen() {
      7  using x = {
      8    value: 1,
      9    [Symbol.dispose]() {
     10      disposedInGenerator.push(42);
     11    }
     12  };
     13  yield x;
     14 }
     15 function testDisposalsInGenerator() {
     16  let iter = gen();
     17  iter.next();
     18  iter.next();
     19  disposedInGenerator.push(43);
     20 }
     21 testDisposalsInGenerator();
     22 assertArrayEq(disposedInGenerator, [42, 43]);
     23 
     24 const disposedInGeneratorWithForcedReturn = [];
     25 function* gen2() {
     26  using x = {
     27    value: 1,
     28    [Symbol.dispose]() {
     29      disposedInGeneratorWithForcedReturn.push(42);
     30    }
     31  };
     32  yield 1;
     33  yield 2;
     34 }
     35 function testDisposalsInGeneratorWithForcedReturn() {
     36  const gen = gen2();
     37  gen.next();
     38  gen.return();
     39  disposedInGeneratorWithForcedReturn.push(43);
     40 }
     41 testDisposalsInGeneratorWithForcedReturn();
     42 assertArrayEq(disposedInGeneratorWithForcedReturn, [42, 43]);