Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: test/codegen/lib/mirrors/accessor_cache_overflow_test.dart

Issue 2265533002: Add mirrors tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/codegen/lib/mirrors/abstract_test.dart ('k') | test/codegen/lib/mirrors/array_tracing2_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
+}
« no previous file with comments | « test/codegen/lib/mirrors/abstract_test.dart ('k') | test/codegen/lib/mirrors/array_tracing2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698