// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // Tests that the VM does not crash on weird corner cases of class Math. // VMOptions=--optimization_counter_threshold=100 library math_vm_test; import 'dart:math'; class FakeNumber { const FakeNumber(); void toDouble() {} } class MathTest { static bool testParseInt(x) { try { int.parse(x); // Expects string. return true; } catch (e) { return false; } } static bool testSqrt(x) { try { sqrt(x); // Expects number. return true; } catch (e) { return false; } } static void testMain() { Expect.equals(false, testParseInt(5)); Expect.equals(false, testSqrt(const FakeNumber())); } } testDoublePow() { Expect.equals((1 << 32).toDouble(), pow(2.0, 32)); } main() { for (int i = 0; i < 200; i++) { MathTest.testMain(); testDoublePow(); } }