Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(709)

Side by Side Diff: pkg/analyzer2dart/test/sexpr_data.dart

Issue 813753002: Change the S-expression representation of constant values. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// Test data for sexpr_test. 5 /// Test data for sexpr_test.
6 library test.sexpr.data; 6 library test.sexpr.data;
7 7
8 import 'test_helper.dart'; 8 import 'test_helper.dart';
9 9
10 class TestSpec extends TestSpecBase { 10 class TestSpec extends TestSpecBase {
11 // A [String] or a [Map<String, String>]. 11 // A [String] or a [Map<String, String>].
12 final output; 12 final output;
13 13
14 /// True if the test should be skipped when testing analyzer2dart. 14 /// True if the test should be skipped when testing analyzer2dart.
15 final bool skipInAnalyzerFrontend; 15 final bool skipInAnalyzerFrontend;
16 16
17 const TestSpec(String input, this.output, 17 const TestSpec(String input, this.output,
18 {this.skipInAnalyzerFrontend: false}) : super(input); 18 {this.skipInAnalyzerFrontend: false}) : super(input);
19 } 19 }
20 20
21 const List<Group> TEST_DATA = const [ 21 const List<Group> TEST_DATA = const [
22 const Group('Empty main', const [ 22 const Group('Empty main', const [
23 const TestSpec(''' 23 const TestSpec('''
24 main() {} 24 main() {}
25 ''', ''' 25 ''', '''
26 (FunctionDefinition main () return () 26 (FunctionDefinition main () return ()
27 (LetPrim v0 (Constant NullConstant)) 27 (LetPrim v0 (Constant (Null)))
28 (InvokeContinuation return v0)) 28 (InvokeContinuation return v0))
29 '''), 29 '''),
30 30
31 const TestSpec(''' 31 const TestSpec('''
32 foo() {} 32 foo() {}
33 main() { 33 main() {
34 foo(); 34 foo();
35 } 35 }
36 ''', ''' 36 ''', '''
37 (FunctionDefinition main () return () 37 (FunctionDefinition main () return ()
38 (LetCont (k0 v0) 38 (LetCont (k0 v0)
39 (LetPrim v1 (Constant NullConstant)) 39 (LetPrim v1 (Constant (Null)))
40 (InvokeContinuation return v1)) 40 (InvokeContinuation return v1))
41 (InvokeStatic foo k0)) 41 (InvokeStatic foo k0))
42 ''') 42 ''')
43 ]), 43 ]),
44 44
45 const Group('Literals', const [ 45 const Group('Literals', const [
46 const TestSpec(''' 46 const TestSpec('''
47 main() { 47 main() {
48 return 0; 48 return 0;
49 } 49 }
50 ''', ''' 50 ''', '''
51 (FunctionDefinition main () return () 51 (FunctionDefinition main () return ()
52 (LetPrim v0 (Constant IntConstant(0))) 52 (LetPrim v0 (Constant (Int 0)))
53 (InvokeContinuation return v0)) 53 (InvokeContinuation return v0))
54 '''), 54 '''),
55 55
56 const TestSpec(''' 56 const TestSpec('''
57 main() { 57 main() {
58 return 1.5; 58 return 1.5;
59 } 59 }
60 ''', ''' 60 ''', '''
61 (FunctionDefinition main () return () 61 (FunctionDefinition main () return ()
62 (LetPrim v0 (Constant DoubleConstant(1.5))) 62 (LetPrim v0 (Constant (Double 1.5)))
63 (InvokeContinuation return v0)) 63 (InvokeContinuation return v0))
64 '''), 64 '''),
65 65
66 const TestSpec(''' 66 const TestSpec('''
67 main() { 67 main() {
68 return true; 68 return true;
69 } 69 }
70 ''', ''' 70 ''', '''
71 (FunctionDefinition main () return () 71 (FunctionDefinition main () return ()
72 (LetPrim v0 (Constant BoolConstant(true))) 72 (LetPrim v0 (Constant (Bool true)))
73 (InvokeContinuation return v0)) 73 (InvokeContinuation return v0))
74 '''), 74 '''),
75 75
76 const TestSpec(''' 76 const TestSpec('''
77 main() { 77 main() {
78 return false; 78 return false;
79 } 79 }
80 ''', ''' 80 ''', '''
81 (FunctionDefinition main () return () 81 (FunctionDefinition main () return ()
82 (LetPrim v0 (Constant BoolConstant(false))) 82 (LetPrim v0 (Constant (Bool false)))
83 (InvokeContinuation return v0)) 83 (InvokeContinuation return v0))
84 '''), 84 '''),
85 85
86 const TestSpec(''' 86 const TestSpec('''
87 main() { 87 main() {
88 return "a"; 88 return "a";
89 } 89 }
90 ''', ''' 90 ''', '''
91 (FunctionDefinition main () return () 91 (FunctionDefinition main () return ()
92 (LetPrim v0 (Constant StringConstant("a"))) 92 (LetPrim v0 (Constant (String "a")))
93 (InvokeContinuation return v0)) 93 (InvokeContinuation return v0))
94 '''), 94 '''),
95 ]), 95 ]),
96 96
97 const Group('Parameters', const [ 97 const Group('Parameters', const [
98 const TestSpec(''' 98 const TestSpec('''
99 main(args) {} 99 main(args) {}
100 ''', ''' 100 ''', '''
101 (FunctionDefinition main (args) return () 101 (FunctionDefinition main (args) return ()
102 (LetPrim v0 (Constant NullConstant)) 102 (LetPrim v0 (Constant (Null)))
103 (InvokeContinuation return v0)) 103 (InvokeContinuation return v0))
104 '''), 104 '''),
105 105
106 const TestSpec(''' 106 const TestSpec('''
107 main(a, b) {} 107 main(a, b) {}
108 ''', ''' 108 ''', '''
109 (FunctionDefinition main (a b) return () 109 (FunctionDefinition main (a b) return ()
110 (LetPrim v0 (Constant NullConstant)) 110 (LetPrim v0 (Constant (Null)))
111 (InvokeContinuation return v0)) 111 (InvokeContinuation return v0))
112 '''), 112 '''),
113 ]), 113 ]),
114 114
115 const Group('Pass arguments', const [ 115 const Group('Pass arguments', const [
116 const TestSpec(''' 116 const TestSpec('''
117 foo(a) {} 117 foo(a) {}
118 main() { 118 main() {
119 foo(null); 119 foo(null);
120 } 120 }
121 ''', ''' 121 ''', '''
122 (FunctionDefinition main () return () 122 (FunctionDefinition main () return ()
123 (LetPrim v0 (Constant NullConstant)) 123 (LetPrim v0 (Constant (Null)))
124 (LetCont (k0 v1) 124 (LetCont (k0 v1)
125 (LetPrim v2 (Constant NullConstant)) 125 (LetPrim v2 (Constant (Null)))
126 (InvokeContinuation return v2)) 126 (InvokeContinuation return v2))
127 (InvokeStatic foo v0 k0)) 127 (InvokeStatic foo v0 k0))
128 '''), 128 '''),
129 129
130 const TestSpec(''' 130 const TestSpec('''
131 bar(b, c) {} 131 bar(b, c) {}
132 foo(a) {} 132 foo(a) {}
133 main() { 133 main() {
134 foo(null); 134 foo(null);
135 bar(0, ""); 135 bar(0, "");
136 } 136 }
137 ''', ''' 137 ''', '''
138 (FunctionDefinition main () return () 138 (FunctionDefinition main () return ()
139 (LetPrim v0 (Constant NullConstant)) 139 (LetPrim v0 (Constant (Null)))
140 (LetCont (k0 v1) 140 (LetCont (k0 v1)
141 (LetPrim v2 (Constant IntConstant(0))) 141 (LetPrim v2 (Constant (Int 0)))
142 (LetPrim v3 (Constant StringConstant(""))) 142 (LetPrim v3 (Constant (String "")))
143 (LetCont (k1 v4) 143 (LetCont (k1 v4)
144 (LetPrim v5 (Constant NullConstant)) 144 (LetPrim v5 (Constant (Null)))
145 (InvokeContinuation return v5)) 145 (InvokeContinuation return v5))
146 (InvokeStatic bar v2 v3 k1)) 146 (InvokeStatic bar v2 v3 k1))
147 (InvokeStatic foo v0 k0)) 147 (InvokeStatic foo v0 k0))
148 '''), 148 '''),
149 149
150 const TestSpec(''' 150 const TestSpec('''
151 foo(a) {} 151 foo(a) {}
152 main() { 152 main() {
153 return foo(null); 153 return foo(null);
154 } 154 }
155 ''', ''' 155 ''', '''
156 (FunctionDefinition main () return () 156 (FunctionDefinition main () return ()
157 (LetPrim v0 (Constant NullConstant)) 157 (LetPrim v0 (Constant (Null)))
158 (LetCont (k0 v1) 158 (LetCont (k0 v1)
159 (InvokeContinuation return v1)) 159 (InvokeContinuation return v1))
160 (InvokeStatic foo v0 k0)) 160 (InvokeStatic foo v0 k0))
161 '''), 161 '''),
162 ]), 162 ]),
163 163
164 const Group('Local variables', const [ 164 const Group('Local variables', const [
165 const TestSpec(''' 165 const TestSpec('''
166 main() { 166 main() {
167 var a; 167 var a;
168 return a; 168 return a;
169 } 169 }
170 ''', ''' 170 ''', '''
171 (FunctionDefinition main () return () 171 (FunctionDefinition main () return ()
172 (LetPrim v0 (Constant NullConstant)) 172 (LetPrim v0 (Constant (Null)))
173 (InvokeContinuation return v0)) 173 (InvokeContinuation return v0))
174 '''), 174 '''),
175 175
176 const TestSpec(''' 176 const TestSpec('''
177 main() { 177 main() {
178 var a = 0; 178 var a = 0;
179 return a; 179 return a;
180 } 180 }
181 ''', ''' 181 ''', '''
182 (FunctionDefinition main () return () 182 (FunctionDefinition main () return ()
183 (LetPrim v0 (Constant IntConstant(0))) 183 (LetPrim v0 (Constant (Int 0)))
184 (InvokeContinuation return v0)) 184 (InvokeContinuation return v0))
185 '''), 185 '''),
186 186
187 const TestSpec(''' 187 const TestSpec('''
188 main(a) { 188 main(a) {
189 return a; 189 return a;
190 } 190 }
191 ''', ''' 191 ''', '''
192 (FunctionDefinition main (a) return () 192 (FunctionDefinition main (a) return ()
193 (InvokeContinuation return a)) 193 (InvokeContinuation return a))
194 '''), 194 '''),
195 ]), 195 ]),
196 196
197 const Group('Local variable writes', const <TestSpec>[ 197 const Group('Local variable writes', const <TestSpec>[
198 const TestSpec(''' 198 const TestSpec('''
199 main() { 199 main() {
200 var a; 200 var a;
201 a = 10; 201 a = 10;
202 return a; 202 return a;
203 } 203 }
204 ''', ''' 204 ''', '''
205 (FunctionDefinition main () return () 205 (FunctionDefinition main () return ()
206 (LetPrim v0 (Constant NullConstant)) 206 (LetPrim v0 (Constant (Null)))
207 (LetPrim v1 (Constant IntConstant(10))) 207 (LetPrim v1 (Constant (Int 10)))
208 (InvokeContinuation return v1)) 208 (InvokeContinuation return v1))
209 '''), 209 '''),
210 210
211 const TestSpec(''' 211 const TestSpec('''
212 main() { 212 main() {
213 var a = 0; 213 var a = 0;
214 a = 10; 214 a = 10;
215 return a; 215 return a;
216 } 216 }
217 ''', ''' 217 ''', '''
218 (FunctionDefinition main () return () 218 (FunctionDefinition main () return ()
219 (LetPrim v0 (Constant IntConstant(0))) 219 (LetPrim v0 (Constant (Int 0)))
220 (LetPrim v1 (Constant IntConstant(10))) 220 (LetPrim v1 (Constant (Int 10)))
221 (InvokeContinuation return v1)) 221 (InvokeContinuation return v1))
222 '''), 222 '''),
223 223
224 const TestSpec(''' 224 const TestSpec('''
225 main() { 225 main() {
226 var a = 0; 226 var a = 0;
227 print(a); 227 print(a);
228 a = ""; 228 a = "";
229 print(a); 229 print(a);
230 return a; 230 return a;
231 } 231 }
232 ''', ''' 232 ''', '''
233 (FunctionDefinition main () return () 233 (FunctionDefinition main () return ()
234 (LetPrim v0 (Constant IntConstant(0))) 234 (LetPrim v0 (Constant (Int 0)))
235 (LetCont (k0 v1) 235 (LetCont (k0 v1)
236 (LetPrim v2 (Constant StringConstant(""))) 236 (LetPrim v2 (Constant (String "")))
237 (LetCont (k1 v3) 237 (LetCont (k1 v3)
238 (InvokeContinuation return v2)) 238 (InvokeContinuation return v2))
239 (InvokeStatic print v2 k1)) 239 (InvokeStatic print v2 k1))
240 (InvokeStatic print v0 k0)) 240 (InvokeStatic print v0 k0))
241 '''), 241 '''),
242 242
243 const TestSpec(''' 243 const TestSpec('''
244 main(a) { 244 main(a) {
245 print(a); 245 print(a);
246 a = ""; 246 a = "";
247 print(a); 247 print(a);
248 return a; 248 return a;
249 } 249 }
250 ''', ''' 250 ''', '''
251 (FunctionDefinition main (a) return () 251 (FunctionDefinition main (a) return ()
252 (LetCont (k0 v0) 252 (LetCont (k0 v0)
253 (LetPrim v1 (Constant StringConstant(""))) 253 (LetPrim v1 (Constant (String "")))
254 (LetCont (k1 v2) 254 (LetCont (k1 v2)
255 (InvokeContinuation return v1)) 255 (InvokeContinuation return v1))
256 (InvokeStatic print v1 k1)) 256 (InvokeStatic print v1 k1))
257 (InvokeStatic print a k0)) 257 (InvokeStatic print a k0))
258 '''), 258 '''),
259 259
260 const TestSpec(''' 260 const TestSpec('''
261 main(a) { 261 main(a) {
262 if (a) { 262 if (a) {
263 a = ""; 263 a = "";
264 } 264 }
265 print(a); 265 print(a);
266 return a; 266 return a;
267 } 267 }
268 ''', ''' 268 ''', '''
269 (FunctionDefinition main (a) return () 269 (FunctionDefinition main (a) return ()
270 (LetCont (k0 v0) 270 (LetCont (k0 v0)
271 (LetCont (k1 v1) 271 (LetCont (k1 v1)
272 (InvokeContinuation return v0)) 272 (InvokeContinuation return v0))
273 (InvokeStatic print v0 k1)) 273 (InvokeStatic print v0 k1))
274 (LetCont (k2) 274 (LetCont (k2)
275 (LetPrim v2 (Constant StringConstant(""))) 275 (LetPrim v2 (Constant (String "")))
276 (InvokeContinuation k0 v2)) 276 (InvokeContinuation k0 v2))
277 (LetCont (k3) 277 (LetCont (k3)
278 (InvokeContinuation k0 a)) 278 (InvokeContinuation k0 a))
279 (Branch (IsTrue a) k2 k3)) 279 (Branch (IsTrue a) k2 k3))
280 '''), 280 '''),
281 ]), 281 ]),
282 282
283 const Group('Dynamic access', const [ 283 const Group('Dynamic access', const [
284 const TestSpec(''' 284 const TestSpec('''
285 main(a) { 285 main(a) {
286 return a.foo; 286 return a.foo;
287 } 287 }
288 ''', ''' 288 ''', '''
289 (FunctionDefinition main (a) return () 289 (FunctionDefinition main (a) return ()
290 (LetCont (k0 v0) 290 (LetCont (k0 v0)
291 (InvokeContinuation return v0)) 291 (InvokeContinuation return v0))
292 (InvokeMethod a foo k0)) 292 (InvokeMethod a foo k0))
293 '''), 293 '''),
294 294
295 const TestSpec(''' 295 const TestSpec('''
296 main() { 296 main() {
297 var a = ""; 297 var a = "";
298 return a.foo; 298 return a.foo;
299 } 299 }
300 ''', ''' 300 ''', '''
301 (FunctionDefinition main () return () 301 (FunctionDefinition main () return ()
302 (LetPrim v0 (Constant StringConstant(""))) 302 (LetPrim v0 (Constant (String "")))
303 (LetCont (k0 v1) 303 (LetCont (k0 v1)
304 (InvokeContinuation return v1)) 304 (InvokeContinuation return v1))
305 (InvokeMethod v0 foo k0)) 305 (InvokeMethod v0 foo k0))
306 '''), 306 '''),
307 ]), 307 ]),
308 308
309 const Group('Dynamic invocation', const [ 309 const Group('Dynamic invocation', const [
310 const TestSpec(''' 310 const TestSpec('''
311 main(a) { 311 main(a) {
312 return a.foo(0); 312 return a.foo(0);
313 } 313 }
314 ''', ''' 314 ''', '''
315 (FunctionDefinition main (a) return () 315 (FunctionDefinition main (a) return ()
316 (LetPrim v0 (Constant IntConstant(0))) 316 (LetPrim v0 (Constant (Int 0)))
317 (LetCont (k0 v1) 317 (LetCont (k0 v1)
318 (InvokeContinuation return v1)) 318 (InvokeContinuation return v1))
319 (InvokeMethod a foo v0 k0)) 319 (InvokeMethod a foo v0 k0))
320 '''), 320 '''),
321 321
322 const TestSpec(''' 322 const TestSpec('''
323 main() { 323 main() {
324 var a = ""; 324 var a = "";
325 return a.foo(0, 1); 325 return a.foo(0, 1);
326 } 326 }
327 ''', ''' 327 ''', '''
328 (FunctionDefinition main () return () 328 (FunctionDefinition main () return ()
329 (LetPrim v0 (Constant StringConstant(""))) 329 (LetPrim v0 (Constant (String "")))
330 (LetPrim v1 (Constant IntConstant(0))) 330 (LetPrim v1 (Constant (Int 0)))
331 (LetPrim v2 (Constant IntConstant(1))) 331 (LetPrim v2 (Constant (Int 1)))
332 (LetCont (k0 v3) 332 (LetCont (k0 v3)
333 (InvokeContinuation return v3)) 333 (InvokeContinuation return v3))
334 (InvokeMethod v0 foo v1 v2 k0)) 334 (InvokeMethod v0 foo v1 v2 k0))
335 '''), 335 '''),
336 ]), 336 ]),
337 337
338 const Group('Binary expressions', const [ 338 const Group('Binary expressions', const [
339 const TestSpec(''' 339 const TestSpec('''
340 main() { 340 main() {
341 return 0 + ""; 341 return 0 + "";
342 } 342 }
343 ''', ''' 343 ''', '''
344 (FunctionDefinition main () return () 344 (FunctionDefinition main () return ()
345 (LetPrim v0 (Constant IntConstant(0))) 345 (LetPrim v0 (Constant (Int 0)))
346 (LetPrim v1 (Constant StringConstant(""))) 346 (LetPrim v1 (Constant (String "")))
347 (LetCont (k0 v2) 347 (LetCont (k0 v2)
348 (InvokeContinuation return v2)) 348 (InvokeContinuation return v2))
349 (InvokeMethod v0 + v1 k0)) 349 (InvokeMethod v0 + v1 k0))
350 '''), 350 '''),
351 351
352 const TestSpec(''' 352 const TestSpec('''
353 main() { 353 main() {
354 return 0 - ""; 354 return 0 - "";
355 } 355 }
356 ''', ''' 356 ''', '''
357 (FunctionDefinition main () return () 357 (FunctionDefinition main () return ()
358 (LetPrim v0 (Constant IntConstant(0))) 358 (LetPrim v0 (Constant (Int 0)))
359 (LetPrim v1 (Constant StringConstant(""))) 359 (LetPrim v1 (Constant (String "")))
360 (LetCont (k0 v2) 360 (LetCont (k0 v2)
361 (InvokeContinuation return v2)) 361 (InvokeContinuation return v2))
362 (InvokeMethod v0 - v1 k0)) 362 (InvokeMethod v0 - v1 k0))
363 '''), 363 '''),
364 364
365 const TestSpec(''' 365 const TestSpec('''
366 main() { 366 main() {
367 return 0 * ""; 367 return 0 * "";
368 } 368 }
369 ''', ''' 369 ''', '''
370 (FunctionDefinition main () return () 370 (FunctionDefinition main () return ()
371 (LetPrim v0 (Constant IntConstant(0))) 371 (LetPrim v0 (Constant (Int 0)))
372 (LetPrim v1 (Constant StringConstant(""))) 372 (LetPrim v1 (Constant (String "")))
373 (LetCont (k0 v2) 373 (LetCont (k0 v2)
374 (InvokeContinuation return v2)) 374 (InvokeContinuation return v2))
375 (InvokeMethod v0 * v1 k0)) 375 (InvokeMethod v0 * v1 k0))
376 '''), 376 '''),
377 377
378 const TestSpec(''' 378 const TestSpec('''
379 main() { 379 main() {
380 return 0 / ""; 380 return 0 / "";
381 } 381 }
382 ''', ''' 382 ''', '''
383 (FunctionDefinition main () return () 383 (FunctionDefinition main () return ()
384 (LetPrim v0 (Constant IntConstant(0))) 384 (LetPrim v0 (Constant (Int 0)))
385 (LetPrim v1 (Constant StringConstant(""))) 385 (LetPrim v1 (Constant (String "")))
386 (LetCont (k0 v2) 386 (LetCont (k0 v2)
387 (InvokeContinuation return v2)) 387 (InvokeContinuation return v2))
388 (InvokeMethod v0 / v1 k0)) 388 (InvokeMethod v0 / v1 k0))
389 '''), 389 '''),
390 390
391 const TestSpec(''' 391 const TestSpec('''
392 main() { 392 main() {
393 return 0 ~/ ""; 393 return 0 ~/ "";
394 } 394 }
395 ''', ''' 395 ''', '''
396 (FunctionDefinition main () return () 396 (FunctionDefinition main () return ()
397 (LetPrim v0 (Constant IntConstant(0))) 397 (LetPrim v0 (Constant (Int 0)))
398 (LetPrim v1 (Constant StringConstant(""))) 398 (LetPrim v1 (Constant (String "")))
399 (LetCont (k0 v2) 399 (LetCont (k0 v2)
400 (InvokeContinuation return v2)) 400 (InvokeContinuation return v2))
401 (InvokeMethod v0 ~/ v1 k0)) 401 (InvokeMethod v0 ~/ v1 k0))
402 '''), 402 '''),
403 403
404 const TestSpec(''' 404 const TestSpec('''
405 main() { 405 main() {
406 return 0 < ""; 406 return 0 < "";
407 } 407 }
408 ''', ''' 408 ''', '''
409 (FunctionDefinition main () return () 409 (FunctionDefinition main () return ()
410 (LetPrim v0 (Constant IntConstant(0))) 410 (LetPrim v0 (Constant (Int 0)))
411 (LetPrim v1 (Constant StringConstant(""))) 411 (LetPrim v1 (Constant (String "")))
412 (LetCont (k0 v2) 412 (LetCont (k0 v2)
413 (InvokeContinuation return v2)) 413 (InvokeContinuation return v2))
414 (InvokeMethod v0 < v1 k0)) 414 (InvokeMethod v0 < v1 k0))
415 '''), 415 '''),
416 416
417 const TestSpec(''' 417 const TestSpec('''
418 main() { 418 main() {
419 return 0 <= ""; 419 return 0 <= "";
420 } 420 }
421 ''', ''' 421 ''', '''
422 (FunctionDefinition main () return () 422 (FunctionDefinition main () return ()
423 (LetPrim v0 (Constant IntConstant(0))) 423 (LetPrim v0 (Constant (Int 0)))
424 (LetPrim v1 (Constant StringConstant(""))) 424 (LetPrim v1 (Constant (String "")))
425 (LetCont (k0 v2) 425 (LetCont (k0 v2)
426 (InvokeContinuation return v2)) 426 (InvokeContinuation return v2))
427 (InvokeMethod v0 <= v1 k0)) 427 (InvokeMethod v0 <= v1 k0))
428 '''), 428 '''),
429 429
430 const TestSpec(''' 430 const TestSpec('''
431 main() { 431 main() {
432 return 0 > ""; 432 return 0 > "";
433 } 433 }
434 ''', ''' 434 ''', '''
435 (FunctionDefinition main () return () 435 (FunctionDefinition main () return ()
436 (LetPrim v0 (Constant IntConstant(0))) 436 (LetPrim v0 (Constant (Int 0)))
437 (LetPrim v1 (Constant StringConstant(""))) 437 (LetPrim v1 (Constant (String "")))
438 (LetCont (k0 v2) 438 (LetCont (k0 v2)
439 (InvokeContinuation return v2)) 439 (InvokeContinuation return v2))
440 (InvokeMethod v0 > v1 k0)) 440 (InvokeMethod v0 > v1 k0))
441 '''), 441 '''),
442 442
443 const TestSpec(''' 443 const TestSpec('''
444 main() { 444 main() {
445 return 0 >= ""; 445 return 0 >= "";
446 } 446 }
447 ''', ''' 447 ''', '''
448 (FunctionDefinition main () return () 448 (FunctionDefinition main () return ()
449 (LetPrim v0 (Constant IntConstant(0))) 449 (LetPrim v0 (Constant (Int 0)))
450 (LetPrim v1 (Constant StringConstant(""))) 450 (LetPrim v1 (Constant (String "")))
451 (LetCont (k0 v2) 451 (LetCont (k0 v2)
452 (InvokeContinuation return v2)) 452 (InvokeContinuation return v2))
453 (InvokeMethod v0 >= v1 k0)) 453 (InvokeMethod v0 >= v1 k0))
454 '''), 454 '''),
455 455
456 const TestSpec(''' 456 const TestSpec('''
457 main() { 457 main() {
458 return 0 << ""; 458 return 0 << "";
459 } 459 }
460 ''', ''' 460 ''', '''
461 (FunctionDefinition main () return () 461 (FunctionDefinition main () return ()
462 (LetPrim v0 (Constant IntConstant(0))) 462 (LetPrim v0 (Constant (Int 0)))
463 (LetPrim v1 (Constant StringConstant(""))) 463 (LetPrim v1 (Constant (String "")))
464 (LetCont (k0 v2) 464 (LetCont (k0 v2)
465 (InvokeContinuation return v2)) 465 (InvokeContinuation return v2))
466 (InvokeMethod v0 << v1 k0)) 466 (InvokeMethod v0 << v1 k0))
467 '''), 467 '''),
468 468
469 const TestSpec(''' 469 const TestSpec('''
470 main() { 470 main() {
471 return 0 >> ""; 471 return 0 >> "";
472 } 472 }
473 ''', ''' 473 ''', '''
474 (FunctionDefinition main () return () 474 (FunctionDefinition main () return ()
475 (LetPrim v0 (Constant IntConstant(0))) 475 (LetPrim v0 (Constant (Int 0)))
476 (LetPrim v1 (Constant StringConstant(""))) 476 (LetPrim v1 (Constant (String "")))
477 (LetCont (k0 v2) 477 (LetCont (k0 v2)
478 (InvokeContinuation return v2)) 478 (InvokeContinuation return v2))
479 (InvokeMethod v0 >> v1 k0)) 479 (InvokeMethod v0 >> v1 k0))
480 '''), 480 '''),
481 481
482 const TestSpec(''' 482 const TestSpec('''
483 main() { 483 main() {
484 return 0 & ""; 484 return 0 & "";
485 } 485 }
486 ''', ''' 486 ''', '''
487 (FunctionDefinition main () return () 487 (FunctionDefinition main () return ()
488 (LetPrim v0 (Constant IntConstant(0))) 488 (LetPrim v0 (Constant (Int 0)))
489 (LetPrim v1 (Constant StringConstant(""))) 489 (LetPrim v1 (Constant (String "")))
490 (LetCont (k0 v2) 490 (LetCont (k0 v2)
491 (InvokeContinuation return v2)) 491 (InvokeContinuation return v2))
492 (InvokeMethod v0 & v1 k0)) 492 (InvokeMethod v0 & v1 k0))
493 '''), 493 '''),
494 494
495 const TestSpec(''' 495 const TestSpec('''
496 main() { 496 main() {
497 return 0 | ""; 497 return 0 | "";
498 } 498 }
499 ''', ''' 499 ''', '''
500 (FunctionDefinition main () return () 500 (FunctionDefinition main () return ()
501 (LetPrim v0 (Constant IntConstant(0))) 501 (LetPrim v0 (Constant (Int 0)))
502 (LetPrim v1 (Constant StringConstant(""))) 502 (LetPrim v1 (Constant (String "")))
503 (LetCont (k0 v2) 503 (LetCont (k0 v2)
504 (InvokeContinuation return v2)) 504 (InvokeContinuation return v2))
505 (InvokeMethod v0 | v1 k0)) 505 (InvokeMethod v0 | v1 k0))
506 '''), 506 '''),
507 507
508 const TestSpec(''' 508 const TestSpec('''
509 main() { 509 main() {
510 return 0 ^ ""; 510 return 0 ^ "";
511 } 511 }
512 ''', ''' 512 ''', '''
513 (FunctionDefinition main () return () 513 (FunctionDefinition main () return ()
514 (LetPrim v0 (Constant IntConstant(0))) 514 (LetPrim v0 (Constant (Int 0)))
515 (LetPrim v1 (Constant StringConstant(""))) 515 (LetPrim v1 (Constant (String "")))
516 (LetCont (k0 v2) 516 (LetCont (k0 v2)
517 (InvokeContinuation return v2)) 517 (InvokeContinuation return v2))
518 (InvokeMethod v0 ^ v1 k0)) 518 (InvokeMethod v0 ^ v1 k0))
519 '''), 519 '''),
520 520
521 const TestSpec(''' 521 const TestSpec('''
522 main() { 522 main() {
523 return 0 == ""; 523 return 0 == "";
524 } 524 }
525 ''', ''' 525 ''', '''
526 (FunctionDefinition main () return () 526 (FunctionDefinition main () return ()
527 (LetPrim v0 (Constant IntConstant(0))) 527 (LetPrim v0 (Constant (Int 0)))
528 (LetPrim v1 (Constant StringConstant(""))) 528 (LetPrim v1 (Constant (String "")))
529 (LetCont (k0 v2) 529 (LetCont (k0 v2)
530 (InvokeContinuation return v2)) 530 (InvokeContinuation return v2))
531 (InvokeMethod v0 == v1 k0)) 531 (InvokeMethod v0 == v1 k0))
532 '''), 532 '''),
533 533
534 const TestSpec(''' 534 const TestSpec('''
535 main() { 535 main() {
536 return 0 != ""; 536 return 0 != "";
537 } 537 }
538 ''', ''' 538 ''', '''
539 (FunctionDefinition main () return () 539 (FunctionDefinition main () return ()
540 (LetPrim v0 (Constant IntConstant(0))) 540 (LetPrim v0 (Constant (Int 0)))
541 (LetPrim v1 (Constant StringConstant(""))) 541 (LetPrim v1 (Constant (String "")))
542 (LetCont (k0 v2) 542 (LetCont (k0 v2)
543 (LetCont (k1 v3) 543 (LetCont (k1 v3)
544 (InvokeContinuation return v3)) 544 (InvokeContinuation return v3))
545 (LetCont (k2) 545 (LetCont (k2)
546 (LetPrim v4 (Constant BoolConstant(false))) 546 (LetPrim v4 (Constant (Bool false)))
547 (InvokeContinuation k1 v4)) 547 (InvokeContinuation k1 v4))
548 (LetCont (k3) 548 (LetCont (k3)
549 (LetPrim v5 (Constant BoolConstant(true))) 549 (LetPrim v5 (Constant (Bool true)))
550 (InvokeContinuation k1 v5)) 550 (InvokeContinuation k1 v5))
551 (Branch (IsTrue v2) k2 k3)) 551 (Branch (IsTrue v2) k2 k3))
552 (InvokeMethod v0 == v1 k0)) 552 (InvokeMethod v0 == v1 k0))
553 '''), 553 '''),
554 554
555 const TestSpec(''' 555 const TestSpec('''
556 main() { 556 main() {
557 return 0 && ""; 557 return 0 && "";
558 } 558 }
559 ''', ''' 559 ''', '''
560 (FunctionDefinition main () return () 560 (FunctionDefinition main () return ()
561 (LetPrim v0 (Constant IntConstant(0))) 561 (LetPrim v0 (Constant (Int 0)))
562 (LetCont (k0 v1) 562 (LetCont (k0 v1)
563 (InvokeContinuation return v1)) 563 (InvokeContinuation return v1))
564 (LetCont (k1) 564 (LetCont (k1)
565 (LetPrim v2 (Constant StringConstant(""))) 565 (LetPrim v2 (Constant (String "")))
566 (LetCont (k2) 566 (LetCont (k2)
567 (LetPrim v3 (Constant BoolConstant(true))) 567 (LetPrim v3 (Constant (Bool true)))
568 (InvokeContinuation k0 v3)) 568 (InvokeContinuation k0 v3))
569 (LetCont (k3) 569 (LetCont (k3)
570 (LetPrim v4 (Constant BoolConstant(false))) 570 (LetPrim v4 (Constant (Bool false)))
571 (InvokeContinuation k0 v4)) 571 (InvokeContinuation k0 v4))
572 (Branch (IsTrue v2) k2 k3)) 572 (Branch (IsTrue v2) k2 k3))
573 (LetCont (k4) 573 (LetCont (k4)
574 (LetPrim v5 (Constant BoolConstant(false))) 574 (LetPrim v5 (Constant (Bool false)))
575 (InvokeContinuation k0 v5)) 575 (InvokeContinuation k0 v5))
576 (Branch (IsTrue v0) k1 k4)) 576 (Branch (IsTrue v0) k1 k4))
577 '''), 577 '''),
578 578
579 const TestSpec(''' 579 const TestSpec('''
580 main() { 580 main() {
581 return 0 || ""; 581 return 0 || "";
582 } 582 }
583 ''', ''' 583 ''', '''
584 (FunctionDefinition main () return () 584 (FunctionDefinition main () return ()
585 (LetPrim v0 (Constant IntConstant(0))) 585 (LetPrim v0 (Constant (Int 0)))
586 (LetCont (k0 v1) 586 (LetCont (k0 v1)
587 (InvokeContinuation return v1)) 587 (InvokeContinuation return v1))
588 (LetCont (k1) 588 (LetCont (k1)
589 (LetPrim v2 (Constant BoolConstant(true))) 589 (LetPrim v2 (Constant (Bool true)))
590 (InvokeContinuation k0 v2)) 590 (InvokeContinuation k0 v2))
591 (LetCont (k2) 591 (LetCont (k2)
592 (LetPrim v3 (Constant StringConstant(""))) 592 (LetPrim v3 (Constant (String "")))
593 (LetCont (k3) 593 (LetCont (k3)
594 (LetPrim v4 (Constant BoolConstant(true))) 594 (LetPrim v4 (Constant (Bool true)))
595 (InvokeContinuation k0 v4)) 595 (InvokeContinuation k0 v4))
596 (LetCont (k4) 596 (LetCont (k4)
597 (LetPrim v5 (Constant BoolConstant(false))) 597 (LetPrim v5 (Constant (Bool false)))
598 (InvokeContinuation k0 v5)) 598 (InvokeContinuation k0 v5))
599 (Branch (IsTrue v3) k3 k4)) 599 (Branch (IsTrue v3) k3 k4))
600 (Branch (IsTrue v0) k1 k2)) 600 (Branch (IsTrue v0) k1 k2))
601 '''), 601 '''),
602 602
603 const TestSpec(''' 603 const TestSpec('''
604 main() { 604 main() {
605 return 0 + "" * 2; 605 return 0 + "" * 2;
606 } 606 }
607 ''', ''' 607 ''', '''
608 (FunctionDefinition main () return () 608 (FunctionDefinition main () return ()
609 (LetPrim v0 (Constant IntConstant(0))) 609 (LetPrim v0 (Constant (Int 0)))
610 (LetPrim v1 (Constant StringConstant(""))) 610 (LetPrim v1 (Constant (String "")))
611 (LetPrim v2 (Constant IntConstant(2))) 611 (LetPrim v2 (Constant (Int 2)))
612 (LetCont (k0 v3) 612 (LetCont (k0 v3)
613 (LetCont (k1 v4) 613 (LetCont (k1 v4)
614 (InvokeContinuation return v4)) 614 (InvokeContinuation return v4))
615 (InvokeMethod v0 + v3 k1)) 615 (InvokeMethod v0 + v3 k1))
616 (InvokeMethod v1 * v2 k0)) 616 (InvokeMethod v1 * v2 k0))
617 '''), 617 '''),
618 618
619 const TestSpec(''' 619 const TestSpec('''
620 main() { 620 main() {
621 return 0 * "" + 2; 621 return 0 * "" + 2;
622 } 622 }
623 ''', ''' 623 ''', '''
624 (FunctionDefinition main () return () 624 (FunctionDefinition main () return ()
625 (LetPrim v0 (Constant IntConstant(0))) 625 (LetPrim v0 (Constant (Int 0)))
626 (LetPrim v1 (Constant StringConstant(""))) 626 (LetPrim v1 (Constant (String "")))
627 (LetCont (k0 v2) 627 (LetCont (k0 v2)
628 (LetPrim v3 (Constant IntConstant(2))) 628 (LetPrim v3 (Constant (Int 2)))
629 (LetCont (k1 v4) 629 (LetCont (k1 v4)
630 (InvokeContinuation return v4)) 630 (InvokeContinuation return v4))
631 (InvokeMethod v2 + v3 k1)) 631 (InvokeMethod v2 + v3 k1))
632 (InvokeMethod v0 * v1 k0)) 632 (InvokeMethod v0 * v1 k0))
633 '''), 633 '''),
634 ]), 634 ]),
635 635
636 const Group('If statement', const [ 636 const Group('If statement', const [
637 const TestSpec(''' 637 const TestSpec('''
638 main(a) { 638 main(a) {
639 if (a) { 639 if (a) {
640 print(0); 640 print(0);
641 } 641 }
642 } 642 }
643 ''', ''' 643 ''', '''
644 (FunctionDefinition main (a) return () 644 (FunctionDefinition main (a) return ()
645 (LetCont (k0) 645 (LetCont (k0)
646 (LetPrim v0 (Constant NullConstant)) 646 (LetPrim v0 (Constant (Null)))
647 (InvokeContinuation return v0)) 647 (InvokeContinuation return v0))
648 (LetCont (k1) 648 (LetCont (k1)
649 (LetPrim v1 (Constant IntConstant(0))) 649 (LetPrim v1 (Constant (Int 0)))
650 (LetCont (k2 v2) 650 (LetCont (k2 v2)
651 (InvokeContinuation k0 )) 651 (InvokeContinuation k0 ))
652 (InvokeStatic print v1 k2)) 652 (InvokeStatic print v1 k2))
653 (LetCont (k3) 653 (LetCont (k3)
654 (InvokeContinuation k0 )) 654 (InvokeContinuation k0 ))
655 (Branch (IsTrue a) k1 k3)) 655 (Branch (IsTrue a) k1 k3))
656 '''), 656 '''),
657 657
658 const TestSpec(''' 658 const TestSpec('''
659 main(a) { 659 main(a) {
660 if (a) { 660 if (a) {
661 print(0); 661 print(0);
662 } else { 662 } else {
663 print(1); 663 print(1);
664 } 664 }
665 } 665 }
666 ''', ''' 666 ''', '''
667 (FunctionDefinition main (a) return () 667 (FunctionDefinition main (a) return ()
668 (LetCont (k0) 668 (LetCont (k0)
669 (LetPrim v0 (Constant NullConstant)) 669 (LetPrim v0 (Constant (Null)))
670 (InvokeContinuation return v0)) 670 (InvokeContinuation return v0))
671 (LetCont (k1) 671 (LetCont (k1)
672 (LetPrim v1 (Constant IntConstant(0))) 672 (LetPrim v1 (Constant (Int 0)))
673 (LetCont (k2 v2) 673 (LetCont (k2 v2)
674 (InvokeContinuation k0 )) 674 (InvokeContinuation k0 ))
675 (InvokeStatic print v1 k2)) 675 (InvokeStatic print v1 k2))
676 (LetCont (k3) 676 (LetCont (k3)
677 (LetPrim v3 (Constant IntConstant(1))) 677 (LetPrim v3 (Constant (Int 1)))
678 (LetCont (k4 v4) 678 (LetCont (k4 v4)
679 (InvokeContinuation k0 )) 679 (InvokeContinuation k0 ))
680 (InvokeStatic print v3 k4)) 680 (InvokeStatic print v3 k4))
681 (Branch (IsTrue a) k1 k3)) 681 (Branch (IsTrue a) k1 k3))
682 '''), 682 '''),
683 683
684 const TestSpec(''' 684 const TestSpec('''
685 main(a) { 685 main(a) {
686 if (a) { 686 if (a) {
687 print(0); 687 print(0);
688 } else { 688 } else {
689 print(1); 689 print(1);
690 print(2); 690 print(2);
691 } 691 }
692 } 692 }
693 ''', ''' 693 ''', '''
694 (FunctionDefinition main (a) return () 694 (FunctionDefinition main (a) return ()
695 (LetCont (k0) 695 (LetCont (k0)
696 (LetPrim v0 (Constant NullConstant)) 696 (LetPrim v0 (Constant (Null)))
697 (InvokeContinuation return v0)) 697 (InvokeContinuation return v0))
698 (LetCont (k1) 698 (LetCont (k1)
699 (LetPrim v1 (Constant IntConstant(0))) 699 (LetPrim v1 (Constant (Int 0)))
700 (LetCont (k2 v2) 700 (LetCont (k2 v2)
701 (InvokeContinuation k0 )) 701 (InvokeContinuation k0 ))
702 (InvokeStatic print v1 k2)) 702 (InvokeStatic print v1 k2))
703 (LetCont (k3) 703 (LetCont (k3)
704 (LetPrim v3 (Constant IntConstant(1))) 704 (LetPrim v3 (Constant (Int 1)))
705 (LetCont (k4 v4) 705 (LetCont (k4 v4)
706 (LetPrim v5 (Constant IntConstant(2))) 706 (LetPrim v5 (Constant (Int 2)))
707 (LetCont (k5 v6) 707 (LetCont (k5 v6)
708 (InvokeContinuation k0 )) 708 (InvokeContinuation k0 ))
709 (InvokeStatic print v5 k5)) 709 (InvokeStatic print v5 k5))
710 (InvokeStatic print v3 k4)) 710 (InvokeStatic print v3 k4))
711 (Branch (IsTrue a) k1 k3)) 711 (Branch (IsTrue a) k1 k3))
712 '''), 712 '''),
713 ]), 713 ]),
714 714
715 const Group('Conditional expression', const [ 715 const Group('Conditional expression', const [
716 const TestSpec(''' 716 const TestSpec('''
717 main(a) { 717 main(a) {
718 return a ? print(0) : print(1); 718 return a ? print(0) : print(1);
719 } 719 }
720 ''', ''' 720 ''', '''
721 (FunctionDefinition main (a) return () 721 (FunctionDefinition main (a) return ()
722 (LetCont (k0 v0) 722 (LetCont (k0 v0)
723 (InvokeContinuation return v0)) 723 (InvokeContinuation return v0))
724 (LetCont (k1) 724 (LetCont (k1)
725 (LetPrim v1 (Constant IntConstant(0))) 725 (LetPrim v1 (Constant (Int 0)))
726 (LetCont (k2 v2) 726 (LetCont (k2 v2)
727 (InvokeContinuation k0 v2)) 727 (InvokeContinuation k0 v2))
728 (InvokeStatic print v1 k2)) 728 (InvokeStatic print v1 k2))
729 (LetCont (k3) 729 (LetCont (k3)
730 (LetPrim v3 (Constant IntConstant(1))) 730 (LetPrim v3 (Constant (Int 1)))
731 (LetCont (k4 v4) 731 (LetCont (k4 v4)
732 (InvokeContinuation k0 v4)) 732 (InvokeContinuation k0 v4))
733 (InvokeStatic print v3 k4)) 733 (InvokeStatic print v3 k4))
734 (Branch (IsTrue a) k1 k3)) 734 (Branch (IsTrue a) k1 k3))
735 '''), 735 '''),
736 ]), 736 ]),
737 737
738 738
739 // These test that unreachable statements are skipped within a block. 739 // These test that unreachable statements are skipped within a block.
740 const Group('Block statements', const <TestSpec>[ 740 const Group('Block statements', const <TestSpec>[
741 const TestSpec(''' 741 const TestSpec('''
742 main(a) { 742 main(a) {
743 return 0; 743 return 0;
744 return 1; 744 return 1;
745 } 745 }
746 ''', ''' 746 ''', '''
747 (FunctionDefinition main (a) return () 747 (FunctionDefinition main (a) return ()
748 (LetPrim v0 (Constant IntConstant(0))) 748 (LetPrim v0 (Constant (Int 0)))
749 (InvokeContinuation return v0)) 749 (InvokeContinuation return v0))
750 '''), 750 '''),
751 751
752 const TestSpec(''' 752 const TestSpec('''
753 main(a) { 753 main(a) {
754 if (a) { 754 if (a) {
755 return 0; 755 return 0;
756 return 1; 756 return 1;
757 } else { 757 } else {
758 return 2; 758 return 2;
759 return 3; 759 return 3;
760 } 760 }
761 } 761 }
762 ''', ''' 762 ''', '''
763 (FunctionDefinition main (a) return () 763 (FunctionDefinition main (a) return ()
764 (LetCont (k0) 764 (LetCont (k0)
765 (LetPrim v0 (Constant IntConstant(0))) 765 (LetPrim v0 (Constant (Int 0)))
766 (InvokeContinuation return v0)) 766 (InvokeContinuation return v0))
767 (LetCont (k1) 767 (LetCont (k1)
768 (LetPrim v1 (Constant IntConstant(2))) 768 (LetPrim v1 (Constant (Int 2)))
769 (InvokeContinuation return v1)) 769 (InvokeContinuation return v1))
770 (Branch (IsTrue a) k0 k1)) 770 (Branch (IsTrue a) k0 k1))
771 '''), 771 '''),
772 772
773 const TestSpec(''' 773 const TestSpec('''
774 main(a) { 774 main(a) {
775 if (a) { 775 if (a) {
776 print(0); 776 print(0);
777 return 0; 777 return 0;
778 return 1; 778 return 1;
779 } else { 779 } else {
780 print(2); 780 print(2);
781 return 2; 781 return 2;
782 return 3; 782 return 3;
783 } 783 }
784 } 784 }
785 ''', ''' 785 ''', '''
786 (FunctionDefinition main (a) return () 786 (FunctionDefinition main (a) return ()
787 (LetCont (k0) 787 (LetCont (k0)
788 (LetPrim v0 (Constant IntConstant(0))) 788 (LetPrim v0 (Constant (Int 0)))
789 (LetCont (k1 v1) 789 (LetCont (k1 v1)
790 (LetPrim v2 (Constant IntConstant(0))) 790 (LetPrim v2 (Constant (Int 0)))
791 (InvokeContinuation return v2)) 791 (InvokeContinuation return v2))
792 (InvokeStatic print v0 k1)) 792 (InvokeStatic print v0 k1))
793 (LetCont (k2) 793 (LetCont (k2)
794 (LetPrim v3 (Constant IntConstant(2))) 794 (LetPrim v3 (Constant (Int 2)))
795 (LetCont (k3 v4) 795 (LetCont (k3 v4)
796 (LetPrim v5 (Constant IntConstant(2))) 796 (LetPrim v5 (Constant (Int 2)))
797 (InvokeContinuation return v5)) 797 (InvokeContinuation return v5))
798 (InvokeStatic print v3 k3)) 798 (InvokeStatic print v3 k3))
799 (Branch (IsTrue a) k0 k2)) 799 (Branch (IsTrue a) k0 k2))
800 '''), 800 '''),
801 ]), 801 ]),
802 802
803 const Group('Constructor invocation', const <TestSpec>[ 803 const Group('Constructor invocation', const <TestSpec>[
804 const TestSpec(''' 804 const TestSpec('''
805 main(a) { 805 main(a) {
806 new Object(); 806 new Object();
807 } 807 }
808 ''', ''' 808 ''', '''
809 (FunctionDefinition main (a) return () 809 (FunctionDefinition main (a) return ()
810 (LetCont (k0 v0) 810 (LetCont (k0 v0)
811 (LetPrim v1 (Constant NullConstant)) 811 (LetPrim v1 (Constant (Null)))
812 (InvokeContinuation return v1)) 812 (InvokeContinuation return v1))
813 (InvokeConstructor Object k0)) 813 (InvokeConstructor Object k0))
814 '''), 814 '''),
815 815
816 const TestSpec(''' 816 const TestSpec('''
817 main(a) { 817 main(a) {
818 new Deprecated(""); 818 new Deprecated("");
819 } 819 }
820 ''', ''' 820 ''', '''
821 (FunctionDefinition main (a) return () 821 (FunctionDefinition main (a) return ()
822 (LetPrim v0 (Constant StringConstant(""))) 822 (LetPrim v0 (Constant (String "")))
823 (LetCont (k0 v1) 823 (LetCont (k0 v1)
824 (LetPrim v2 (Constant NullConstant)) 824 (LetPrim v2 (Constant (Null)))
825 (InvokeContinuation return v2)) 825 (InvokeContinuation return v2))
826 (InvokeConstructor Deprecated v0 k0)) 826 (InvokeConstructor Deprecated v0 k0))
827 '''), 827 '''),
828 ]), 828 ]),
829 829
830 const Group('List literal', const <TestSpec>[ 830 const Group('List literal', const <TestSpec>[
831 const TestSpec(''' 831 const TestSpec('''
832 main() { 832 main() {
833 return []; 833 return [];
834 } 834 }
835 ''', ''' 835 ''', '''
836 (FunctionDefinition main () return () 836 (FunctionDefinition main () return ()
837 (LetPrim v0 (LiteralList ())) 837 (LetPrim v0 (LiteralList ()))
838 (InvokeContinuation return v0)) 838 (InvokeContinuation return v0))
839 '''), 839 '''),
840 840
841 const TestSpec(''' 841 const TestSpec('''
842 main() { 842 main() {
843 return [0]; 843 return [0];
844 } 844 }
845 ''', ''' 845 ''', '''
846 (FunctionDefinition main () return () 846 (FunctionDefinition main () return ()
847 (LetPrim v0 (Constant IntConstant(0))) 847 (LetPrim v0 (Constant (Int 0)))
848 (LetPrim v1 (LiteralList (v0))) 848 (LetPrim v1 (LiteralList (v0)))
849 (InvokeContinuation return v1)) 849 (InvokeContinuation return v1))
850 '''), 850 '''),
851 851
852 const TestSpec(''' 852 const TestSpec('''
853 main(a) { 853 main(a) {
854 return [0, 1, a]; 854 return [0, 1, a];
855 } 855 }
856 ''', ''' 856 ''', '''
857 (FunctionDefinition main (a) return () 857 (FunctionDefinition main (a) return ()
858 (LetPrim v0 (Constant IntConstant(0))) 858 (LetPrim v0 (Constant (Int 0)))
859 (LetPrim v1 (Constant IntConstant(1))) 859 (LetPrim v1 (Constant (Int 1)))
860 (LetPrim v2 (LiteralList (v0 v1 a))) 860 (LetPrim v2 (LiteralList (v0 v1 a)))
861 (InvokeContinuation return v2)) 861 (InvokeContinuation return v2))
862 '''), 862 '''),
863 863
864 const TestSpec(''' 864 const TestSpec('''
865 main(a) { 865 main(a) {
866 return [0, [1], [a, [3]]]; 866 return [0, [1], [a, [3]]];
867 } 867 }
868 ''', ''' 868 ''', '''
869 (FunctionDefinition main (a) return () 869 (FunctionDefinition main (a) return ()
870 (LetPrim v0 (Constant IntConstant(0))) 870 (LetPrim v0 (Constant (Int 0)))
871 (LetPrim v1 (Constant IntConstant(1))) 871 (LetPrim v1 (Constant (Int 1)))
872 (LetPrim v2 (LiteralList (v1))) 872 (LetPrim v2 (LiteralList (v1)))
873 (LetPrim v3 (Constant IntConstant(3))) 873 (LetPrim v3 (Constant (Int 3)))
874 (LetPrim v4 (LiteralList (v3))) 874 (LetPrim v4 (LiteralList (v3)))
875 (LetPrim v5 (LiteralList (a v4))) 875 (LetPrim v5 (LiteralList (a v4)))
876 (LetPrim v6 (LiteralList (v0 v2 v5))) 876 (LetPrim v6 (LiteralList (v0 v2 v5)))
877 (InvokeContinuation return v6)) 877 (InvokeContinuation return v6))
878 '''), 878 '''),
879 ]), 879 ]),
880 880
881 const Group('Map literal', const <TestSpec>[ 881 const Group('Map literal', const <TestSpec>[
882 const TestSpec(''' 882 const TestSpec('''
883 main() { 883 main() {
884 return {}; 884 return {};
885 } 885 }
886 ''', ''' 886 ''', '''
887 (FunctionDefinition main () return () 887 (FunctionDefinition main () return ()
888 (LetPrim v0 (LiteralMap () ())) 888 (LetPrim v0 (LiteralMap () ()))
889 (InvokeContinuation return v0)) 889 (InvokeContinuation return v0))
890 '''), 890 '''),
891 891
892 const TestSpec(''' 892 const TestSpec('''
893 main() { 893 main() {
894 return {"a": 0}; 894 return {"a": 0};
895 } 895 }
896 ''', ''' 896 ''', '''
897 (FunctionDefinition main () return () 897 (FunctionDefinition main () return ()
898 (LetPrim v0 (Constant StringConstant("a"))) 898 (LetPrim v0 (Constant (String "a")))
899 (LetPrim v1 (Constant IntConstant(0))) 899 (LetPrim v1 (Constant (Int 0)))
900 (LetPrim v2 (LiteralMap (v0) (v1))) 900 (LetPrim v2 (LiteralMap (v0) (v1)))
901 (InvokeContinuation return v2)) 901 (InvokeContinuation return v2))
902 '''), 902 '''),
903 903
904 const TestSpec(''' 904 const TestSpec('''
905 main(a) { 905 main(a) {
906 return {"a": 0, "b": 1, "c": a}; 906 return {"a": 0, "b": 1, "c": a};
907 } 907 }
908 ''', ''' 908 ''', '''
909 (FunctionDefinition main (a) return () 909 (FunctionDefinition main (a) return ()
910 (LetPrim v0 (Constant StringConstant("a"))) 910 (LetPrim v0 (Constant (String "a")))
911 (LetPrim v1 (Constant IntConstant(0))) 911 (LetPrim v1 (Constant (Int 0)))
912 (LetPrim v2 (Constant StringConstant("b"))) 912 (LetPrim v2 (Constant (String "b")))
913 (LetPrim v3 (Constant IntConstant(1))) 913 (LetPrim v3 (Constant (Int 1)))
914 (LetPrim v4 (Constant StringConstant("c"))) 914 (LetPrim v4 (Constant (String "c")))
915 (LetPrim v5 (LiteralMap (v0 v2 v4) (v1 v3 a))) 915 (LetPrim v5 (LiteralMap (v0 v2 v4) (v1 v3 a)))
916 (InvokeContinuation return v5)) 916 (InvokeContinuation return v5))
917 '''), 917 '''),
918 918
919 const TestSpec(''' 919 const TestSpec('''
920 main(a) { 920 main(a) {
921 return {0: "a", 1: {2: "b"}, a: {3: "c"}}; 921 return {0: "a", 1: {2: "b"}, a: {3: "c"}};
922 } 922 }
923 ''', ''' 923 ''', '''
924 (FunctionDefinition main (a) return () 924 (FunctionDefinition main (a) return ()
925 (LetPrim v0 (Constant IntConstant(0))) 925 (LetPrim v0 (Constant (Int 0)))
926 (LetPrim v1 (Constant StringConstant("a"))) 926 (LetPrim v1 (Constant (String "a")))
927 (LetPrim v2 (Constant IntConstant(1))) 927 (LetPrim v2 (Constant (Int 1)))
928 (LetPrim v3 (Constant IntConstant(2))) 928 (LetPrim v3 (Constant (Int 2)))
929 (LetPrim v4 (Constant StringConstant("b"))) 929 (LetPrim v4 (Constant (String "b")))
930 (LetPrim v5 (LiteralMap (v3) (v4))) 930 (LetPrim v5 (LiteralMap (v3) (v4)))
931 (LetPrim v6 (Constant IntConstant(3))) 931 (LetPrim v6 (Constant (Int 3)))
932 (LetPrim v7 (Constant StringConstant("c"))) 932 (LetPrim v7 (Constant (String "c")))
933 (LetPrim v8 (LiteralMap (v6) (v7))) 933 (LetPrim v8 (LiteralMap (v6) (v7)))
934 (LetPrim v9 (LiteralMap (v0 v2 a) (v1 v5 v8))) 934 (LetPrim v9 (LiteralMap (v0 v2 a) (v1 v5 v8)))
935 (InvokeContinuation return v9)) 935 (InvokeContinuation return v9))
936 '''), 936 '''),
937 ]), 937 ]),
938 938
939 const Group('For loop', const <TestSpec>[ 939 const Group('For loop', const <TestSpec>[
940 const TestSpec(''' 940 const TestSpec('''
941 main() { 941 main() {
942 for (;;) {} 942 for (;;) {}
943 } 943 }
944 ''', ''' 944 ''', '''
945 (FunctionDefinition main () return () 945 (FunctionDefinition main () return ()
946 (LetCont* (k0) 946 (LetCont* (k0)
947 (LetPrim v0 (Constant BoolConstant(true))) 947 (LetPrim v0 (Constant (Bool true)))
948 (LetCont (k1) 948 (LetCont (k1)
949 (LetPrim v1 (Constant NullConstant)) 949 (LetPrim v1 (Constant (Null)))
950 (InvokeContinuation return v1)) 950 (InvokeContinuation return v1))
951 (LetCont (k2) 951 (LetCont (k2)
952 (InvokeContinuation* k0 )) 952 (InvokeContinuation* k0 ))
953 (Branch (IsTrue v0) k2 k1)) 953 (Branch (IsTrue v0) k2 k1))
954 (InvokeContinuation k0 )) 954 (InvokeContinuation k0 ))
955 '''), 955 '''),
956 956
957 const TestSpec(''' 957 const TestSpec('''
958 main() { 958 main() {
959 for (var i = 0; i < 10; i = i + 1) { 959 for (var i = 0; i < 10; i = i + 1) {
960 print(i); 960 print(i);
961 } 961 }
962 } 962 }
963 ''', ''' 963 ''', '''
964 (FunctionDefinition main () return () 964 (FunctionDefinition main () return ()
965 (LetPrim v0 (Constant IntConstant(0))) 965 (LetPrim v0 (Constant (Int 0)))
966 (LetCont* (k0 v1) 966 (LetCont* (k0 v1)
967 (LetPrim v2 (Constant IntConstant(10))) 967 (LetPrim v2 (Constant (Int 10)))
968 (LetCont (k1 v3) 968 (LetCont (k1 v3)
969 (LetCont (k2) 969 (LetCont (k2)
970 (LetPrim v4 (Constant NullConstant)) 970 (LetPrim v4 (Constant (Null)))
971 (InvokeContinuation return v4)) 971 (InvokeContinuation return v4))
972 (LetCont (k3) 972 (LetCont (k3)
973 (LetCont (k4 v5) 973 (LetCont (k4 v5)
974 (LetPrim v6 (Constant IntConstant(1))) 974 (LetPrim v6 (Constant (Int 1)))
975 (LetCont (k5 v7) 975 (LetCont (k5 v7)
976 (InvokeContinuation* k0 v7)) 976 (InvokeContinuation* k0 v7))
977 (InvokeMethod v1 + v6 k5)) 977 (InvokeMethod v1 + v6 k5))
978 (InvokeStatic print v1 k4)) 978 (InvokeStatic print v1 k4))
979 (Branch (IsTrue v3) k3 k2)) 979 (Branch (IsTrue v3) k3 k2))
980 (InvokeMethod v1 < v2 k1)) 980 (InvokeMethod v1 < v2 k1))
981 (InvokeContinuation k0 v0)) 981 (InvokeContinuation k0 v0))
982 '''), 982 '''),
983 983
984 const TestSpec(''' 984 const TestSpec('''
985 main(i) { 985 main(i) {
986 for (i = 0; i < 10; i = i + 1) { 986 for (i = 0; i < 10; i = i + 1) {
987 print(i); 987 print(i);
988 } 988 }
989 } 989 }
990 ''', ''' 990 ''', '''
991 (FunctionDefinition main (i) return () 991 (FunctionDefinition main (i) return ()
992 (LetPrim v0 (Constant IntConstant(0))) 992 (LetPrim v0 (Constant (Int 0)))
993 (LetCont* (k0 v1) 993 (LetCont* (k0 v1)
994 (LetPrim v2 (Constant IntConstant(10))) 994 (LetPrim v2 (Constant (Int 10)))
995 (LetCont (k1 v3) 995 (LetCont (k1 v3)
996 (LetCont (k2) 996 (LetCont (k2)
997 (LetPrim v4 (Constant NullConstant)) 997 (LetPrim v4 (Constant (Null)))
998 (InvokeContinuation return v4)) 998 (InvokeContinuation return v4))
999 (LetCont (k3) 999 (LetCont (k3)
1000 (LetCont (k4 v5) 1000 (LetCont (k4 v5)
1001 (LetPrim v6 (Constant IntConstant(1))) 1001 (LetPrim v6 (Constant (Int 1)))
1002 (LetCont (k5 v7) 1002 (LetCont (k5 v7)
1003 (InvokeContinuation* k0 v7)) 1003 (InvokeContinuation* k0 v7))
1004 (InvokeMethod v1 + v6 k5)) 1004 (InvokeMethod v1 + v6 k5))
1005 (InvokeStatic print v1 k4)) 1005 (InvokeStatic print v1 k4))
1006 (Branch (IsTrue v3) k3 k2)) 1006 (Branch (IsTrue v3) k3 k2))
1007 (InvokeMethod v1 < v2 k1)) 1007 (InvokeMethod v1 < v2 k1))
1008 (InvokeContinuation k0 v0)) 1008 (InvokeContinuation k0 v0))
1009 '''), 1009 '''),
1010 ]), 1010 ]),
1011 1011
1012 const Group('While loop', const <TestSpec>[ 1012 const Group('While loop', const <TestSpec>[
1013 const TestSpec(''' 1013 const TestSpec('''
1014 main() { 1014 main() {
1015 while (true) {} 1015 while (true) {}
1016 } 1016 }
1017 ''', ''' 1017 ''', '''
1018 (FunctionDefinition main () return () 1018 (FunctionDefinition main () return ()
1019 (LetCont* (k0) 1019 (LetCont* (k0)
1020 (LetPrim v0 (Constant BoolConstant(true))) 1020 (LetPrim v0 (Constant (Bool true)))
1021 (LetCont (k1) 1021 (LetCont (k1)
1022 (LetPrim v1 (Constant NullConstant)) 1022 (LetPrim v1 (Constant (Null)))
1023 (InvokeContinuation return v1)) 1023 (InvokeContinuation return v1))
1024 (LetCont (k2) 1024 (LetCont (k2)
1025 (InvokeContinuation* k0 )) 1025 (InvokeContinuation* k0 ))
1026 (Branch (IsTrue v0) k2 k1)) 1026 (Branch (IsTrue v0) k2 k1))
1027 (InvokeContinuation k0 )) 1027 (InvokeContinuation k0 ))
1028 '''), 1028 '''),
1029 1029
1030 const TestSpec(''' 1030 const TestSpec('''
1031 main() { 1031 main() {
1032 var i = 0; 1032 var i = 0;
1033 while (i < 10) { 1033 while (i < 10) {
1034 print(i); 1034 print(i);
1035 i = i + 1; 1035 i = i + 1;
1036 } 1036 }
1037 } 1037 }
1038 ''', ''' 1038 ''', '''
1039 (FunctionDefinition main () return () 1039 (FunctionDefinition main () return ()
1040 (LetPrim v0 (Constant IntConstant(0))) 1040 (LetPrim v0 (Constant (Int 0)))
1041 (LetCont* (k0 v1) 1041 (LetCont* (k0 v1)
1042 (LetPrim v2 (Constant IntConstant(10))) 1042 (LetPrim v2 (Constant (Int 10)))
1043 (LetCont (k1 v3) 1043 (LetCont (k1 v3)
1044 (LetCont (k2) 1044 (LetCont (k2)
1045 (LetPrim v4 (Constant NullConstant)) 1045 (LetPrim v4 (Constant (Null)))
1046 (InvokeContinuation return v4)) 1046 (InvokeContinuation return v4))
1047 (LetCont (k3) 1047 (LetCont (k3)
1048 (LetCont (k4 v5) 1048 (LetCont (k4 v5)
1049 (LetPrim v6 (Constant IntConstant(1))) 1049 (LetPrim v6 (Constant (Int 1)))
1050 (LetCont (k5 v7) 1050 (LetCont (k5 v7)
1051 (InvokeContinuation* k0 v7)) 1051 (InvokeContinuation* k0 v7))
1052 (InvokeMethod v1 + v6 k5)) 1052 (InvokeMethod v1 + v6 k5))
1053 (InvokeStatic print v1 k4)) 1053 (InvokeStatic print v1 k4))
1054 (Branch (IsTrue v3) k3 k2)) 1054 (Branch (IsTrue v3) k3 k2))
1055 (InvokeMethod v1 < v2 k1)) 1055 (InvokeMethod v1 < v2 k1))
1056 (InvokeContinuation k0 v0)) 1056 (InvokeContinuation k0 v0))
1057 '''), 1057 '''),
1058 ]), 1058 ]),
1059 1059
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 const TestSpec(''' 1094 const TestSpec('''
1095 main(a) { 1095 main(a) {
1096 return a is! String; 1096 return a is! String;
1097 } 1097 }
1098 ''', ''' 1098 ''', '''
1099 (FunctionDefinition main (a) return () 1099 (FunctionDefinition main (a) return ()
1100 (LetCont (k0 v0) 1100 (LetCont (k0 v0)
1101 (LetCont (k1 v1) 1101 (LetCont (k1 v1)
1102 (InvokeContinuation return v1)) 1102 (InvokeContinuation return v1))
1103 (LetCont (k2) 1103 (LetCont (k2)
1104 (LetPrim v2 (Constant BoolConstant(false))) 1104 (LetPrim v2 (Constant (Bool false)))
1105 (InvokeContinuation k1 v2)) 1105 (InvokeContinuation k1 v2))
1106 (LetCont (k3) 1106 (LetCont (k3)
1107 (LetPrim v3 (Constant BoolConstant(true))) 1107 (LetPrim v3 (Constant (Bool true)))
1108 (InvokeContinuation k1 v3)) 1108 (InvokeContinuation k1 v3))
1109 (Branch (IsTrue v0) k2 k3)) 1109 (Branch (IsTrue v0) k2 k3))
1110 (TypeOperator is a String k0)) 1110 (TypeOperator is a String k0))
1111 '''), 1111 '''),
1112 1112
1113 const TestSpec(''' 1113 const TestSpec('''
1114 main(a) { 1114 main(a) {
1115 return a as String; 1115 return a as String;
1116 } 1116 }
1117 ''', ''' 1117 ''', '''
(...skipping 12 matching lines...) Expand all
1130 for (var i in a) { 1130 for (var i in a) {
1131 print(i); 1131 print(i);
1132 } 1132 }
1133 } 1133 }
1134 ''', ''' 1134 ''', '''
1135 (FunctionDefinition main (a) return () 1135 (FunctionDefinition main (a) return ()
1136 (LetCont (k0 v0) 1136 (LetCont (k0 v0)
1137 (LetCont* (k1 v1) 1137 (LetCont* (k1 v1)
1138 (LetCont (k2 v2) 1138 (LetCont (k2 v2)
1139 (LetCont (k3) 1139 (LetCont (k3)
1140 (LetPrim v3 (Constant NullConstant)) 1140 (LetPrim v3 (Constant (Null)))
1141 (InvokeContinuation return v3)) 1141 (InvokeContinuation return v3))
1142 (LetCont (k4) 1142 (LetCont (k4)
1143 (LetPrim v4 (Constant NullConstant)) 1143 (LetPrim v4 (Constant (Null)))
1144 (LetCont (k5 v5) 1144 (LetCont (k5 v5)
1145 (LetCont (k6 v6) 1145 (LetCont (k6 v6)
1146 (InvokeContinuation* k1 v1)) 1146 (InvokeContinuation* k1 v1))
1147 (InvokeStatic print v5 k6)) 1147 (InvokeStatic print v5 k6))
1148 (InvokeMethod v0 current k5)) 1148 (InvokeMethod v0 current k5))
1149 (Branch (IsTrue v2) k4 k3)) 1149 (Branch (IsTrue v2) k4 k3))
1150 (InvokeMethod v0 moveNext k2)) 1150 (InvokeMethod v0 moveNext k2))
1151 (InvokeContinuation k1 a)) 1151 (InvokeContinuation k1 a))
1152 (InvokeMethod a iterator k0)) 1152 (InvokeMethod a iterator k0))
1153 '''), 1153 '''),
1154 1154
1155 const TestSpec(''' 1155 const TestSpec('''
1156 main(a) { 1156 main(a) {
1157 for (var i in a) { 1157 for (var i in a) {
1158 print(i); 1158 print(i);
1159 i = 0; 1159 i = 0;
1160 print(i); 1160 print(i);
1161 } 1161 }
1162 } 1162 }
1163 ''', ''' 1163 ''', '''
1164 (FunctionDefinition main (a) return () 1164 (FunctionDefinition main (a) return ()
1165 (LetCont (k0 v0) 1165 (LetCont (k0 v0)
1166 (LetCont* (k1 v1) 1166 (LetCont* (k1 v1)
1167 (LetCont (k2 v2) 1167 (LetCont (k2 v2)
1168 (LetCont (k3) 1168 (LetCont (k3)
1169 (LetPrim v3 (Constant NullConstant)) 1169 (LetPrim v3 (Constant (Null)))
1170 (InvokeContinuation return v3)) 1170 (InvokeContinuation return v3))
1171 (LetCont (k4) 1171 (LetCont (k4)
1172 (LetPrim v4 (Constant NullConstant)) 1172 (LetPrim v4 (Constant (Null)))
1173 (LetCont (k5 v5) 1173 (LetCont (k5 v5)
1174 (LetCont (k6 v6) 1174 (LetCont (k6 v6)
1175 (LetPrim v7 (Constant IntConstant(0))) 1175 (LetPrim v7 (Constant (Int 0)))
1176 (LetCont (k7 v8) 1176 (LetCont (k7 v8)
1177 (InvokeContinuation* k1 v1)) 1177 (InvokeContinuation* k1 v1))
1178 (InvokeStatic print v7 k7)) 1178 (InvokeStatic print v7 k7))
1179 (InvokeStatic print v5 k6)) 1179 (InvokeStatic print v5 k6))
1180 (InvokeMethod v0 current k5)) 1180 (InvokeMethod v0 current k5))
1181 (Branch (IsTrue v2) k4 k3)) 1181 (Branch (IsTrue v2) k4 k3))
1182 (InvokeMethod v0 moveNext k2)) 1182 (InvokeMethod v0 moveNext k2))
1183 (InvokeContinuation k1 a)) 1183 (InvokeContinuation k1 a))
1184 (InvokeMethod a iterator k0)) 1184 (InvokeMethod a iterator k0))
1185 '''), 1185 '''),
1186 1186
1187 const TestSpec(''' 1187 const TestSpec('''
1188 main(a) { 1188 main(a) {
1189 var i; 1189 var i;
1190 for (i in a) { 1190 for (i in a) {
1191 print(i); 1191 print(i);
1192 } 1192 }
1193 } 1193 }
1194 ''', ''' 1194 ''', '''
1195 (FunctionDefinition main (a) return () 1195 (FunctionDefinition main (a) return ()
1196 (LetPrim v0 (Constant NullConstant)) 1196 (LetPrim v0 (Constant (Null)))
1197 (LetCont (k0 v1) 1197 (LetCont (k0 v1)
1198 (LetCont* (k1 v2 v3) 1198 (LetCont* (k1 v2 v3)
1199 (LetCont (k2 v4) 1199 (LetCont (k2 v4)
1200 (LetCont (k3) 1200 (LetCont (k3)
1201 (LetPrim v5 (Constant NullConstant)) 1201 (LetPrim v5 (Constant (Null)))
1202 (InvokeContinuation return v5)) 1202 (InvokeContinuation return v5))
1203 (LetCont (k4) 1203 (LetCont (k4)
1204 (LetCont (k5 v6) 1204 (LetCont (k5 v6)
1205 (LetCont (k6 v7) 1205 (LetCont (k6 v7)
1206 (InvokeContinuation* k1 v2 v6)) 1206 (InvokeContinuation* k1 v2 v6))
1207 (InvokeStatic print v6 k6)) 1207 (InvokeStatic print v6 k6))
1208 (InvokeMethod v1 current k5)) 1208 (InvokeMethod v1 current k5))
1209 (Branch (IsTrue v4) k4 k3)) 1209 (Branch (IsTrue v4) k4 k3))
1210 (InvokeMethod v1 moveNext k2)) 1210 (InvokeMethod v1 moveNext k2))
1211 (InvokeContinuation k1 a v0)) 1211 (InvokeContinuation k1 a v0))
1212 (InvokeMethod a iterator k0)) 1212 (InvokeMethod a iterator k0))
1213 '''), 1213 '''),
1214 ]), 1214 ]),
1215 1215
1216 const Group('Local functions', const <TestSpec>[ 1216 const Group('Local functions', const <TestSpec>[
1217 const TestSpec(''' 1217 const TestSpec('''
1218 main(a) { 1218 main(a) {
1219 local() {} 1219 local() {}
1220 return local(); 1220 return local();
1221 } 1221 }
1222 ''', ''' 1222 ''', '''
1223 (FunctionDefinition main (a) return () 1223 (FunctionDefinition main (a) return ()
1224 (LetPrim v0 (CreateFunction 1224 (LetPrim v0 (CreateFunction
1225 (FunctionDefinition local () return () 1225 (FunctionDefinition local () return ()
1226 (LetPrim v1 (Constant NullConstant)) 1226 (LetPrim v1 (Constant (Null)))
1227 (InvokeContinuation return v1)))) 1227 (InvokeContinuation return v1))))
1228 (LetCont (k0 v2) 1228 (LetCont (k0 v2)
1229 (InvokeContinuation return v2)) 1229 (InvokeContinuation return v2))
1230 (InvokeMethod v0 call k0)) 1230 (InvokeMethod v0 call k0))
1231 '''), 1231 '''),
1232 1232
1233 const TestSpec(''' 1233 const TestSpec('''
1234 main(a) { 1234 main(a) {
1235 local() {} 1235 local() {}
1236 var l = local; 1236 var l = local;
1237 return l(); 1237 return l();
1238 } 1238 }
1239 ''', ''' 1239 ''', '''
1240 (FunctionDefinition main (a) return () 1240 (FunctionDefinition main (a) return ()
1241 (LetPrim v0 (CreateFunction 1241 (LetPrim v0 (CreateFunction
1242 (FunctionDefinition local () return () 1242 (FunctionDefinition local () return ()
1243 (LetPrim v1 (Constant NullConstant)) 1243 (LetPrim v1 (Constant (Null)))
1244 (InvokeContinuation return v1)))) 1244 (InvokeContinuation return v1))))
1245 (LetCont (k0 v2) 1245 (LetCont (k0 v2)
1246 (InvokeContinuation return v2)) 1246 (InvokeContinuation return v2))
1247 (InvokeMethod v0 call k0)) 1247 (InvokeMethod v0 call k0))
1248 '''), 1248 '''),
1249 1249
1250 const TestSpec(''' 1250 const TestSpec('''
1251 main(a) { 1251 main(a) {
1252 return () {}(); 1252 return () {}();
1253 } 1253 }
1254 ''', ''' 1254 ''', '''
1255 (FunctionDefinition main (a) return () 1255 (FunctionDefinition main (a) return ()
1256 (LetPrim v0 (CreateFunction 1256 (LetPrim v0 (CreateFunction
1257 (FunctionDefinition () return () 1257 (FunctionDefinition () return ()
1258 (LetPrim v1 (Constant NullConstant)) 1258 (LetPrim v1 (Constant (Null)))
1259 (InvokeContinuation return v1)))) 1259 (InvokeContinuation return v1))))
1260 (LetCont (k0 v2) 1260 (LetCont (k0 v2)
1261 (InvokeContinuation return v2)) 1261 (InvokeContinuation return v2))
1262 (InvokeMethod v0 call k0)) 1262 (InvokeMethod v0 call k0))
1263 '''), 1263 '''),
1264 1264
1265 const TestSpec(''' 1265 const TestSpec('''
1266 main(a) { 1266 main(a) {
1267 var c = a ? () { return 0; } : () { return 1; } 1267 var c = a ? () { return 0; } : () { return 1; }
1268 return c(); 1268 return c();
1269 } 1269 }
1270 ''', ''' 1270 ''', '''
1271 (FunctionDefinition main (a) return () 1271 (FunctionDefinition main (a) return ()
1272 (LetCont (k0 v0) 1272 (LetCont (k0 v0)
1273 (LetCont (k1 v1) 1273 (LetCont (k1 v1)
1274 (InvokeContinuation return v1)) 1274 (InvokeContinuation return v1))
1275 (InvokeMethod v0 call k1)) 1275 (InvokeMethod v0 call k1))
1276 (LetCont (k2) 1276 (LetCont (k2)
1277 (LetPrim v2 (CreateFunction 1277 (LetPrim v2 (CreateFunction
1278 (FunctionDefinition () return () 1278 (FunctionDefinition () return ()
1279 (LetPrim v3 (Constant IntConstant(0))) 1279 (LetPrim v3 (Constant (Int 0)))
1280 (InvokeContinuation return v3)))) 1280 (InvokeContinuation return v3))))
1281 (InvokeContinuation k0 v2)) 1281 (InvokeContinuation k0 v2))
1282 (LetCont (k3) 1282 (LetCont (k3)
1283 (LetPrim v4 (CreateFunction 1283 (LetPrim v4 (CreateFunction
1284 (FunctionDefinition () return () 1284 (FunctionDefinition () return ()
1285 (LetPrim v5 (Constant IntConstant(1))) 1285 (LetPrim v5 (Constant (Int 1)))
1286 (InvokeContinuation return v5)))) 1286 (InvokeContinuation return v5))))
1287 (InvokeContinuation k0 v4)) 1287 (InvokeContinuation k0 v4))
1288 (Branch (IsTrue a) k2 k3)) 1288 (Branch (IsTrue a) k2 k3))
1289 '''), 1289 '''),
1290 ]), 1290 ]),
1291 1291
1292 const Group('Top level field', const <TestSpec>[ 1292 const Group('Top level field', const <TestSpec>[
1293 const TestSpec(''' 1293 const TestSpec('''
1294 var field; 1294 var field;
1295 main(args) { 1295 main(args) {
(...skipping 17 matching lines...) Expand all
1313 } 1313 }
1314 ''', const { 1314 ''', const {
1315 'main': ''' 1315 'main': '''
1316 (FunctionDefinition main (args) return () 1316 (FunctionDefinition main (args) return ()
1317 (LetCont (k0 v0) 1317 (LetCont (k0 v0)
1318 (InvokeContinuation return v0)) 1318 (InvokeContinuation return v0))
1319 (InvokeStatic field k0)) 1319 (InvokeStatic field k0))
1320 ''', 1320 ''',
1321 'field': ''' 1321 'field': '''
1322 (FieldDefinition field (return) 1322 (FieldDefinition field (return)
1323 (LetPrim v0 (Constant NullConstant)) 1323 (LetPrim v0 (Constant (Null)))
1324 (InvokeContinuation return v0)) 1324 (InvokeContinuation return v0))
1325 '''}), 1325 '''}),
1326 1326
1327 const TestSpec(''' 1327 const TestSpec('''
1328 var field = 0; 1328 var field = 0;
1329 main(args) { 1329 main(args) {
1330 return field; 1330 return field;
1331 } 1331 }
1332 ''', const { 1332 ''', const {
1333 'main': ''' 1333 'main': '''
1334 (FunctionDefinition main (args) return () 1334 (FunctionDefinition main (args) return ()
1335 (LetCont (k0 v0) 1335 (LetCont (k0 v0)
1336 (InvokeContinuation return v0)) 1336 (InvokeContinuation return v0))
1337 (InvokeStatic field k0)) 1337 (InvokeStatic field k0))
1338 ''', 1338 ''',
1339 'field': ''' 1339 'field': '''
1340 (FieldDefinition field (return) 1340 (FieldDefinition field (return)
1341 (LetPrim v0 (Constant IntConstant(0))) 1341 (LetPrim v0 (Constant (Int 0)))
1342 (InvokeContinuation return v0)) 1342 (InvokeContinuation return v0))
1343 '''}), 1343 '''}),
1344 1344
1345 const TestSpec(''' 1345 const TestSpec('''
1346 var field; 1346 var field;
1347 main(args) { 1347 main(args) {
1348 field = args.length; 1348 field = args.length;
1349 return field; 1349 return field;
1350 } 1350 }
1351 ''', ''' 1351 ''', '''
(...skipping 17 matching lines...) Expand all
1369 } 1369 }
1370 ''', ''' 1370 ''', '''
1371 (FunctionDefinition main (x foo) return (foo) 1371 (FunctionDefinition main (x foo) return (foo)
1372 (LetCont (k0 v0) 1372 (LetCont (k0 v0)
1373 (LetPrim v1 (CreateFunction 1373 (LetPrim v1 (CreateFunction
1374 (FunctionDefinition getFoo () return () 1374 (FunctionDefinition getFoo () return ()
1375 (LetPrim v2 (GetClosureVariable foo)) 1375 (LetPrim v2 (GetClosureVariable foo))
1376 (InvokeContinuation return v2)))) 1376 (InvokeContinuation return v2))))
1377 (LetCont (k1 v3) 1377 (LetCont (k1 v3)
1378 (LetCont (k2 v4) 1378 (LetCont (k2 v4)
1379 (LetPrim v5 (Constant NullConstant)) 1379 (LetPrim v5 (Constant (Null)))
1380 (InvokeContinuation return v5)) 1380 (InvokeContinuation return v5))
1381 (InvokeStatic print v3 k2)) 1381 (InvokeStatic print v3 k2))
1382 (InvokeMethod v1 call k1)) 1382 (InvokeMethod v1 call k1))
1383 (InvokeStatic print x k0)) 1383 (InvokeStatic print x k0))
1384 ''', skipInAnalyzerFrontend: true) 1384 ''', skipInAnalyzerFrontend: true)
1385 ]), 1385 ]),
1386 ]; 1386 ];
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698