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

Unified Diff: runtime/bin/vmservice/observatory/lib/src/service/object.dart

Issue 561053003: Give fields a model class in the service library. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: build 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 side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/observatory/lib/src/service/object.dart
diff --git a/runtime/bin/vmservice/observatory/lib/src/service/object.dart b/runtime/bin/vmservice/observatory/lib/src/service/object.dart
index 6e75091b97dd27d686067a99d0aead3a03882921..9a1e80cecb30dbc84e76a42b38b51ca2198dd8f0 100644
--- a/runtime/bin/vmservice/observatory/lib/src/service/object.dart
+++ b/runtime/bin/vmservice/observatory/lib/src/service/object.dart
@@ -142,6 +142,9 @@ abstract class ServiceObject extends Observable {
case 'Error':
obj = new DartError._empty(owner);
break;
+ case 'Field':
+ obj = new Field._empty(owner);
+ break;
case 'Function':
obj = new ServiceFunction._empty(owner);
break;
@@ -1331,7 +1334,7 @@ class Library extends ServiceObject with Coverage {
@reflectable final imports = new ObservableList<Library>();
@reflectable final scripts = new ObservableList<Script>();
@reflectable final classes = new ObservableList<Class>();
- @reflectable final variables = new ObservableList<ServiceMap>();
+ @reflectable final variables = new ObservableList<Field>();
@reflectable final functions = new ObservableList<ServiceFunction>();
bool get canCache => true;
@@ -1432,7 +1435,7 @@ class Class extends ServiceObject with Coverage {
bool get hasNoAllocations => newSpace.empty && oldSpace.empty;
- @reflectable final fields = new ObservableList<ServiceMap>();
+ @reflectable final fields = new ObservableList<Field>();
@reflectable final functions = new ObservableList<ServiceFunction>();
@observable Class superclass;
@@ -1716,6 +1719,55 @@ class ServiceFunction extends ServiceObject with Coverage {
}
}
+
+class Field extends ServiceObject {
+ @observable var /* Library or Class */ owner;
+ @observable Instance declaredType;
+ @observable bool isStatic;
+ @observable bool isFinal;
+ @observable bool isConst;
+ @observable Instance value;
+ @observable String name;
+ @observable String vmName;
+
+ @observable bool guardNullable;
+ @observable String guardClass;
+ @observable String guardLength;
+ @observable Script script;
+ @observable int tokenPos;
+
+ Field._empty(ServiceObjectOwner owner) : super._empty(owner);
+
+ void _update(ObservableMap map, bool mapIsRef) {
+ // Extract full properties.
+ _upgradeCollection(map, isolate);
+
+ name = map['name'];
+ vmName = (map.containsKey('vmName') ? map['vmName'] : name);
+ owner = map['owner'];
+ declaredType = map['declaredType'];
+ isStatic = map['static'];
+ isFinal = map['final'];
+ isConst = map['const'];
+ value = map['value'];
+
+ if (mapIsRef) {
+ return;
+ }
+
+ guardNullable = map['guardNullable'];
+ guardClass = map['guardClass'];
+ guardLength = map['guardLength'];
+ script = map['script'];
+ tokenPos = map['tokenPos'];
+
+ _loaded = true;
+ }
+
+ String toString() => 'Field(${owner.name}.$name)';
+}
+
+
class ScriptLine extends Observable {
final Script script;
final int line;

Powered by Google App Engine
This is Rietveld 408576698