| Index: test/codegen/lib/mirrors/accessor_cache_overflow_test.dart
 | 
| diff --git a/test/codegen/lib/mirrors/accessor_cache_overflow_test.dart b/test/codegen/lib/mirrors/accessor_cache_overflow_test.dart
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..860bc93a697481b331dd3dfcc73bbc9adc62057c
 | 
| --- /dev/null
 | 
| +++ b/test/codegen/lib/mirrors/accessor_cache_overflow_test.dart
 | 
| @@ -0,0 +1,292 @@
 | 
| +// Copyright (c) 2014, 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.
 | 
| +
 | 
| +// This test runs invokes getField and setField enough times to get cached
 | 
| +// closures generated and with enough different field names to trip the path
 | 
| +// that flushes the closure cache.
 | 
| +
 | 
| +library test.hot_get_field;
 | 
| +
 | 
| +import 'dart:mirrors';
 | 
| +import 'package:expect/expect.dart';
 | 
| +
 | 
| +const int optimizationThreshold = 20;
 | 
| +
 | 
| +main() {
 | 
| +  var digits =
 | 
| +      ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
 | 
| +  var symbols = new List();
 | 
| +  for (var high in digits) {
 | 
| +    for (var low in digits) {
 | 
| +      symbols.add(MirrorSystem.getSymbol("v$high$low"));
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  var im = reflect(new C());
 | 
| +  for (var i = 0; i < optimizationThreshold * 2; i++) {
 | 
| +    for (var fieldName in symbols) {
 | 
| +      im.getField(fieldName);
 | 
| +      im.setField(fieldName, 'foo');
 | 
| +    }
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +class C {
 | 
| +  var v00;
 | 
| +  var v01;
 | 
| +  var v02;
 | 
| +  var v03;
 | 
| +  var v04;
 | 
| +  var v05;
 | 
| +  var v06;
 | 
| +  var v07;
 | 
| +  var v08;
 | 
| +  var v09;
 | 
| +  var v0A;
 | 
| +  var v0B;
 | 
| +  var v0C;
 | 
| +  var v0D;
 | 
| +  var v0E;
 | 
| +  var v0F;
 | 
| +  var v10;
 | 
| +  var v11;
 | 
| +  var v12;
 | 
| +  var v13;
 | 
| +  var v14;
 | 
| +  var v15;
 | 
| +  var v16;
 | 
| +  var v17;
 | 
| +  var v18;
 | 
| +  var v19;
 | 
| +  var v1A;
 | 
| +  var v1B;
 | 
| +  var v1C;
 | 
| +  var v1D;
 | 
| +  var v1E;
 | 
| +  var v1F;
 | 
| +  var v20;
 | 
| +  var v21;
 | 
| +  var v22;
 | 
| +  var v23;
 | 
| +  var v24;
 | 
| +  var v25;
 | 
| +  var v26;
 | 
| +  var v27;
 | 
| +  var v28;
 | 
| +  var v29;
 | 
| +  var v2A;
 | 
| +  var v2B;
 | 
| +  var v2C;
 | 
| +  var v2D;
 | 
| +  var v2E;
 | 
| +  var v2F;
 | 
| +  var v30;
 | 
| +  var v31;
 | 
| +  var v32;
 | 
| +  var v33;
 | 
| +  var v34;
 | 
| +  var v35;
 | 
| +  var v36;
 | 
| +  var v37;
 | 
| +  var v38;
 | 
| +  var v39;
 | 
| +  var v3A;
 | 
| +  var v3B;
 | 
| +  var v3C;
 | 
| +  var v3D;
 | 
| +  var v3E;
 | 
| +  var v3F;
 | 
| +  var v40;
 | 
| +  var v41;
 | 
| +  var v42;
 | 
| +  var v43;
 | 
| +  var v44;
 | 
| +  var v45;
 | 
| +  var v46;
 | 
| +  var v47;
 | 
| +  var v48;
 | 
| +  var v49;
 | 
| +  var v4A;
 | 
| +  var v4B;
 | 
| +  var v4C;
 | 
| +  var v4D;
 | 
| +  var v4E;
 | 
| +  var v4F;
 | 
| +  var v50;
 | 
| +  var v51;
 | 
| +  var v52;
 | 
| +  var v53;
 | 
| +  var v54;
 | 
| +  var v55;
 | 
| +  var v56;
 | 
| +  var v57;
 | 
| +  var v58;
 | 
| +  var v59;
 | 
| +  var v5A;
 | 
| +  var v5B;
 | 
| +  var v5C;
 | 
| +  var v5D;
 | 
| +  var v5E;
 | 
| +  var v5F;
 | 
| +  var v60;
 | 
| +  var v61;
 | 
| +  var v62;
 | 
| +  var v63;
 | 
| +  var v64;
 | 
| +  var v65;
 | 
| +  var v66;
 | 
| +  var v67;
 | 
| +  var v68;
 | 
| +  var v69;
 | 
| +  var v6A;
 | 
| +  var v6B;
 | 
| +  var v6C;
 | 
| +  var v6D;
 | 
| +  var v6E;
 | 
| +  var v6F;
 | 
| +  var v70;
 | 
| +  var v71;
 | 
| +  var v72;
 | 
| +  var v73;
 | 
| +  var v74;
 | 
| +  var v75;
 | 
| +  var v76;
 | 
| +  var v77;
 | 
| +  var v78;
 | 
| +  var v79;
 | 
| +  var v7A;
 | 
| +  var v7B;
 | 
| +  var v7C;
 | 
| +  var v7D;
 | 
| +  var v7E;
 | 
| +  var v7F;
 | 
| +  var v80;
 | 
| +  var v81;
 | 
| +  var v82;
 | 
| +  var v83;
 | 
| +  var v84;
 | 
| +  var v85;
 | 
| +  var v86;
 | 
| +  var v87;
 | 
| +  var v88;
 | 
| +  var v89;
 | 
| +  var v8A;
 | 
| +  var v8B;
 | 
| +  var v8C;
 | 
| +  var v8D;
 | 
| +  var v8E;
 | 
| +  var v8F;
 | 
| +  var v90;
 | 
| +  var v91;
 | 
| +  var v92;
 | 
| +  var v93;
 | 
| +  var v94;
 | 
| +  var v95;
 | 
| +  var v96;
 | 
| +  var v97;
 | 
| +  var v98;
 | 
| +  var v99;
 | 
| +  var v9A;
 | 
| +  var v9B;
 | 
| +  var v9C;
 | 
| +  var v9D;
 | 
| +  var v9E;
 | 
| +  var v9F;
 | 
| +  var vA0;
 | 
| +  var vA1;
 | 
| +  var vA2;
 | 
| +  var vA3;
 | 
| +  var vA4;
 | 
| +  var vA5;
 | 
| +  var vA6;
 | 
| +  var vA7;
 | 
| +  var vA8;
 | 
| +  var vA9;
 | 
| +  var vAA;
 | 
| +  var vAB;
 | 
| +  var vAC;
 | 
| +  var vAD;
 | 
| +  var vAE;
 | 
| +  var vAF;
 | 
| +  var vB0;
 | 
| +  var vB1;
 | 
| +  var vB2;
 | 
| +  var vB3;
 | 
| +  var vB4;
 | 
| +  var vB5;
 | 
| +  var vB6;
 | 
| +  var vB7;
 | 
| +  var vB8;
 | 
| +  var vB9;
 | 
| +  var vBA;
 | 
| +  var vBB;
 | 
| +  var vBC;
 | 
| +  var vBD;
 | 
| +  var vBE;
 | 
| +  var vBF;
 | 
| +  var vC0;
 | 
| +  var vC1;
 | 
| +  var vC2;
 | 
| +  var vC3;
 | 
| +  var vC4;
 | 
| +  var vC5;
 | 
| +  var vC6;
 | 
| +  var vC7;
 | 
| +  var vC8;
 | 
| +  var vC9;
 | 
| +  var vCA;
 | 
| +  var vCB;
 | 
| +  var vCC;
 | 
| +  var vCD;
 | 
| +  var vCE;
 | 
| +  var vCF;
 | 
| +  var vD0;
 | 
| +  var vD1;
 | 
| +  var vD2;
 | 
| +  var vD3;
 | 
| +  var vD4;
 | 
| +  var vD5;
 | 
| +  var vD6;
 | 
| +  var vD7;
 | 
| +  var vD8;
 | 
| +  var vD9;
 | 
| +  var vDA;
 | 
| +  var vDB;
 | 
| +  var vDC;
 | 
| +  var vDD;
 | 
| +  var vDE;
 | 
| +  var vDF;
 | 
| +  var vE0;
 | 
| +  var vE1;
 | 
| +  var vE2;
 | 
| +  var vE3;
 | 
| +  var vE4;
 | 
| +  var vE5;
 | 
| +  var vE6;
 | 
| +  var vE7;
 | 
| +  var vE8;
 | 
| +  var vE9;
 | 
| +  var vEA;
 | 
| +  var vEB;
 | 
| +  var vEC;
 | 
| +  var vED;
 | 
| +  var vEE;
 | 
| +  var vEF;
 | 
| +  var vF0;
 | 
| +  var vF1;
 | 
| +  var vF2;
 | 
| +  var vF3;
 | 
| +  var vF4;
 | 
| +  var vF5;
 | 
| +  var vF6;
 | 
| +  var vF7;
 | 
| +  var vF8;
 | 
| +  var vF9;
 | 
| +  var vFA;
 | 
| +  var vFB;
 | 
| +  var vFC;
 | 
| +  var vFD;
 | 
| +  var vFE;
 | 
| +  var vFF;
 | 
| +}
 | 
| 
 |