tor-browser

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

checkreturn-while.js (1228B)


      1 load(libdir + "asserts.js");
      2 
      3 function testReturn() {
      4  class C extends class {} {
      5    constructor() {
      6      while (true) {
      7        return;
      8      }
      9      assertEq(true, false, "unreachable");
     10    }
     11  }
     12 
     13  for (var i = 0; i < 100; ++i) {
     14    assertThrowsInstanceOf(() => new C(), ReferenceError);
     15  }
     16 }
     17 testReturn();
     18 
     19 function testReturnSuper() {
     20  class C extends class {} {
     21    constructor() {
     22      super();
     23      while (true) {
     24        return;
     25      }
     26      assertEq(true, false, "unreachable");
     27    }
     28  }
     29 
     30  for (var i = 0; i < 100; ++i) {
     31    // No error.
     32    new C();
     33  }
     34 }
     35 testReturnSuper();
     36 
     37 function testReturnPrimitive() {
     38  class C extends class {} {
     39    constructor() {
     40      while (true) {
     41        return 0;
     42      }
     43      assertEq(true, false, "unreachable");
     44    }
     45  }
     46 
     47  for (var i = 0; i < 100; ++i) {
     48    assertThrowsInstanceOf(() => new C(), TypeError);
     49  }
     50 }
     51 testReturnPrimitive();
     52 
     53 function testReturnPrimitiveSuper() {
     54  class C extends class {} {
     55    constructor() {
     56      super();
     57      while (true) {
     58        return 0;
     59      }
     60      assertEq(true, false, "unreachable");
     61    }
     62  }
     63 
     64  for (var i = 0; i < 100; ++i) {
     65    assertThrowsInstanceOf(() => new C(), TypeError);
     66  }
     67 }
     68 testReturnPrimitiveSuper();