Chromium Code Reviews| 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..04f846c7f3cd0cd7e7265d9272b44f0cc3dcfdbd 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; |
|
turnidge
2014/09/11 16:48:38
var -> ServiceObject?
Can you use types instead o
rmacnak
2014/09/11 17:25:59
It's better to use dynamic for a union type; other
|
| + @observable var declaredType; |
| + @observable bool isStatic; |
| + @observable bool isFinal; |
| + @observable bool isConst; |
| + @observable var value; |
| + @observable var name; |
| + @observable var vmName; |
| + |
| + @observable var guardNullable; |
| + @observable var guardClass; |
| + @observable var guardLength; |
| + @observable var script; |
| + @observable var 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; |