Index: tests/language/vm/optimized_guarded_field_test.dart |
=================================================================== |
--- tests/language/vm/optimized_guarded_field_test.dart (revision 29540) |
+++ tests/language/vm/optimized_guarded_field_test.dart (working copy) |
@@ -32,4 +32,23 @@ |
a.foo = 123; |
Expect.equals("other", test(a)); |
Expect.equals("null", test(b)); |
+ |
+ // Test guarded fields with allocation sinking and deoptimization. |
+ Expect.equals(43, test_deopt(42, 1)); |
+ for (var i = 0; i < 20; i++) test_deopt(42, 1); |
+ Expect.equals(43, test_deopt(42, 1)); |
+ Expect.equals("aaabbb", test_deopt("aaa", "bbb")); |
} |
+ |
+ |
+class C { |
+ C(this.x, this.y); |
+ final x; |
+ final y; |
+} |
+ |
+ |
+test_deopt(a, b) { |
+ var c = new C(a, b); |
+ return c.x + c.y; |
+} |