|  | // Copyright (c) 2018, 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. | 
|  |  | 
|  | // Bug in unboxed int spilling (https://github.com/flutter/flutter/issues/23879). | 
|  | // | 
|  | // VMOptions=--deterministic | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | List<int?> list = new List<int?>.filled(10, null); | 
|  |  | 
|  | List<int?> expected_values = | 
|  | [null, 152, 168, 184, 200, 216, 232, 248, 264, 280]; | 
|  |  | 
|  | int count = 0; | 
|  |  | 
|  | bool getNext() { | 
|  | return ++count <= 9; | 
|  | } | 
|  |  | 
|  | int foo() { | 
|  | int a = 1; | 
|  | int b = 2; | 
|  | int c = 3; | 
|  | int d = 4; | 
|  | int e = 5; | 
|  | int f = 6; | 
|  | int g = 7; | 
|  | int h = 8; | 
|  | int i = 9; | 
|  | int j = 10; | 
|  | int k = 11; | 
|  | int l = 12; | 
|  | int m = 13; | 
|  | int n = 14; | 
|  | int o = 15; | 
|  | int p = 16; | 
|  | count = 0; | 
|  | int componentIndex = 1; | 
|  | while (getNext()) { | 
|  | // Make spilling likely. | 
|  | a++; | 
|  | b++; | 
|  | c++; | 
|  | d++; | 
|  | e++; | 
|  | f++; | 
|  | g++; | 
|  | h++; | 
|  | i++; | 
|  | j++; | 
|  | k++; | 
|  | l++; | 
|  | m++; | 
|  | n++; | 
|  | o++; | 
|  | p++; | 
|  | list[componentIndex] = | 
|  | a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p; | 
|  | componentIndex++; | 
|  | } | 
|  | return componentIndex; | 
|  | } | 
|  |  | 
|  | void main() { | 
|  | int x = foo(); | 
|  | Expect.equals(10, x); | 
|  | Expect.equals(10, count); | 
|  | for (int i = 0; i < 10; i++) { | 
|  | Expect.equals(expected_values[i], list[i]); | 
|  | } | 
|  | } |