| 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;
|
| +}
|
|
|