mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:16:51 +00:00
8ed772d37f
Without loadLibrary()! changes. Change-Id: I78806547ac62fa806e99eb2d5e3f2041f20ce942 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139404 Reviewed-by: Régis Crelier <regis@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
309 lines
3.8 KiB
Dart
309 lines
3.8 KiB
Dart
// 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 = <dynamic>[];
|
|
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;
|
|
}
|