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

Side by Side Diff: runtime/bin/vmservice/observatory/lib/src/elements/service_ref.dart

Issue 547703002: Rework how types work in the VM Service. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 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 | Annotate | Revision Log
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 service_ref_element; 5 library service_ref_element;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 import 'package:logging/logging.dart'; 8 import 'package:logging/logging.dart';
9 import 'package:polymer/polymer.dart'; 9 import 'package:polymer/polymer.dart';
10 import 'observatory_element.dart'; 10 import 'observatory_element.dart';
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 } 57 }
58 } 58 }
59 59
60 60
61 @CustomTag('any-service-ref') 61 @CustomTag('any-service-ref')
62 class AnyServiceRefElement extends ObservatoryElement { 62 class AnyServiceRefElement extends ObservatoryElement {
63 @published ServiceObject ref; 63 @published ServiceObject ref;
64 AnyServiceRefElement.created() : super.created(); 64 AnyServiceRefElement.created() : super.created();
65 65
66 Element _constructElementForRef() { 66 Element _constructElementForRef() {
67 var type = ref.vmType; 67 var type = ref.type;
68 switch (type) { 68 switch (type) {
69 case 'Class': 69 case 'Class':
70 ServiceRefElement element = new Element.tag('class-ref'); 70 ServiceRefElement element = new Element.tag('class-ref');
71 element.ref = ref; 71 element.ref = ref;
72 return element; 72 return element;
73 case 'Code': 73 case 'Code':
74 ServiceRefElement element = new Element.tag('code-ref'); 74 ServiceRefElement element = new Element.tag('code-ref');
75 element.ref = ref; 75 element.ref = ref;
76 return element; 76 return element;
77 case 'Context': 77 case 'Context':
78 ServiceRefElement element = new Element.tag('context-ref'); 78 ServiceRefElement element = new Element.tag('context-ref');
79 element.ref = ref; 79 element.ref = ref;
80 return element; 80 return element;
81 case 'Error': 81 case 'Error':
82 ServiceRefElement element = new Element.tag('error-ref'); 82 ServiceRefElement element = new Element.tag('error-ref');
83 element.ref = ref; 83 element.ref = ref;
84 return element; 84 return element;
85 case 'Field': 85 case 'Field':
86 ServiceRefElement element = new Element.tag('field-ref'); 86 ServiceRefElement element = new Element.tag('field-ref');
87 element.ref = ref; 87 element.ref = ref;
88 return element; 88 return element;
89 case 'Function': 89 case 'Function':
90 ServiceRefElement element = new Element.tag('function-ref'); 90 ServiceRefElement element = new Element.tag('function-ref');
91 element.ref = ref; 91 element.ref = ref;
92 return element; 92 return element;
93 case 'Library': 93 case 'Library':
94 ServiceRefElement element = new Element.tag('library-ref'); 94 ServiceRefElement element = new Element.tag('library-ref');
95 element.ref = ref; 95 element.ref = ref;
96 return element; 96 return element;
97 case 'Array':
98 case 'Bigint':
99 case 'Bool':
100 case 'Closure':
101 case 'Double':
102 case 'GrowableObjectArray':
103 case 'Instance':
104 case 'Mint':
105 case 'MirrorReference':
106 case 'Null':
107 case 'Sentinel': // TODO(rmacnak): Separate this out.
108 case 'Smi':
109 case 'String':
110 case 'Type':
111 case 'WeakProperty':
112 ServiceRefElement element = new Element.tag('instance-ref');
113 element.ref = ref;
114 return element;
115 default: 97 default:
116 SpanElement element = new Element.tag('span'); 98 if (ref.isInstance ||
117 element.text = "<<Unknown service ref: $ref>>"; 99 ref.isSentinel) { // TODO(rmacnak): Separate this out.
118 return element; 100 ServiceRefElement element = new Element.tag('instance-ref');
101 element.ref = ref;
102 return element;
103 } else {
104 SpanElement element = new Element.tag('span');
105 element.text = "<<Unknown service ref: $ref>>";
106 return element;
107 }
119 } 108 }
120 } 109 }
121 110
122 refChanged(oldValue) { 111 refChanged(oldValue) {
123 // Remove the current view. 112 // Remove the current view.
124 children.clear(); 113 children.clear();
125 if (ref == null) { 114 if (ref == null) {
126 Logger.root.info('Viewing null object.'); 115 Logger.root.info('Viewing null object.');
127 return; 116 return;
128 } 117 }
129 var type = ref.vmType; 118 var type = ref.vmType;
130 var element = _constructElementForRef(); 119 var element = _constructElementForRef();
131 if (element == null) { 120 if (element == null) {
132 Logger.root.info('Unable to find a ref element for \'${type}\''); 121 Logger.root.info('Unable to find a ref element for \'${type}\'');
133 return; 122 return;
134 } 123 }
135 children.add(element); 124 children.add(element);
136 Logger.root.info('Viewing object of \'${type}\''); 125 Logger.root.info('Viewing object of \'${type}\'');
137 } 126 }
138 } 127 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698