| 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 |