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

Side by Side Diff: runtime/observatory/lib/src/elements/instance_view.dart

Issue 2298563002: Removed const from classes arrays in Observatory (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library instance_view_element; 5 library instance_view_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'package:observatory/models.dart' as M; 9 import 'package:observatory/models.dart' as M;
10 import 'package:observatory/src/elements/class_ref.dart'; 10 import 'package:observatory/src/elements/class_ref.dart';
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 void render() { 158 void render() {
159 final content = [ 159 final content = [
160 new HeadingElement.h2()..text = M.isAbstractType(_instance.kind) 160 new HeadingElement.h2()..text = M.isAbstractType(_instance.kind)
161 ? 'type ${_instance.name}' 161 ? 'type ${_instance.name}'
162 : 'instance of ${_instance.clazz.name}', 162 : 'instance of ${_instance.clazz.name}',
163 new HRElement(), 163 new HRElement(),
164 new ObjectCommonElement(_isolate, _instance, _retainedSizes, 164 new ObjectCommonElement(_isolate, _instance, _retainedSizes,
165 _reachableSizes, _references, _retainingPaths, 165 _reachableSizes, _references, _retainingPaths,
166 _instances, queue: _r.queue), 166 _instances, queue: _r.queue),
167 new BRElement(), 167 new BRElement(),
168 new DivElement()..classes = const ['memberList'] 168 new DivElement()..classes = ['memberList']
169 ..children = _createMembers(), 169 ..children = _createMembers(),
170 new HRElement(), 170 new HRElement(),
171 new EvalBoxElement(_isolate, _instance, _instances, _eval, 171 new EvalBoxElement(_isolate, _instance, _instances, _eval,
172 quickExpressions: const ['toString()', 172 quickExpressions: const ['toString()',
173 'runtimeType'], 173 'runtimeType'],
174 queue: _r.queue) 174 queue: _r.queue)
175 ]; 175 ];
176 if (_location != null) { 176 if (_location != null) {
177 content.addAll([ 177 content.addAll([
178 new HRElement(), 178 new HRElement(),
179 new SourceInsetElement(_isolate, _location, _scripts, _instances, 179 new SourceInsetElement(_isolate, _location, _scripts, _instances,
180 _events, queue: _r.queue) 180 _events, queue: _r.queue)
181 ]); 181 ]);
182 } 182 }
183 content.addAll([ 183 content.addAll([
184 new HRElement(), 184 new HRElement(),
185 new ViewFooterElement(queue: _r.queue) 185 new ViewFooterElement(queue: _r.queue)
186 ]); 186 ]);
187 children = [ 187 children = [
188 new NavBarElement(queue: _r.queue) 188 new NavBarElement(queue: _r.queue)
189 ..children = _createMenu(), 189 ..children = _createMenu(),
190 new DivElement()..classes = const ['content-centered-big'] 190 new DivElement()..classes = ['content-centered-big']
191 ..children = content 191 ..children = content
192 ]; 192 ];
193 } 193 }
194 194
195 List<Element> _createMenu() { 195 List<Element> _createMenu() {
196 final menu = [ 196 final menu = [
197 new NavTopMenuElement(queue: _r.queue), 197 new NavTopMenuElement(queue: _r.queue),
198 new NavVMMenuElement(_vm, _events, queue: _r.queue), 198 new NavVMMenuElement(_vm, _events, queue: _r.queue),
199 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue) 199 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue)
200 ]; 200 ];
(...skipping 10 matching lines...) Expand all
211 _refresh(); 211 _refresh();
212 }), 212 }),
213 new NavNotifyElement(_notifications, queue: _r.queue) 213 new NavNotifyElement(_notifications, queue: _r.queue)
214 ]); 214 ]);
215 return menu; 215 return menu;
216 } 216 }
217 217
218 List<Element> _createMembers() { 218 List<Element> _createMembers() {
219 final members = <Element>[]; 219 final members = <Element>[];
220 if (_instance.valueAsString != null) { 220 if (_instance.valueAsString != null) {
221 members.add(new DivElement()..classes = const ['memberItem'] 221 members.add(new DivElement()..classes = ['memberItem']
222 ..children = [ 222 ..children = [
223 new DivElement()..classes = const ['memberName'] 223 new DivElement()..classes = ['memberName']
224 ..text = _instance.kind == M.InstanceKind.string 224 ..text = _instance.kind == M.InstanceKind.string
225 ? 'value as literal' 225 ? 'value as literal'
226 : 'value', 226 : 'value',
227 new DivElement()..classes = const ['memberValue'] 227 new DivElement()..classes = ['memberValue']
228 ..text = _instance.kind == M.InstanceKind.string 228 ..text = _instance.kind == M.InstanceKind.string
229 ? Utils.formatStringAsLiteral(_instance.valueAsString, 229 ? Utils.formatStringAsLiteral(_instance.valueAsString,
230 _instance.valueAsStringIsTruncated) 230 _instance.valueAsStringIsTruncated)
231 : _instance.valueAsString 231 : _instance.valueAsString
232 ]); 232 ]);
233 } 233 }
234 if (_instance.typeClass != null) { 234 if (_instance.typeClass != null) {
235 members.add(new DivElement()..classes = const ['memberItem'] 235 members.add(new DivElement()..classes = ['memberItem']
236 ..children = [ 236 ..children = [
237 new DivElement()..classes = const ['memberName'] 237 new DivElement()..classes = ['memberName']
238 ..text = 'type class', 238 ..text = 'type class',
239 new DivElement()..classes = const ['memberValue'] 239 new DivElement()..classes = ['memberValue']
240 ..children = [ 240 ..children = [
241 new ClassRefElement(_isolate, _instance.typeClass, 241 new ClassRefElement(_isolate, _instance.typeClass,
242 queue: _r.queue) 242 queue: _r.queue)
243 ] 243 ]
244 ]); 244 ]);
245 } 245 }
246 if (_typeArguments != null && _typeArguments.types.isNotEmpty) { 246 if (_typeArguments != null && _typeArguments.types.isNotEmpty) {
247 members.add(new DivElement()..classes = const ['memberItem'] 247 members.add(new DivElement()..classes = ['memberItem']
248 ..children = [ 248 ..children = [
249 new DivElement()..classes = const ['memberName'] 249 new DivElement()..classes = ['memberName']
250 ..text = 'type arguments', 250 ..text = 'type arguments',
251 new DivElement()..classes = const ['memberValue'] 251 new DivElement()..classes = ['memberValue']
252 ..children = ([ 252 ..children = ([
253 new SpanElement()..text = '< ' 253 new SpanElement()..text = '< '
254 ] 254 ]
255 ..addAll(_typeArguments.types.expand((type) => [ 255 ..addAll(_typeArguments.types.expand((type) => [
256 new InstanceRefElement(_isolate, type, _instances, queue: 256 new InstanceRefElement(_isolate, type, _instances, queue:
257 _r.queue), 257 _r.queue),
258 new SpanElement()..text = ', ' 258 new SpanElement()..text = ', '
259 ])) 259 ]))
260 ..removeLast() 260 ..removeLast()
261 ..add(new SpanElement()..text = ' >')) 261 ..add(new SpanElement()..text = ' >'))
262 ]); 262 ]);
263 } 263 }
264 if (_instance.parameterizedClass != null) { 264 if (_instance.parameterizedClass != null) {
265 members.add(new DivElement()..classes = const ['memberItem'] 265 members.add(new DivElement()..classes = ['memberItem']
266 ..children = [ 266 ..children = [
267 new DivElement()..classes = const ['memberName'] 267 new DivElement()..classes = ['memberName']
268 ..text = 'parameterized class', 268 ..text = 'parameterized class',
269 new DivElement()..classes = const ['memberValue'] 269 new DivElement()..classes = ['memberValue']
270 ..children = [ 270 ..children = [
271 new ClassRefElement(_isolate, _instance.parameterizedClass, 271 new ClassRefElement(_isolate, _instance.parameterizedClass,
272 queue: _r.queue) 272 queue: _r.queue)
273 ] 273 ]
274 ]); 274 ]);
275 } 275 }
276 if (_instance.parameterIndex != null) { 276 if (_instance.parameterIndex != null) {
277 members.add(new DivElement()..classes = const ['memberItem'] 277 members.add(new DivElement()..classes = ['memberItem']
278 ..children = [ 278 ..children = [
279 new DivElement()..classes = const ['memberName'] 279 new DivElement()..classes = ['memberName']
280 ..text = 'parameter index', 280 ..text = 'parameter index',
281 new DivElement()..classes = const ['memberValue'] 281 new DivElement()..classes = ['memberValue']
282 ..text = '${_instance.parameterIndex}' 282 ..text = '${_instance.parameterIndex}'
283 ]); 283 ]);
284 } 284 }
285 if (_instance.targetType != null) { 285 if (_instance.targetType != null) {
286 members.add(new DivElement()..classes = const ['memberItem'] 286 members.add(new DivElement()..classes = ['memberItem']
287 ..children = [ 287 ..children = [
288 new DivElement()..classes = const ['memberName'] 288 new DivElement()..classes = ['memberName']
289 ..text = 'target type', 289 ..text = 'target type',
290 new DivElement()..classes = const ['memberValue'] 290 new DivElement()..classes = ['memberValue']
291 ..children = [ 291 ..children = [
292 new InstanceRefElement(_isolate, _instance.targetType, _instances, 292 new InstanceRefElement(_isolate, _instance.targetType, _instances,
293 queue: _r.queue) 293 queue: _r.queue)
294 ] 294 ]
295 ]); 295 ]);
296 } 296 }
297 if (_instance.bound != null) { 297 if (_instance.bound != null) {
298 members.add(new DivElement()..classes = const ['memberItem'] 298 members.add(new DivElement()..classes = ['memberItem']
299 ..children = [ 299 ..children = [
300 new DivElement()..classes = const ['memberName'] 300 new DivElement()..classes = ['memberName']
301 ..text = 'bound', 301 ..text = 'bound',
302 new DivElement()..classes = const ['memberValue'] 302 new DivElement()..classes = ['memberValue']
303 ..children = [ 303 ..children = [
304 new InstanceRefElement(_isolate, _instance.bound, _instances, 304 new InstanceRefElement(_isolate, _instance.bound, _instances,
305 queue: _r.queue) 305 queue: _r.queue)
306 ] 306 ]
307 ]); 307 ]);
308 } 308 }
309 if (_instance.closureFunction != null) { 309 if (_instance.closureFunction != null) {
310 members.add(new DivElement()..classes = const ['memberItem'] 310 members.add(new DivElement()..classes = ['memberItem']
311 ..children = [ 311 ..children = [
312 new DivElement()..classes = const ['memberName'] 312 new DivElement()..classes = ['memberName']
313 ..text = 'closure function', 313 ..text = 'closure function',
314 new DivElement()..classes = const ['memberValue'] 314 new DivElement()..classes = ['memberValue']
315 ..children = [ 315 ..children = [
316 new FunctionRefElement(_isolate, _instance.closureFunction, 316 new FunctionRefElement(_isolate, _instance.closureFunction,
317 queue: _r.queue) 317 queue: _r.queue)
318 ] 318 ]
319 ]); 319 ]);
320 } 320 }
321 if (_instance.closureContext != null) { 321 if (_instance.closureContext != null) {
322 members.add(new DivElement()..classes = const ['memberItem'] 322 members.add(new DivElement()..classes = ['memberItem']
323 ..children = [ 323 ..children = [
324 new DivElement()..classes = const ['memberName'] 324 new DivElement()..classes = ['memberName']
325 ..text = 'closure context', 325 ..text = 'closure context',
326 new DivElement()..classes = const ['memberValue'] 326 new DivElement()..classes = ['memberValue']
327 ..children = [ 327 ..children = [
328 new ContextRefElement(_isolate, _instance.closureContext, 328 new ContextRefElement(_isolate, _instance.closureContext,
329 queue: _r.queue) 329 queue: _r.queue)
330 ] 330 ]
331 ]); 331 ]);
332 } 332 }
333 if (_instance.kind == M.InstanceKind.closure) { 333 if (_instance.kind == M.InstanceKind.closure) {
334 ButtonElement btn; 334 ButtonElement btn;
335 members.add(new DivElement()..classes = const ['memberItem'] 335 members.add(new DivElement()..classes = ['memberItem']
336 ..children = [ 336 ..children = [
337 new DivElement()..classes = const ['memberName'] 337 new DivElement()..classes = ['memberName']
338 ..text = 'closure breakpoint', 338 ..text = 'closure breakpoint',
339 new DivElement()..classes = const ['memberValue'] 339 new DivElement()..classes = ['memberValue']
340 ..children = [ 340 ..children = [
341 btn = new ButtonElement() 341 btn = new ButtonElement()
342 ..text = _instance.activationBreakpoint == null 342 ..text = _instance.activationBreakpoint == null
343 ? 'break on activation' 343 ? 'break on activation'
344 : 'remove' 344 : 'remove'
345 ..onClick.listen((_) { 345 ..onClick.listen((_) {
346 btn.disabled = true; 346 btn.disabled = true;
347 _toggleBreakpoint(); 347 _toggleBreakpoint();
348 }) 348 })
349 ] 349 ]
350 ]); 350 ]);
351 } 351 }
352 352
353 if (_instance.nativeFields != null && _instance.nativeFields.isNotEmpty) { 353 if (_instance.nativeFields != null && _instance.nativeFields.isNotEmpty) {
354 int i = 0; 354 int i = 0;
355 members.add(new DivElement()..classes = const ['memberItem'] 355 members.add(new DivElement()..classes = ['memberItem']
356 ..children = [ 356 ..children = [
357 new DivElement()..classes = const ['memberName'] 357 new DivElement()..classes = ['memberName']
358 ..text = 'native fields (${_instance.nativeFields.length})', 358 ..text = 'native fields (${_instance.nativeFields.length})',
359 new DivElement()..classes = const ['memberName'] 359 new DivElement()..classes = ['memberName']
360 ..children = [ 360 ..children = [
361 new CurlyBlockElement( 361 new CurlyBlockElement(
362 expanded: _instance.nativeFields.length <= 100, 362 expanded: _instance.nativeFields.length <= 100,
363 queue: _r.queue) 363 queue: _r.queue)
364 ..children = [ 364 ..children = [
365 new DivElement()..classes = const ['memberList'] 365 new DivElement()..classes = ['memberList']
366 ..children = _instance.nativeFields.map((f) => 366 ..children = _instance.nativeFields.map((f) =>
367 new DivElement()..classes = const ['memberItem'] 367 new DivElement()..classes = ['memberItem']
368 ..children = [ 368 ..children = [
369 new DivElement()..classes = const ['memberName'] 369 new DivElement()..classes = ['memberName']
370 ..text = '[ ${i++} ]', 370 ..text = '[ ${i++} ]',
371 new DivElement()..classes = const ['memberValue'] 371 new DivElement()..classes = ['memberValue']
372 ..text = '[ ${f.value} ]' 372 ..text = '[ ${f.value} ]'
373 ]).toList() 373 ]).toList()
374 ] 374 ]
375 ] 375 ]
376 ]); 376 ]);
377 } 377 }
378 378
379 if (_instance.fields != null && _instance.fields.isNotEmpty) { 379 if (_instance.fields != null && _instance.fields.isNotEmpty) {
380 final fields = _instance.fields.toList(); 380 final fields = _instance.fields.toList();
381 members.add(new DivElement()..classes = const ['memberItem'] 381 members.add(new DivElement()..classes = ['memberItem']
382 ..children = [ 382 ..children = [
383 new DivElement()..classes = const ['memberName'] 383 new DivElement()..classes = ['memberName']
384 ..text = 'fields (${fields.length})', 384 ..text = 'fields (${fields.length})',
385 new DivElement()..classes = const ['memberName'] 385 new DivElement()..classes = ['memberName']
386 ..children = [ 386 ..children = [
387 new CurlyBlockElement( 387 new CurlyBlockElement(
388 expanded: fields.length <= 100, 388 expanded: fields.length <= 100,
389 queue: _r.queue) 389 queue: _r.queue)
390 ..children = [ 390 ..children = [
391 new DivElement()..classes = const ['memberList'] 391 new DivElement()..classes = ['memberList']
392 ..children = fields.map((f) => 392 ..children = fields.map((f) =>
393 new DivElement()..classes = const ['memberItem'] 393 new DivElement()..classes = ['memberItem']
394 ..children = [ 394 ..children = [
395 new DivElement()..classes = const ['memberName'] 395 new DivElement()..classes = ['memberName']
396 ..children = [ 396 ..children = [
397 new FieldRefElement(_isolate, f.decl, _instances, 397 new FieldRefElement(_isolate, f.decl, _instances,
398 queue: _r.queue) 398 queue: _r.queue)
399 ], 399 ],
400 new DivElement()..classes = const ['memberValue'] 400 new DivElement()..classes = ['memberValue']
401 ..children = [ 401 ..children = [
402 new SpanElement()..text = ' = ', 402 new SpanElement()..text = ' = ',
403 anyRef(_isolate, f.value, _instances, 403 anyRef(_isolate, f.value, _instances,
404 queue: _r.queue) 404 queue: _r.queue)
405 ] 405 ]
406 ]).toList() 406 ]).toList()
407 ] 407 ]
408 ] 408 ]
409 ]); 409 ]);
410 } 410 }
411 411
412 if (_instance.elements != null && _instance.elements.isNotEmpty) { 412 if (_instance.elements != null && _instance.elements.isNotEmpty) {
413 final elements = _instance.elements.toList(); 413 final elements = _instance.elements.toList();
414 int i = 0; 414 int i = 0;
415 members.add(new DivElement()..classes = const ['memberItem'] 415 members.add(new DivElement()..classes = ['memberItem']
416 ..children = [ 416 ..children = [
417 new DivElement()..classes = const ['memberName'] 417 new DivElement()..classes = ['memberName']
418 ..text = 'elements (${_instance.length})', 418 ..text = 'elements (${_instance.length})',
419 new DivElement()..classes = const ['memberValue'] 419 new DivElement()..classes = ['memberValue']
420 ..children = [ 420 ..children = [
421 new CurlyBlockElement( 421 new CurlyBlockElement(
422 expanded: elements.length <= 100, 422 expanded: elements.length <= 100,
423 queue: _r.queue) 423 queue: _r.queue)
424 ..children = [ 424 ..children = [
425 new DivElement()..classes = const ['memberList'] 425 new DivElement()..classes = ['memberList']
426 ..children = elements.map((e) => 426 ..children = elements.map((e) =>
427 new DivElement()..classes = const ['memberItem'] 427 new DivElement()..classes = ['memberItem']
428 ..children = [ 428 ..children = [
429 new DivElement()..classes = const ['memberName'] 429 new DivElement()..classes = ['memberName']
430 ..text = '[ ${i++} ]', 430 ..text = '[ ${i++} ]',
431 new DivElement()..classes = const ['memberValue'] 431 new DivElement()..classes = ['memberValue']
432 ..children = [ 432 ..children = [
433 anyRef(_isolate, e, _instances, 433 anyRef(_isolate, e, _instances,
434 queue: _r.queue) 434 queue: _r.queue)
435 ] 435 ]
436 ]).toList() 436 ]).toList()
437 ] 437 ]
438 ] 438 ]
439 ]); 439 ]);
440 if (_instance.length != elements.length) { 440 if (_instance.length != elements.length) {
441 members.add(new DivElement()..classes = const ['memberItem'] 441 members.add(new DivElement()..classes = ['memberItem']
442 ..children = [ 442 ..children = [
443 new DivElement()..classes = const ['memberName'] 443 new DivElement()..classes = ['memberName']
444 ..text = '...', 444 ..text = '...',
445 new DivElement()..classes = const ['memberValue'] 445 new DivElement()..classes = ['memberValue']
446 ..text = '${_instance.length - elements.length} omitted elements' 446 ..text = '${_instance.length - elements.length} omitted elements'
447 ]); 447 ]);
448 } 448 }
449 } 449 }
450 450
451 if (_instance.associations != null && _instance.associations.isNotEmpty) { 451 if (_instance.associations != null && _instance.associations.isNotEmpty) {
452 final associations = _instance.associations.toList(); 452 final associations = _instance.associations.toList();
453 members.add(new DivElement()..classes = const ['memberItem'] 453 members.add(new DivElement()..classes = ['memberItem']
454 ..children = [ 454 ..children = [
455 new DivElement()..classes = const ['memberName'] 455 new DivElement()..classes = ['memberName']
456 ..text = 'associations (${_instance.length})', 456 ..text = 'associations (${_instance.length})',
457 new DivElement()..classes = const ['memberName'] 457 new DivElement()..classes = ['memberName']
458 ..children = [ 458 ..children = [
459 new CurlyBlockElement( 459 new CurlyBlockElement(
460 expanded: associations.length <= 100, 460 expanded: associations.length <= 100,
461 queue: _r.queue) 461 queue: _r.queue)
462 ..children = [ 462 ..children = [
463 new DivElement()..classes = const ['memberList'] 463 new DivElement()..classes = ['memberList']
464 ..children = associations.map((a) => 464 ..children = associations.map((a) =>
465 new DivElement()..classes = const ['memberItem'] 465 new DivElement()..classes = ['memberItem']
466 ..children = [ 466 ..children = [
467 new DivElement()..classes = const ['memberName'] 467 new DivElement()..classes = ['memberName']
468 ..children = [ 468 ..children = [
469 new SpanElement()..text = '[ ', 469 new SpanElement()..text = '[ ',
470 anyRef(_isolate, a.key, _instances, 470 anyRef(_isolate, a.key, _instances,
471 queue: _r.queue), 471 queue: _r.queue),
472 new SpanElement()..text = ' ]', 472 new SpanElement()..text = ' ]',
473 ], 473 ],
474 new DivElement()..classes = const ['memberValue'] 474 new DivElement()..classes = ['memberValue']
475 ..children = [ 475 ..children = [
476 anyRef(_isolate, a.value, _instances, 476 anyRef(_isolate, a.value, _instances,
477 queue: _r.queue) 477 queue: _r.queue)
478 ] 478 ]
479 ]).toList() 479 ]).toList()
480 ] 480 ]
481 ] 481 ]
482 ]); 482 ]);
483 if (_instance.length != associations.length) { 483 if (_instance.length != associations.length) {
484 members.add(new DivElement()..classes = const ['memberItem'] 484 members.add(new DivElement()..classes = ['memberItem']
485 ..children = [ 485 ..children = [
486 new DivElement()..classes = const ['memberName'] 486 new DivElement()..classes = ['memberName']
487 ..text = '...', 487 ..text = '...',
488 new DivElement()..classes = const ['memberValue'] 488 new DivElement()..classes = ['memberValue']
489 ..text = '${_instance.length - associations.length} ' 489 ..text = '${_instance.length - associations.length} '
490 'omitted elements' 490 'omitted elements'
491 ]); 491 ]);
492 } 492 }
493 } 493 }
494 494
495 if (_instance.typedElements != null && _instance.typedElements.isNotEmpty) { 495 if (_instance.typedElements != null && _instance.typedElements.isNotEmpty) {
496 final typedElements = _instance.typedElements.toList(); 496 final typedElements = _instance.typedElements.toList();
497 int i = 0; 497 int i = 0;
498 members.add(new DivElement()..classes = const ['memberItem'] 498 members.add(new DivElement()..classes = ['memberItem']
499 ..children = [ 499 ..children = [
500 new DivElement()..classes = const ['memberName'] 500 new DivElement()..classes = ['memberName']
501 ..text = 'elements (${_instance.length})', 501 ..text = 'elements (${_instance.length})',
502 new DivElement()..classes = const ['memberValue'] 502 new DivElement()..classes = ['memberValue']
503 ..children = [ 503 ..children = [
504 new CurlyBlockElement( 504 new CurlyBlockElement(
505 expanded: typedElements.length <= 100, 505 expanded: typedElements.length <= 100,
506 queue: _r.queue) 506 queue: _r.queue)
507 ..children = [ 507 ..children = [
508 new DivElement()..classes = const ['memberList'] 508 new DivElement()..classes = ['memberList']
509 ..children = typedElements.map((e) => 509 ..children = typedElements.map((e) =>
510 new DivElement()..classes = const ['memberItem'] 510 new DivElement()..classes = ['memberItem']
511 ..children = [ 511 ..children = [
512 new DivElement()..classes = const ['memberName'] 512 new DivElement()..classes = ['memberName']
513 ..text = '[ ${i++} ]', 513 ..text = '[ ${i++} ]',
514 new DivElement()..classes = const ['memberValue'] 514 new DivElement()..classes = ['memberValue']
515 ..text = '$e' 515 ..text = '$e'
516 ]).toList() 516 ]).toList()
517 ] 517 ]
518 ] 518 ]
519 ]); 519 ]);
520 if (_instance.length != typedElements.length) { 520 if (_instance.length != typedElements.length) {
521 members.add(new DivElement()..classes = const ['memberItem'] 521 members.add(new DivElement()..classes = ['memberItem']
522 ..children = [ 522 ..children = [
523 new DivElement()..classes = const ['memberName'] 523 new DivElement()..classes = ['memberName']
524 ..text = '...', 524 ..text = '...',
525 new DivElement()..classes = const ['memberValue'] 525 new DivElement()..classes = ['memberValue']
526 ..text = '${_instance.length - typedElements.length} ' 526 ..text = '${_instance.length - typedElements.length} '
527 'omitted elements' 527 'omitted elements'
528 ]); 528 ]);
529 } 529 }
530 } 530 }
531 531
532 if (_instance.kind == M.InstanceKind.regExp) { 532 if (_instance.kind == M.InstanceKind.regExp) {
533 members.addAll([ 533 members.addAll([
534 new DivElement()..classes = const ['memberItem'] 534 new DivElement()..classes = ['memberItem']
535 ..children = [ 535 ..children = [
536 new DivElement()..classes = const ['memberName'] 536 new DivElement()..classes = ['memberName']
537 ..text = 'pattern', 537 ..text = 'pattern',
538 new DivElement()..classes = const ['memberValue'] 538 new DivElement()..classes = ['memberValue']
539 ..children = [ 539 ..children = [
540 anyRef(_isolate, _instance.pattern, _instances, queue: _r.queue) 540 anyRef(_isolate, _instance.pattern, _instances, queue: _r.queue)
541 ] 541 ]
542 ], 542 ],
543 new DivElement()..classes = const ['memberItem'] 543 new DivElement()..classes = ['memberItem']
544 ..children = [ 544 ..children = [
545 new DivElement()..classes = const ['memberName'] 545 new DivElement()..classes = ['memberName']
546 ..text = 'isCaseSensitive', 546 ..text = 'isCaseSensitive',
547 new DivElement()..classes = const ['memberValue'] 547 new DivElement()..classes = ['memberValue']
548 ..text = _instance.isCaseSensitive ? 'yes' : 'no' 548 ..text = _instance.isCaseSensitive ? 'yes' : 'no'
549 ], 549 ],
550 new DivElement()..classes = const ['memberItem'] 550 new DivElement()..classes = ['memberItem']
551 ..children = [ 551 ..children = [
552 new DivElement()..classes = const ['memberName'] 552 new DivElement()..classes = ['memberName']
553 ..text = 'isMultiLine', 553 ..text = 'isMultiLine',
554 new DivElement()..classes = const ['memberValue'] 554 new DivElement()..classes = ['memberValue']
555 ..text = _instance.isMultiLine ? 'yes' : 'no' 555 ..text = _instance.isMultiLine ? 'yes' : 'no'
556 ], 556 ],
557 new DivElement()..classes = const ['memberItem'] 557 new DivElement()..classes = ['memberItem']
558 ..children = [ 558 ..children = [
559 new DivElement()..classes = const ['memberName'] 559 new DivElement()..classes = ['memberName']
560 ..text = 'oneByteFunction', 560 ..text = 'oneByteFunction',
561 new DivElement()..classes = const ['memberValue'] 561 new DivElement()..classes = ['memberValue']
562 ..children = [ 562 ..children = [
563 new FunctionRefElement(_isolate, _instance.oneByteFunction, 563 new FunctionRefElement(_isolate, _instance.oneByteFunction,
564 queue: _r.queue) 564 queue: _r.queue)
565 ] 565 ]
566 ], 566 ],
567 new DivElement()..classes = const ['memberItem'] 567 new DivElement()..classes = ['memberItem']
568 ..children = [ 568 ..children = [
569 new DivElement()..classes = const ['memberName'] 569 new DivElement()..classes = ['memberName']
570 ..text = 'twoByteFunction', 570 ..text = 'twoByteFunction',
571 new DivElement()..classes = const ['memberValue'] 571 new DivElement()..classes = ['memberValue']
572 ..children = [ 572 ..children = [
573 new FunctionRefElement(_isolate, _instance.twoByteFunction, 573 new FunctionRefElement(_isolate, _instance.twoByteFunction,
574 queue: _r.queue) 574 queue: _r.queue)
575 ] 575 ]
576 ], 576 ],
577 new DivElement()..classes = const ['memberItem'] 577 new DivElement()..classes = ['memberItem']
578 ..children = [ 578 ..children = [
579 new DivElement()..classes = const ['memberName'] 579 new DivElement()..classes = ['memberName']
580 ..text = 'externalOneByteFunction', 580 ..text = 'externalOneByteFunction',
581 new DivElement()..classes = const ['memberValue'] 581 new DivElement()..classes = ['memberValue']
582 ..children = [ 582 ..children = [
583 new FunctionRefElement(_isolate, 583 new FunctionRefElement(_isolate,
584 _instance.externalOneByteFunction, 584 _instance.externalOneByteFunction,
585 queue: _r.queue) 585 queue: _r.queue)
586 ] 586 ]
587 ], 587 ],
588 new DivElement()..classes = const ['memberItem'] 588 new DivElement()..classes = ['memberItem']
589 ..children = [ 589 ..children = [
590 new DivElement()..classes = const ['memberName'] 590 new DivElement()..classes = ['memberName']
591 ..text = 'externalTwoByteFunction', 591 ..text = 'externalTwoByteFunction',
592 new DivElement()..classes = const ['memberValue'] 592 new DivElement()..classes = ['memberValue']
593 ..children = [ 593 ..children = [
594 new FunctionRefElement(_isolate, 594 new FunctionRefElement(_isolate,
595 _instance.externalTwoByteFunction, 595 _instance.externalTwoByteFunction,
596 queue: _r.queue) 596 queue: _r.queue)
597 ] 597 ]
598 ], 598 ],
599 new DivElement()..classes = const ['memberItem'] 599 new DivElement()..classes = ['memberItem']
600 ..children = [ 600 ..children = [
601 new DivElement()..classes = const ['memberName'] 601 new DivElement()..classes = ['memberName']
602 ..text = 'oneByteBytecode', 602 ..text = 'oneByteBytecode',
603 new DivElement()..classes = const ['memberValue'] 603 new DivElement()..classes = ['memberValue']
604 ..children = [ 604 ..children = [
605 new InstanceRefElement(_isolate, _instance.oneByteBytecode, 605 new InstanceRefElement(_isolate, _instance.oneByteBytecode,
606 _instances, queue: _r.queue) 606 _instances, queue: _r.queue)
607 ] 607 ]
608 ], 608 ],
609 new DivElement()..classes = const ['memberItem'] 609 new DivElement()..classes = ['memberItem']
610 ..children = [ 610 ..children = [
611 new DivElement()..classes = const ['memberName'] 611 new DivElement()..classes = ['memberName']
612 ..text = 'twoByteBytecode', 612 ..text = 'twoByteBytecode',
613 new DivElement()..classes = const ['memberValue'] 613 new DivElement()..classes = ['memberValue']
614 ..children = [ 614 ..children = [
615 new InstanceRefElement(_isolate, _instance.twoByteBytecode, 615 new InstanceRefElement(_isolate, _instance.twoByteBytecode,
616 _instances, queue: _r.queue) 616 _instances, queue: _r.queue)
617 ] 617 ]
618 ] 618 ]
619 ]); 619 ]);
620 } 620 }
621 621
622 if (_instance.kind == M.InstanceKind.mirrorReference) { 622 if (_instance.kind == M.InstanceKind.mirrorReference) {
623 members.add(new DivElement()..classes = const ['memberItem'] 623 members.add(new DivElement()..classes = ['memberItem']
624 ..children = [ 624 ..children = [
625 new DivElement()..classes = const ['memberName'] 625 new DivElement()..classes = ['memberName']
626 ..text = 'referent', 626 ..text = 'referent',
627 new DivElement()..classes = const ['memberValue'] 627 new DivElement()..classes = ['memberValue']
628 ..children = [ 628 ..children = [
629 new ContextRefElement(_isolate, _instance.referent, 629 new ContextRefElement(_isolate, _instance.referent,
630 queue: _r.queue) 630 queue: _r.queue)
631 ] 631 ]
632 ]); 632 ]);
633 } 633 }
634 if (_instance.kind == M.InstanceKind.weakProperty) { 634 if (_instance.kind == M.InstanceKind.weakProperty) {
635 members.addAll([ 635 members.addAll([
636 new DivElement()..classes = const ['memberItem'] 636 new DivElement()..classes = ['memberItem']
637 ..children = [ 637 ..children = [
638 new DivElement()..classes = const ['memberName'] 638 new DivElement()..classes = ['memberName']
639 ..text = 'key', 639 ..text = 'key',
640 new DivElement()..classes = const ['memberValue'] 640 new DivElement()..classes = ['memberValue']
641 ..children = [ 641 ..children = [
642 new InstanceRefElement(_isolate, _instance.key, _instances, 642 new InstanceRefElement(_isolate, _instance.key, _instances,
643 queue: _r.queue), 643 queue: _r.queue),
644 ] 644 ]
645 ], 645 ],
646 new DivElement()..classes = const ['memberItem'] 646 new DivElement()..classes = ['memberItem']
647 ..children = [ 647 ..children = [
648 new DivElement()..classes = const ['memberName'] 648 new DivElement()..classes = ['memberName']
649 ..text = 'value', 649 ..text = 'value',
650 new DivElement()..classes = const ['memberValue'] 650 new DivElement()..classes = ['memberValue']
651 ..children = [ 651 ..children = [
652 new InstanceRefElement(_isolate, _instance.value, _instances, 652 new InstanceRefElement(_isolate, _instance.value, _instances,
653 queue: _r.queue), 653 queue: _r.queue),
654 ] 654 ]
655 ] 655 ]
656 ]); 656 ]);
657 } 657 }
658 return members; 658 return members;
659 } 659 }
660 660
(...skipping 23 matching lines...) Expand all
684 684
685 Future _toggleBreakpoint() async { 685 Future _toggleBreakpoint() async {
686 if (_instance.activationBreakpoint == null) { 686 if (_instance.activationBreakpoint == null) {
687 await _breakpoints.addOnActivation(_isolate, _instance); 687 await _breakpoints.addOnActivation(_isolate, _instance);
688 } else { 688 } else {
689 await _breakpoints.remove(_isolate, _instance.activationBreakpoint); 689 await _breakpoints.remove(_isolate, _instance.activationBreakpoint);
690 } 690 }
691 await _refresh(); 691 await _refresh();
692 } 692 }
693 } 693 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698