tor-browser

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

using-loop-continue.js (2237B)


      1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
      2 
      3 load(libdir + "asserts.js");
      4 
      5 const disposedInFor = [];
      6 function testDisposalsInForWithContinue() {
      7  const disposables = [
      8    {
      9      value: "a",
     10      [Symbol.dispose]: () => disposedInFor.push("disposed a")
     11    },
     12    {
     13      value: "b",
     14      [Symbol.dispose]: () => disposedInFor.push("disposed b")
     15    },
     16    {
     17      value: "c",
     18      [Symbol.dispose]: () => disposedInFor.push("disposed c")
     19    }
     20  ];
     21 
     22  for (let i = 0; i < disposables.length; i++) {
     23    using disposable = disposables[i];
     24    if (disposable.value === "b") {
     25      continue;
     26    }
     27    disposedInFor.push(disposable.value);
     28  }
     29 }
     30 
     31 testDisposalsInForWithContinue();
     32 assertArrayEq(disposedInFor, ["a", "disposed a", "disposed b", "c", "disposed c"]);
     33 
     34 const disposedInWhile = [];
     35 function testDisposalsInWhileWithContinue() {
     36  const disposables = [
     37    {
     38      value: "a",
     39      [Symbol.dispose]: () => disposedInWhile.push("disposed a")
     40    },
     41    {
     42      value: "b",
     43      [Symbol.dispose]: () => disposedInWhile.push("disposed b")
     44    },
     45    {
     46      value: "c",
     47      [Symbol.dispose]: () => disposedInWhile.push("disposed c")
     48    }
     49  ];
     50 
     51  let i = 0;
     52  while (i < disposables.length) {
     53    using disposable = disposables[i];
     54    if (disposable.value === "b") {
     55      i++;
     56      continue;
     57    }
     58    disposedInWhile.push(disposable.value);
     59    i++;
     60  }
     61 }
     62 
     63 testDisposalsInWhileWithContinue();
     64 assertArrayEq(disposedInWhile, ["a", "disposed a", "disposed b", "c", "disposed c"]);
     65 
     66 const disposedInForOf = [];
     67 function testDisposalsInForOfWithContinue() {
     68  const disposables = [
     69    {
     70      value: "a",
     71      [Symbol.dispose]: () => disposedInForOf.push("disposed a")
     72    },
     73    {
     74      value: "b",
     75      [Symbol.dispose]: () => disposedInForOf.push("disposed b")
     76    },
     77    {
     78      value: "c",
     79      [Symbol.dispose]: () => disposedInForOf.push("disposed c")
     80    }
     81  ];
     82 
     83  for (using disposable of disposables) {
     84    if (disposable.value === "b") {
     85      continue;
     86    }
     87    disposedInForOf.push(disposable.value);
     88  }
     89 }
     90 
     91 testDisposalsInForOfWithContinue();
     92 assertArrayEq(disposedInForOf, ["a", "disposed a", "disposed b", "c", "disposed c"]);