Index: runtime/tests/vm/dart/double_materialize_test.dart |
diff --git a/runtime/tests/vm/dart/double_materialize_test.dart b/runtime/tests/vm/dart/double_materialize_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2cab01ca6be4925b8852ceff2b78fe231f1f502c |
--- /dev/null |
+++ b/runtime/tests/vm/dart/double_materialize_test.dart |
@@ -0,0 +1,23 @@ |
+// Copyright (c) 2016, 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. |
+ |
+// VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background-compilation |
+ |
+import "package:expect/expect.dart"; |
+ |
+double f(double x, double five, dynamic y) { |
+ double z = x + five; |
+ var a = y + 5; |
+ return z + a.toDouble(); |
+} |
+ |
+void main() { |
+ double x = 1.0; |
+ for (int i = 0; i < 1000; i++) { |
+ x = f(x, 5.0, i); |
+ } |
+ x = f(x, 5.0, 1.0); |
+ Expect.equals(509512.0, x); |
+} |
+ |