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