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

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

Issue 1162133002: Introduce Instance.kind. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: regis feedback Created 5 years, 7 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/observatory/lib/src/service/object.dart
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
index 746758d89a546ead222d09fe336e7769a53a6c8e..7e1f52db6eba0c6225ed9b54c13e63ac4fc450b7 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -101,58 +101,24 @@ abstract class ServiceObject extends Observable {
@reflectable String get vmType => _vmType;
String _vmType;
- static bool _isInstanceType(String type) {
- switch (type) {
- case 'BoundedType':
- case 'Instance':
- case 'List':
- case 'String':
- case 'Type':
- case 'TypeParameter':
- case 'TypeRef':
- case 'bool':
- case 'double':
- case 'int':
- case 'null':
- return true;
- default:
- return false;
- }
- }
-
- static bool _isTypeType(String type) {
- switch (type) {
- case 'BoundedType':
- case 'Type':
- case 'TypeParameter':
- case 'TypeRef':
- return true;
- default:
- return false;
- }
- }
-
- bool get isAbstractType => _isTypeType(type);
- bool get isBool => type == 'bool';
bool get isContext => type == 'Context';
- bool get isDouble => type == 'double';
bool get isError => type == 'Error';
- bool get isInstance => _isInstanceType(type);
- bool get isInt => type == 'int';
- bool get isList => type == 'List';
- bool get isNull => type == 'null';
+ bool get isInstance => type == 'Instance';
bool get isSentinel => type == 'Sentinel';
- bool get isString => type == 'String';
bool get isMessage => type == 'Message';
// Kinds of Instance.
- bool get isMirrorReference => vmType == 'MirrorReference';
- bool get isWeakProperty => vmType == 'WeakProperty';
+ bool get isAbstractType => false;
+ bool get isNull => false;
+ bool get isBool => false;
+ bool get isDouble => false;
+ bool get isString => false;
+ bool get isInt => false;
+ bool get isList => false;
+ bool get isMirrorReference => false;
+ bool get isWeakProperty => false;
bool get isClosure => false;
- bool get isPlainInstance {
- return (type == 'Instance' &&
- !isMirrorReference && !isWeakProperty && !isClosure);
- }
+ bool get isPlainInstance => false;
/// Has this object been fully loaded?
bool get loaded => _loaded;
@@ -184,7 +150,7 @@ abstract class ServiceObject extends Observable {
}
assert(_isServiceMap(map));
var type = _stripRef(map['type']);
- var vmType = map['_vmType'] != null ? _stripRef(map['_vmType']) : type;
+ var vmType = map['_vmType'] != null ? map['_vmType'] : type;
var obj = null;
assert(type != 'VM');
switch (type) {
@@ -243,11 +209,11 @@ abstract class ServiceObject extends Observable {
case 'Socket':
obj = new Socket._empty(owner);
break;
+ case 'Instance':
+ case 'Sentinel': // TODO(rmacnak): Separate this out.
+ obj = new Instance._empty(owner);
+ break;
default:
- if (_isInstanceType(type) ||
- type == 'Sentinel') { // TODO(rmacnak): Separate this out.
- obj = new Instance._empty(owner);
- }
break;
}
if (obj == null) {
@@ -1809,6 +1775,7 @@ class Class extends ServiceObject with Coverage {
}
class Instance extends ServiceObject {
+ @observable String kind;
@observable Class clazz;
@observable int size;
@observable int retainedSize;
@@ -1823,12 +1790,27 @@ class Instance extends ServiceObject {
@observable var fields;
@observable var nativeFields;
@observable var elements;
- @observable var userName;
@observable var referent; // If a MirrorReference.
@observable Instance key; // If a WeakProperty.
@observable Instance value; // If a WeakProperty.
- bool get isClosure => function != null;
+ bool get isAbstractType {
+ return (kind == 'Type' || kind == 'TypeRef' ||
+ kind == 'TypeParameter' || kind == 'BoundedType');
+ }
+ bool get isNull => kind == 'Null';
+ bool get isBool => kind == 'Bool';
+ bool get isDouble => kind == 'Double';
+ bool get isString => kind == 'String';
+ bool get isInt => kind == 'Int';
+ bool get isList => kind == 'List';
+ bool get isMirrorReference => kind == 'MirrorReference';
+ bool get isWeakProperty => kind == 'WeakProperty';
+ bool get isClosure => kind == 'Closure';
+
+ // TODO(turnidge): Is this properly backwards compatible when new
+ // instance kinds are added?
+ bool get isPlainInstance => kind == 'PlainInstance';
Instance._empty(ServiceObjectOwner owner) : super._empty(owner);
@@ -1836,13 +1818,14 @@ class Instance extends ServiceObject {
// Extract full properties.
_upgradeCollection(map, isolate);
+ kind = map['kind'];
clazz = map['class'];
size = map['size'];
valueAsString = map['valueAsString'];
// Coerce absence to false.
valueAsStringIsTruncated = map['valueAsStringIsTruncated'] == true;
- function = map['function'];
- context = map['context'];
+ function = map['closureFunction'];
+ context = map['closureContext'];
name = map['name'];
length = map['length'];
@@ -1853,11 +1836,10 @@ class Instance extends ServiceObject {
nativeFields = map['_nativeFields'];
fields = map['fields'];
elements = map['elements'];
- typeClass = map['type_class'];
- userName = map['user_name'];
- referent = map['referent'];
- key = map['key'];
- value = map['value'];
+ typeClass = map['typeClass'];
+ referent = map['mirrorReferent'];
+ key = map['propertyKey'];
+ value = map['propertyValue'];
// We are fully loaded.
_loaded = true;
« no previous file with comments | « runtime/observatory/lib/src/elements/service_ref.dart ('k') | runtime/observatory/tests/service/get_object_rpc_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698