Backed out 14 changesets (bug 1865005, bug 1864168, bug 1864155, bug 1862814, bug...
[gecko.git] / js / src / jit-test / tests / class / checkreturn-while.js
blob426e7effdcd05e18bad13a10154cc237ea62d2e9
1 load(libdir + "asserts.js");
3 function testReturn() {
4   class C extends class {} {
5     constructor() {
6       while (true) {
7         return;
8       }
9       assertEq(true, false, "unreachable");
10     }
11   }
13   for (var i = 0; i < 100; ++i) {
14     assertThrowsInstanceOf(() => new C(), ReferenceError);
15   }
17 testReturn();
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   }
30   for (var i = 0; i < 100; ++i) {
31     // No error.
32     new C();
33   }
35 testReturnSuper();
37 function testReturnPrimitive() {
38   class C extends class {} {
39     constructor() {
40       while (true) {
41         return 0;
42       }
43       assertEq(true, false, "unreachable");
44     }
45   }
47   for (var i = 0; i < 100; ++i) {
48     assertThrowsInstanceOf(() => new C(), TypeError);
49   }
51 testReturnPrimitive();
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   }
64   for (var i = 0; i < 100; ++i) {
65     assertThrowsInstanceOf(() => new C(), TypeError);
66   }
68 testReturnPrimitiveSuper();