|  | // Copyright (c) 2015, 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. | 
|  | // Dart test program checking that optimizations are not too aggressive and | 
|  | // incorrect: | 
|  | // - (a * (1.0 / b)) | 
|  | // | 
|  | // VMOptions=--optimization-counter-threshold=8 --no-use-osr --no-background-compilation | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | var xx = 23.0; | 
|  |  | 
|  | main() { | 
|  | xx = 1e-6; | 
|  | scaleIt(1e-310); | 
|  | Expect.isTrue(xx.isInfinite); | 
|  | for (int i = 0; i < 10; i++) { | 
|  | xx = 24.0; | 
|  | scaleIt(6.0); | 
|  | Expect.equals(4.0, xx); | 
|  | } | 
|  | xx = 1e-6; | 
|  | scaleIt(1e-310); | 
|  | Expect.isTrue(xx.isInfinite); | 
|  | } | 
|  |  | 
|  | scaleIt(double b) { | 
|  | scale(1.0 / b); | 
|  | } | 
|  |  | 
|  | scale(a) { | 
|  | xx *= a; | 
|  | } |