OLD | NEW |
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 // Tests of operators. | 5 // Tests of operators. |
6 | 6 |
7 library operators_tests; | 7 library operators_tests; |
8 | 8 |
9 import 'js_backend_cps_ir.dart'; | 9 import 'js_backend_cps_ir.dart'; |
10 | 10 |
11 const List<TestEntry> tests = const [ | 11 const List<TestEntry> tests = const [ |
12 const TestEntry("main() { return true ? 42 : 'foo'; }"), | 12 const TestEntry("main() { return true ? 42 : 'foo'; }"), |
13 const TestEntry(""" | 13 const TestEntry(""" |
14 foo() => foo(); | 14 foo() => foo(); |
15 main() { | 15 main() { |
16 print(foo() ? "hello world" : "bad bad"); | 16 print(foo() ? "hello world" : "bad bad"); |
17 }""", | 17 }""", |
18 """function() { | 18 """function() { |
19 V.foo(); | 19 V.foo(); |
20 P.print("bad bad"); | 20 P.print("bad bad"); |
21 return null; | |
22 }"""), | 21 }"""), |
23 const TestEntry(""" | 22 const TestEntry(""" |
24 foo() => null; | 23 foo() => null; |
25 main() { | 24 main() { |
26 print(foo() ? "hello world" : "bad bad"); | 25 print(foo() ? "hello world" : "bad bad"); |
27 }""", | 26 }""", |
28 """function() { | 27 """function() { |
29 V.foo(); | 28 V.foo(); |
30 P.print("bad bad"); | 29 P.print("bad bad"); |
31 return null; | |
32 }"""), | 30 }"""), |
33 const TestEntry(""" | 31 const TestEntry(""" |
34 get foo => foo; | 32 get foo => foo; |
35 main() { | 33 main() { |
36 print(foo ? "hello world" : "bad bad"); | 34 print(foo ? "hello world" : "bad bad"); |
37 }""", | 35 }""", |
38 """function() { | 36 """function() { |
39 V.foo(); | 37 V.foo(); |
40 P.print("bad bad"); | 38 P.print("bad bad"); |
41 return null; | |
42 }"""), | 39 }"""), |
43 const TestEntry(""" | 40 const TestEntry(""" |
44 get foo => foo; | 41 get foo => foo; |
45 main() { print(foo && foo); }""", | 42 main() { print(foo && foo); }""", |
46 """function() { | 43 """function() { |
47 V.foo(); | 44 V.foo(); |
48 P.print(false); | 45 P.print(false); |
49 return null; | |
50 }"""), | 46 }"""), |
51 const TestEntry(""" | 47 const TestEntry(""" |
52 get foo => foo; | 48 get foo => foo; |
53 main() { print(foo || foo); }""", | 49 main() { print(foo || foo); }""", |
54 """function() { | 50 """function() { |
55 V.foo(); | 51 V.foo(); |
56 V.foo(); | 52 V.foo(); |
57 P.print(false); | 53 P.print(false); |
58 return null; | |
59 }"""), | 54 }"""), |
60 | 55 |
61 // Needs interceptor calling convention | 56 // Needs interceptor calling convention |
62 //const TestEntry(""" | 57 //const TestEntry(""" |
63 //class Foo { | 58 //class Foo { |
64 // operator[]=(index, value) { | 59 // operator[]=(index, value) { |
65 // print(value); | 60 // print(value); |
66 // } | 61 // } |
67 //} | 62 //} |
68 //main() { | 63 //main() { |
69 // var foo = new Foo(); | 64 // var foo = new Foo(); |
70 // foo[5] = 6; | 65 // foo[5] = 6; |
71 //}""", r""" | 66 //}""", r""" |
72 //function() { | 67 //function() { |
73 // V.Foo$().$indexSet(5, 6); | 68 // V.Foo$().$indexSet(5, 6); |
74 //} | 69 //} |
75 //"""), | 70 //"""), |
76 | 71 |
77 const TestEntry(""" | 72 const TestEntry(""" |
78 main() { | 73 main() { |
79 var list = [1, 2, 3]; | 74 var list = [1, 2, 3]; |
80 list[1] = 6; | 75 list[1] = 6; |
81 print(list); | 76 print(list); |
82 }""", r""" | 77 }""", r""" |
83 function() { | 78 function() { |
84 var list = [1, 2, 3]; | 79 var list = [1, 2, 3]; |
85 J.getInterceptor$a(list).$indexSet(list, 1, 6); | 80 J.getInterceptor$a(list).$indexSet(list, 1, 6); |
86 P.print(list); | 81 P.print(list); |
87 return null; | |
88 }"""), | 82 }"""), |
89 ]; | 83 ]; |
90 | 84 |
91 void main() { | 85 void main() { |
92 runTests(tests); | 86 runTests(tests); |
93 } | 87 } |
OLD | NEW |