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

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

Issue 1157003003: Add TypedData instance kinds. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 75c09182de503bbd483c0b534dea51e712d0472b..84460bb4ca900616a628e577d603c50388280265 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -117,6 +117,7 @@ abstract class ServiceObject extends Observable {
bool get isInt => false;
bool get isList => false;
bool get isMap => false;
+ bool get isTypedData => false;
bool get isMirrorReference => false;
bool get isWeakProperty => false;
bool get isClosure => false;
@@ -1854,13 +1855,14 @@ class Instance extends ServiceObject {
@observable ServiceFunction function; // If a closure.
@observable Context context; // If a closure.
@observable String name; // If a Type.
- @observable int length; // If a List or Map.
+ @observable int length; // If a List, Map or TypedData.
@observable var typeClass;
@observable var fields;
@observable var nativeFields;
@observable var elements; // If a List.
@observable var associations; // If a Map.
+ @observable var typedElements; // If a TypedData.
@observable var referent; // If a MirrorReference.
@observable Instance key; // If a WeakProperty.
@observable Instance value; // If a WeakProperty.
@@ -1876,6 +1878,7 @@ class Instance extends ServiceObject {
bool get isInt => kind == 'Int';
bool get isList => kind == 'List';
bool get isMap => kind == 'Map';
+ bool get isTypedData => kind == 'TypedData';
bool get isMirrorReference => kind == 'MirrorReference';
bool get isWeakProperty => kind == 'WeakProperty';
bool get isClosure => kind == 'Closure';
@@ -1909,6 +1912,41 @@ class Instance extends ServiceObject {
fields = map['fields'];
elements = map['elements'];
associations = map['associations'];
+ if (map['bytes'] != null) {
+ var bytes = new Uint8List.fromList(map['bytes']);
+ switch (map['elementType']) {
+ case "Uint8ClampedArray":
+ typedElements = bytes.buffer.asUint8ClampedList(); break;
+ case "Uint8Array":
+ typedElements = bytes.buffer.asUint8List(); break;
+ case "Uint16Array":
+ typedElements = bytes.buffer.asUint16List(); break;
+ case "Uint32Array":
+ typedElements = bytes.buffer.asUint32List(); break;
+ case "Uint64Array":
+ typedElements = bytes.buffer.asUint64List(); break;
+ case "Int8Array":
+ typedElements = bytes.buffer.asInt8List(); break;
+ case "Int16Array":
+ typedElements = bytes.buffer.asInt16List(); break;
+ case "Int32Array":
+ typedElements = bytes.buffer.asInt32List(); break;
+ case "Int64Array":
+ typedElements = bytes.buffer.asInt64List(); break;
+ case "Float32Array":
+ typedElements = bytes.buffer.asFloat32List(); break;
+ case "Float64Array":
+ typedElements = bytes.buffer.asFloat64List(); break;
+ case "Int32x4Array":
+ typedElements = bytes.buffer.asInt32x4List(); break;
+ case "Float32x4Array":
+ typedElements = bytes.buffer.asFloat32x4List(); break;
+ case "Float64x2Array":
+ typedElements = bytes.buffer.asFloat64x2List(); break;
+ default:
+ typedElements = null;
+ }
+ }
typeClass = map['typeClass'];
referent = map['mirrorReferent'];
key = map['propertyKey'];

Powered by Google App Engine
This is Rietveld 408576698