|
1 Module = {}; |
|
2 var Runtime = { |
|
3 alignMemory: function alignMemory(size, quantum) { |
|
4 return Math.ceil((size) / (quantum ? quantum : 4)) * (quantum ? quantum : 4); |
|
5 }, |
|
6 } |
|
7 function assert(condition, text) { |
|
8 throw text; |
|
9 } |
|
10 STACK_ROOT = STACKTOP = Runtime.alignMemory(1); |
|
11 function _main() { |
|
12 var __stackBase__ = STACKTOP; |
|
13 var label; |
|
14 label = 2; |
|
15 while (1) { |
|
16 switch (label) { |
|
17 case 2: |
|
18 var $f = __stackBase__; |
|
19 var $1 = __stackBase__ + 12; |
|
20 var $2 = __stackBase__ + 24; |
|
21 var $3 = $f | 0; |
|
22 var $4 = $f + 4 | 0; |
|
23 var $5 = $f + 8 | 0; |
|
24 var $_0 = $1 | 0; |
|
25 var $_1 = $1 + 4 | 0; |
|
26 var $_2 = $1 + 8 | 0; |
|
27 var $j_012 = 0; |
|
28 label = 4; |
|
29 break; |
|
30 case 4: |
|
31 assertEq($_2, 24); |
|
32 if (($j_012 | 0) != 110) { |
|
33 var $j_012 = $j_012 + 1; |
|
34 break; |
|
35 } |
|
36 var $23 = $i_014 + 1 | 0; |
|
37 if (($23 | 0) != 110) { |
|
38 var $i_014 = $23; |
|
39 var $j_012 = 0; |
|
40 label = 4; |
|
41 break; |
|
42 } |
|
43 default: |
|
44 assert(0, "bad label: " + label); |
|
45 } |
|
46 } |
|
47 } |
|
48 try { |
|
49 _main(0, [], 0); |
|
50 assertEq(0, 1); |
|
51 } catch(e) { |
|
52 assertEq(e, "bad label: 4"); |
|
53 } |