| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| 2 // for details. All rights reserved. Use of this source code is governed by a | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 // This test runs invokes getField and setField enough times to get cached | |
| 6 // closures generated and with enough different field names to trip the path | |
| 7 // that flushes the closure cache. | |
| 8 | |
| 9 library test.hot_get_field; | |
| 10 | |
| 11 @MirrorsUsed(targets: "test.hot_get_field") | |
| 12 import 'dart:mirrors'; | |
| 13 import 'package:expect/expect.dart'; | |
| 14 | |
| 15 const int optimizationThreshold = 20; | |
| 16 | |
| 17 main() { | |
| 18 var digits = [ | |
| 19 '0', | |
| 20 '1', | |
| 21 '2', | |
| 22 '3', | |
| 23 '4', | |
| 24 '5', | |
| 25 '6', | |
| 26 '7', | |
| 27 '8', | |
| 28 '9', | |
| 29 'A', | |
| 30 'B', | |
| 31 'C', | |
| 32 'D', | |
| 33 'E', | |
| 34 'F' | |
| 35 ]; | |
| 36 var symbols = new List(); | |
| 37 for (var high in digits) { | |
| 38 for (var low in digits) { | |
| 39 symbols.add(MirrorSystem.getSymbol("v$high$low")); | |
| 40 } | |
| 41 } | |
| 42 | |
| 43 var im = reflect(new C()); | |
| 44 for (var i = 0; i < optimizationThreshold * 2; i++) { | |
| 45 for (var fieldName in symbols) { | |
| 46 im.getField(fieldName); | |
| 47 im.setField(fieldName, 'foo'); | |
| 48 } | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 class C { | |
| 53 var v00; | |
| 54 var v01; | |
| 55 var v02; | |
| 56 var v03; | |
| 57 var v04; | |
| 58 var v05; | |
| 59 var v06; | |
| 60 var v07; | |
| 61 var v08; | |
| 62 var v09; | |
| 63 var v0A; | |
| 64 var v0B; | |
| 65 var v0C; | |
| 66 var v0D; | |
| 67 var v0E; | |
| 68 var v0F; | |
| 69 var v10; | |
| 70 var v11; | |
| 71 var v12; | |
| 72 var v13; | |
| 73 var v14; | |
| 74 var v15; | |
| 75 var v16; | |
| 76 var v17; | |
| 77 var v18; | |
| 78 var v19; | |
| 79 var v1A; | |
| 80 var v1B; | |
| 81 var v1C; | |
| 82 var v1D; | |
| 83 var v1E; | |
| 84 var v1F; | |
| 85 var v20; | |
| 86 var v21; | |
| 87 var v22; | |
| 88 var v23; | |
| 89 var v24; | |
| 90 var v25; | |
| 91 var v26; | |
| 92 var v27; | |
| 93 var v28; | |
| 94 var v29; | |
| 95 var v2A; | |
| 96 var v2B; | |
| 97 var v2C; | |
| 98 var v2D; | |
| 99 var v2E; | |
| 100 var v2F; | |
| 101 var v30; | |
| 102 var v31; | |
| 103 var v32; | |
| 104 var v33; | |
| 105 var v34; | |
| 106 var v35; | |
| 107 var v36; | |
| 108 var v37; | |
| 109 var v38; | |
| 110 var v39; | |
| 111 var v3A; | |
| 112 var v3B; | |
| 113 var v3C; | |
| 114 var v3D; | |
| 115 var v3E; | |
| 116 var v3F; | |
| 117 var v40; | |
| 118 var v41; | |
| 119 var v42; | |
| 120 var v43; | |
| 121 var v44; | |
| 122 var v45; | |
| 123 var v46; | |
| 124 var v47; | |
| 125 var v48; | |
| 126 var v49; | |
| 127 var v4A; | |
| 128 var v4B; | |
| 129 var v4C; | |
| 130 var v4D; | |
| 131 var v4E; | |
| 132 var v4F; | |
| 133 var v50; | |
| 134 var v51; | |
| 135 var v52; | |
| 136 var v53; | |
| 137 var v54; | |
| 138 var v55; | |
| 139 var v56; | |
| 140 var v57; | |
| 141 var v58; | |
| 142 var v59; | |
| 143 var v5A; | |
| 144 var v5B; | |
| 145 var v5C; | |
| 146 var v5D; | |
| 147 var v5E; | |
| 148 var v5F; | |
| 149 var v60; | |
| 150 var v61; | |
| 151 var v62; | |
| 152 var v63; | |
| 153 var v64; | |
| 154 var v65; | |
| 155 var v66; | |
| 156 var v67; | |
| 157 var v68; | |
| 158 var v69; | |
| 159 var v6A; | |
| 160 var v6B; | |
| 161 var v6C; | |
| 162 var v6D; | |
| 163 var v6E; | |
| 164 var v6F; | |
| 165 var v70; | |
| 166 var v71; | |
| 167 var v72; | |
| 168 var v73; | |
| 169 var v74; | |
| 170 var v75; | |
| 171 var v76; | |
| 172 var v77; | |
| 173 var v78; | |
| 174 var v79; | |
| 175 var v7A; | |
| 176 var v7B; | |
| 177 var v7C; | |
| 178 var v7D; | |
| 179 var v7E; | |
| 180 var v7F; | |
| 181 var v80; | |
| 182 var v81; | |
| 183 var v82; | |
| 184 var v83; | |
| 185 var v84; | |
| 186 var v85; | |
| 187 var v86; | |
| 188 var v87; | |
| 189 var v88; | |
| 190 var v89; | |
| 191 var v8A; | |
| 192 var v8B; | |
| 193 var v8C; | |
| 194 var v8D; | |
| 195 var v8E; | |
| 196 var v8F; | |
| 197 var v90; | |
| 198 var v91; | |
| 199 var v92; | |
| 200 var v93; | |
| 201 var v94; | |
| 202 var v95; | |
| 203 var v96; | |
| 204 var v97; | |
| 205 var v98; | |
| 206 var v99; | |
| 207 var v9A; | |
| 208 var v9B; | |
| 209 var v9C; | |
| 210 var v9D; | |
| 211 var v9E; | |
| 212 var v9F; | |
| 213 var vA0; | |
| 214 var vA1; | |
| 215 var vA2; | |
| 216 var vA3; | |
| 217 var vA4; | |
| 218 var vA5; | |
| 219 var vA6; | |
| 220 var vA7; | |
| 221 var vA8; | |
| 222 var vA9; | |
| 223 var vAA; | |
| 224 var vAB; | |
| 225 var vAC; | |
| 226 var vAD; | |
| 227 var vAE; | |
| 228 var vAF; | |
| 229 var vB0; | |
| 230 var vB1; | |
| 231 var vB2; | |
| 232 var vB3; | |
| 233 var vB4; | |
| 234 var vB5; | |
| 235 var vB6; | |
| 236 var vB7; | |
| 237 var vB8; | |
| 238 var vB9; | |
| 239 var vBA; | |
| 240 var vBB; | |
| 241 var vBC; | |
| 242 var vBD; | |
| 243 var vBE; | |
| 244 var vBF; | |
| 245 var vC0; | |
| 246 var vC1; | |
| 247 var vC2; | |
| 248 var vC3; | |
| 249 var vC4; | |
| 250 var vC5; | |
| 251 var vC6; | |
| 252 var vC7; | |
| 253 var vC8; | |
| 254 var vC9; | |
| 255 var vCA; | |
| 256 var vCB; | |
| 257 var vCC; | |
| 258 var vCD; | |
| 259 var vCE; | |
| 260 var vCF; | |
| 261 var vD0; | |
| 262 var vD1; | |
| 263 var vD2; | |
| 264 var vD3; | |
| 265 var vD4; | |
| 266 var vD5; | |
| 267 var vD6; | |
| 268 var vD7; | |
| 269 var vD8; | |
| 270 var vD9; | |
| 271 var vDA; | |
| 272 var vDB; | |
| 273 var vDC; | |
| 274 var vDD; | |
| 275 var vDE; | |
| 276 var vDF; | |
| 277 var vE0; | |
| 278 var vE1; | |
| 279 var vE2; | |
| 280 var vE3; | |
| 281 var vE4; | |
| 282 var vE5; | |
| 283 var vE6; | |
| 284 var vE7; | |
| 285 var vE8; | |
| 286 var vE9; | |
| 287 var vEA; | |
| 288 var vEB; | |
| 289 var vEC; | |
| 290 var vED; | |
| 291 var vEE; | |
| 292 var vEF; | |
| 293 var vF0; | |
| 294 var vF1; | |
| 295 var vF2; | |
| 296 var vF3; | |
| 297 var vF4; | |
| 298 var vF5; | |
| 299 var vF6; | |
| 300 var vF7; | |
| 301 var vF8; | |
| 302 var vF9; | |
| 303 var vFA; | |
| 304 var vFB; | |
| 305 var vFC; | |
| 306 var vFD; | |
| 307 var vFE; | |
| 308 var vFF; | |
| 309 } | |
| OLD | NEW |