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

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

Issue 2012333002: Make the object store visible in Observatory. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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 b0be812dc5b88e1141fcadebd860afe5a48b0ae2..bcaf2f8a779d2aac634b2709a2f6e840a8097b26 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -1636,6 +1636,14 @@ class Isolate extends ServiceObjectOwner {
return invokeRpc('getStack', {});
}
+ Future<ObjectStore> getObjectStore() {
+ return invokeRpc('_getObjectStore', {}).then((map) {
+ ObjectStore objectStore = new ObjectStore._empty(this);
+ objectStore._update(map, false);
+ return objectStore;
+ });
+ }
+
Future<ServiceObject> _eval(ServiceObject target,
String expression) {
Map params = {
@@ -1744,6 +1752,36 @@ class Isolate extends ServiceObjectOwner {
String toString() => "Isolate($name)";
}
+
+class NamedField {
+ final String name;
+ final ServiceObject value;
+ NamedField(this.name, this.value);
+}
+
+
+class ObjectStore extends ServiceObject {
+ @observable List<NamedField> fields = new List<NamedField>();
+
+ ObjectStore._empty(ServiceObjectOwner owner) : super._empty(owner);
+
+ void _update(ObservableMap map, bool mapIsRef) {
+ // Extract full properties.
+ _upgradeCollection(map, isolate);
+
+ if (mapIsRef) {
+ return;
+ }
+
+ fields.clear();
+ map['fields'].forEach((key, value) {
+ fields.add(new NamedField(key, value));
+ });
+ _loaded = true;
+ }
+}
+
+
/// A [ServiceObject] which implements [ObservableMap].
class ServiceMap extends ServiceObject implements ObservableMap {
final ObservableMap _map = new ObservableMap();
« no previous file with comments | « runtime/observatory/lib/src/elements/objectstore_view.html ('k') | runtime/observatory/observatory_sources.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698