1.language ECMAScript
2
3slotNum = 0x4
4.function any .#*#testCatchPhiDataflow(any a0, any a1, any a2) {
5	nop
6label_9: 
7label_5: 
8label_7: 
9	ldlexvar 0x0, 0x0
10	sta v1
11	throw.undefinedifholewithname globalCond
12	lda v1
13	callruntime.isfalse 0x0
14	jnez label_1
15label_2: 
16	lda.str 1
17	throw
18label_1: 
19	lda.str 2
20	sta v1
21label_6: 
22end_label_6: 
23	jmp label_12
24label_11: 
25	sta v0
26	jmp label_4
27label_12: 
28	mov v0, v1
29label_4: 
30	tryldglobalbyname 0x1, print
31	callarg1 0x2, v0
32	ldundefined
33	returnundefined
34label_10: 
35}
36
37.catchall label_5, end_label_6, label_11
38
39slotNum = 0x3
40.function any .#*#testTryWithAccCatchPhi(any a0, any a1, any a2) {
41	nop
42label_7: 
43label_2: 
44label_4: 
45	ldai 0x1
46	throw
47label_3: 
48end_label_3: 
49label_9: 
50	sta v0
51label_6: 
52	tryldglobalbyname 0x0, print
53	callarg1 0x1, v0
54	ldundefined
55	returnundefined
56label_8: 
57}
58
59.catchall label_2, end_label_3, label_9
60
61slotNum = 0x8
62.function any .#*#testTryWithMoveConstants(any a0, any a1, any a2) {
63	nop
64label_12: 
65	ldai 0x2
66	sta v0
67label_3: 
68label_7: 
69	lda v0
70	throw
71label_4: 
72end_label_4: 
73label_14: 
74label_10: 
75	ldai 0x3
76	sta v1
77	tryldglobalbyname 0x0, print
78	sta v2
79	lda v0
80	stricteq 0x1, v0
81	sta v0
82	lda v2
83	callarg1 0x2, v0
84label_5: 
85label_1: 
86	lda v1
87	throw
88label_6: 
89end_label_6: 
90label_15: 
91label_11: 
92	tryldglobalbyname 0x4, print
93	sta v0
94	lda v1
95	stricteq 0x5, v1
96	sta v1
97	lda v0
98	callarg1 0x6, v1
99	ldundefined
100	returnundefined
101label_13: 
102}
103
104.catchall label_3, end_label_4, label_14
105
106.catchall label_5, end_label_6, label_15
107
108slotNum = 0xc
109.function any .#*#testTryWithRegAccAlloc(any a0, any a1, any a2) {
110	nop
111label_7: 
112label_0: 
113	lda.str s1
114	sta v0
115	lda.str s2
116	sta v1
117	add2 0x0, v0
118	sta v2
119	tryldglobalbyname 0x1, print
120	callarg1 0x2, v2
121label_2: 
122label_4: 
123	mov v2, v1
124	mov v3, v0
125	lda.str s1
126	sta v0
127	mov v3, v0
128	lda.str s2
129	sta v0
130	ldai 0x1
131	mov v2, v0
132	throw
133label_3: 
134end_label_3: 
135label_9: 
136label_6: 
137	lda v2
138	add2 0x4, v3
139	sta v0
140	tryldglobalbyname 0x5, print
141	callarg1 0x6, v0
142	lda v2
143	add2 0x8, v3
144	sta v0
145	tryldglobalbyname 0x9, print
146	callarg1 0xa, v0
147	ldundefined
148	returnundefined
149label_8: 
150}
151
152.catchall label_2, end_label_3, label_9
153
154slotNum = 0xc
155.function any .func_main_0(any a0, any a1, any a2) {
156label_1: 
157label_0: 
158	newlexenv 0x1
159	definefunc 0x0, .#*#testCatchPhiDataflow, 0x0
160	sta v0
161	definefunc 0x1, .#*#testTryWithAccCatchPhi, 0x0
162	sta v1
163	definefunc 0x2, .#*#testTryWithMoveConstants, 0x0
164	sta v2
165	definefunc 0x3, .#*#testTryWithRegAccAlloc, 0x0
166	sta v3
167	ldtrue
168	stlexvar 0x0, 0x0
169	lda v0
170	callarg0 0x4
171	lda v1
172	callarg0 0x6
173	lda v2
174	callarg0 0x8
175	lda v3
176	callarg0 0xa
177	ldundefined
178	returnundefined
179label_2: 
180}
181
182
183