OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // Tests that the VM does not crash on weird corner cases of class Math. | 4 // Tests that the VM does not crash on weird corner cases of class Math. |
5 // VMOptions=--optimization_counter_threshold=100 | 5 // VMOptions=--optimization_counter_threshold=100 |
6 | 6 |
| 7 #import('dart:math'); |
| 8 |
7 class FakeNumber { | 9 class FakeNumber { |
8 const FakeNumber(); | 10 const FakeNumber(); |
9 void toDouble() {} | 11 void toDouble() {} |
10 } | 12 } |
11 | 13 |
12 class MathTest { | 14 class MathTest { |
13 static bool testParseInt(x) { | 15 static bool testParseInt(x) { |
14 try { | 16 try { |
15 Math.parseInt(x); // Expects string. | 17 parseInt(x); // Expects string. |
16 return true; | 18 return true; |
17 } catch (var e) { | 19 } catch (var e) { |
18 return false; | 20 return false; |
19 } | 21 } |
20 } | 22 } |
21 | 23 |
22 static bool testSqrt(x) { | 24 static bool testSqrt(x) { |
23 try { | 25 try { |
24 Math.sqrt(x); // Expects number. | 26 sqrt(x); // Expects number. |
25 return true; | 27 return true; |
26 } catch (var e) { | 28 } catch (var e) { |
27 return false; | 29 return false; |
28 } | 30 } |
29 } | 31 } |
30 | 32 |
31 static void testMain() { | 33 static void testMain() { |
32 Expect.equals(false, testParseInt(5)); | 34 Expect.equals(false, testParseInt(5)); |
33 Expect.equals(false, testSqrt(const FakeNumber())); | 35 Expect.equals(false, testSqrt(const FakeNumber())); |
34 } | 36 } |
35 } | 37 } |
36 main() { | 38 main() { |
37 for (int i = 0; i < 200; i++) { | 39 for (int i = 0; i < 200; i++) { |
38 MathTest.testMain(); | 40 MathTest.testMain(); |
39 } | 41 } |
40 } | 42 } |
OLD | NEW |