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 for basic functionality. | 5 // Tests for basic functionality. |
6 | 6 |
7 library basic_tests; | 7 library basic_tests; |
8 | 8 |
9 import 'js_backend_cps_ir.dart'; | 9 import 'js_backend_cps_ir.dart'; |
10 | 10 |
(...skipping 16 matching lines...) Expand all Loading... |
27 function() { | 27 function() { |
28 var l = [1, 2, 3], m = P.LinkedHashMap_LinkedHashMap$_literal(["s", 1]); | 28 var l = [1, 2, 3], m = P.LinkedHashMap_LinkedHashMap$_literal(["s", 1]); |
29 P.print("()"); | 29 P.print("()"); |
30 P.print("(true)"); | 30 P.print("(true)"); |
31 P.print("(1)"); | 31 P.print("(1)"); |
32 P.print("(" + H.S([1, 2, 3]) + ")"); | 32 P.print("(" + H.S([1, 2, 3]) + ")"); |
33 P.print("(" + H.S(P.LinkedHashMap_LinkedHashMap$_literal(["s", 1])) + ")"); | 33 P.print("(" + H.S(P.LinkedHashMap_LinkedHashMap$_literal(["s", 1])) + ")"); |
34 P.print("(1)"); | 34 P.print("(1)"); |
35 P.print("(" + H.S(l) + ")"); | 35 P.print("(" + H.S(l) + ")"); |
36 P.print("(" + H.S(m) + ")"); | 36 P.print("(" + H.S(m) + ")"); |
37 return null; | |
38 }"""), | 37 }"""), |
39 const TestEntry(""" | 38 const TestEntry(""" |
40 foo(a, [b = "b"]) => b; | 39 foo(a, [b = "b"]) => b; |
41 bar(a, {b: "b", c: "c"}) => c; | 40 bar(a, {b: "b", c: "c"}) => c; |
42 main() { | 41 main() { |
43 foo(0); | 42 foo(0); |
44 foo(1, 2); | 43 foo(1, 2); |
45 bar(3); | 44 bar(3); |
46 bar(4, b: 5); | 45 bar(4, b: 5); |
47 bar(6, c: 7); | 46 bar(6, c: 7); |
48 bar(8, b: 9, c: 10); | 47 bar(8, b: 9, c: 10); |
49 } | 48 } |
50 """, | 49 """, |
51 """ | 50 """ |
52 function() { | 51 function() { |
53 V.foo(0, "b"); | 52 V.foo(0, "b"); |
54 V.foo(1, 2); | 53 V.foo(1, 2); |
55 V.bar(3, "b", "c"); | 54 V.bar(3, "b", "c"); |
56 V.bar(4, 5, "c"); | 55 V.bar(4, 5, "c"); |
57 V.bar(6, "b", 7); | 56 V.bar(6, "b", 7); |
58 V.bar(8, 9, 10); | 57 V.bar(8, 9, 10); |
59 return null; | |
60 }"""), | 58 }"""), |
61 const TestEntry( | 59 const TestEntry( |
62 """ | 60 """ |
63 foo(a) { | 61 foo(a) { |
64 return a; | 62 return a; |
65 } | 63 } |
66 main() { | 64 main() { |
67 var a = 10; | 65 var a = 10; |
68 var b = 1; | 66 var b = 1; |
69 var t; | 67 var t; |
70 t = a; | 68 t = a; |
71 a = b; | 69 a = b; |
72 b = t; | 70 b = t; |
73 print(a); | 71 print(a); |
74 print(b); | 72 print(b); |
75 print(b); | 73 print(b); |
76 print(foo(a)); | 74 print(foo(a)); |
77 } | 75 } |
78 """, | 76 """, |
79 """ | 77 """ |
80 function() { | 78 function() { |
81 var a = 10, b = 1; | 79 var a = 10, b = 1; |
82 P.print(b); | 80 P.print(b); |
83 P.print(a); | 81 P.print(a); |
84 P.print(a); | 82 P.print(a); |
85 P.print(V.foo(b)); | 83 P.print(V.foo(b)); |
86 return null; | |
87 }"""), | 84 }"""), |
88 const TestEntry( | 85 const TestEntry( |
89 """ | 86 """ |
90 foo() { return 42; } | 87 foo() { return 42; } |
91 main() { return foo(); } | 88 main() { return foo(); } |
92 """, | 89 """, |
93 """function() { | 90 """function() { |
94 return V.foo(); | 91 return V.foo(); |
95 }"""), | 92 }"""), |
96 const TestEntry("main() {}"), | 93 const TestEntry("main() {}"), |
97 const TestEntry("main() { return 42; }"), | 94 const TestEntry("main() { return 42; }"), |
98 const TestEntry("main() { return; }", """ | 95 const TestEntry("main() { return; }", """ |
99 function() { | 96 function() { |
100 return null; | |
101 }"""), | 97 }"""), |
102 // Constructor invocation | 98 // Constructor invocation |
103 const TestEntry(""" | 99 const TestEntry(""" |
104 main() { | 100 main() { |
105 print(new Set()); | 101 print(new Set()); |
106 print(new Set.from([1, 2, 3])); | 102 print(new Set.from([1, 2, 3])); |
107 }""", r""" | 103 }""", r""" |
108 function() { | 104 function() { |
109 P.print(P.LinkedHashSet_LinkedHashSet(null, null, null, null)); | 105 P.print(P.LinkedHashSet_LinkedHashSet(null, null, null, null)); |
110 P.print(P.LinkedHashSet_LinkedHashSet$from([1, 2, 3], null)); | 106 P.print(P.LinkedHashSet_LinkedHashSet$from([1, 2, 3], null)); |
111 return null; | |
112 }"""), | 107 }"""), |
113 // Call synthetic constructor. | 108 // Call synthetic constructor. |
114 const TestEntry(""" | 109 const TestEntry(""" |
115 class C {} | 110 class C {} |
116 main() { | 111 main() { |
117 print(new C()); | 112 print(new C()); |
118 }"""), | 113 }"""), |
119 // Method invocation | 114 // Method invocation |
120 const TestEntry(""" | 115 const TestEntry(""" |
121 main() { | 116 main() { |
122 print(new DateTime.now().isBefore(new DateTime.now())); | 117 print(new DateTime.now().isBefore(new DateTime.now())); |
123 }""", r""" | 118 }""", r""" |
124 function() { | 119 function() { |
125 P.print(P.DateTime$now().isBefore$1(P.DateTime$now())); | 120 P.print(P.DateTime$now().isBefore$1(P.DateTime$now())); |
126 return null; | |
127 }"""), | 121 }"""), |
128 // Static calls | 122 // Static calls |
129 const TestEntry(""" | 123 const TestEntry(""" |
130 foo() { print(42); } | 124 foo() { print(42); } |
131 main() { foo(); } | 125 main() { foo(); } |
132 """, r""" | 126 """, r""" |
133 function() { | 127 function() { |
134 V.foo(); | 128 V.foo(); |
135 return null; | |
136 }"""), | 129 }"""), |
137 // Static getters | 130 // Static getters |
138 const TestEntry(""" | 131 const TestEntry(""" |
139 var foo = 42; | 132 var foo = 42; |
140 main() { print(foo); } | 133 main() { print(foo); } |
141 """, r""" | 134 """, r""" |
142 function() { | 135 function() { |
143 P.print($.foo); | 136 P.print($.foo); |
144 return null; | |
145 }"""), | 137 }"""), |
146 const TestEntry(""" | 138 const TestEntry(""" |
147 get foo { print(42); } | 139 get foo { print(42); } |
148 main() { foo; } | 140 main() { foo; } |
149 """, r""" | 141 """, r""" |
150 function() { | 142 function() { |
151 V.foo(); | 143 V.foo(); |
152 return null; | |
153 }"""), | 144 }"""), |
154 // Static setters | 145 // Static setters |
155 const TestEntry(""" | 146 const TestEntry(""" |
156 var foo = 0; | 147 var foo = 0; |
157 main() { print(foo = 42); } | 148 main() { print(foo = 42); } |
158 """, r""" | 149 """, r""" |
159 function() { | 150 function() { |
160 var v0 = 42; | 151 var v0 = 42; |
161 $.foo = v0; | 152 $.foo = v0; |
162 P.print(v0); | 153 P.print(v0); |
163 return null; | |
164 }"""), | 154 }"""), |
165 const TestEntry(""" | 155 const TestEntry(""" |
166 set foo(x) { print(x); } | 156 set foo(x) { print(x); } |
167 main() { foo = 42; } | 157 main() { foo = 42; } |
168 """, r""" | 158 """, r""" |
169 function() { | 159 function() { |
170 V.foo(42); | 160 V.foo(42); |
171 return null; | |
172 }"""), | 161 }"""), |
173 // Assert | 162 // Assert |
174 const TestEntry(""" | 163 const TestEntry(""" |
175 foo() { print('X'); } | 164 foo() { print('X'); } |
176 main() { | 165 main() { |
177 assert(true); | 166 assert(true); |
178 assert(false); | 167 assert(false); |
179 assert(foo()); | 168 assert(foo()); |
180 print('Done'); | 169 print('Done'); |
181 }""", r""" | 170 }""", r""" |
182 function() { | 171 function() { |
183 P.print("Done"); | 172 P.print("Done"); |
184 return null; | |
185 }""") | 173 }""") |
186 ]; | 174 ]; |
187 | 175 |
188 | 176 |
189 void main() { | 177 void main() { |
190 runTests(tests); | 178 runTests(tests); |
191 } | 179 } |
OLD | NEW |