| Index: runtime/bin/vmservice/client/lib/src/elements/instance_ref.dart
|
| diff --git a/runtime/bin/vmservice/client/lib/src/elements/instance_ref.dart b/runtime/bin/vmservice/client/lib/src/elements/instance_ref.dart
|
| index 255f041725ed20c05e4852b4663ff2bd13e77cf2..a25647223a77b27a148e21f6fbc893f8f04d6fc0 100644
|
| --- a/runtime/bin/vmservice/client/lib/src/elements/instance_ref.dart
|
| +++ b/runtime/bin/vmservice/client/lib/src/elements/instance_ref.dart
|
| @@ -19,6 +19,25 @@ class InstanceRefElement extends ServiceRefElement {
|
| return ref['preview'];
|
| }
|
|
|
| + String get hoverText {
|
| + if (ref != null) {
|
| + if (ref['type'] == '@Null') {
|
| + if (ref['id'] == 'objects/optimized-out') {
|
| + return 'This object is no longer needed and has been removed by the optimizing compiler.';
|
| + } else if (ref['id'] == 'objects/collected') {
|
| + return 'This object has been reclaimed by the garbage collector.';
|
| + } else if (ref['id'] == 'objects/expired') {
|
| + return 'The handle to this object has expired. Consider refreshing the page.';
|
| + } else if (ref['id'] == 'objects/not-initialized') {
|
| + return 'This object will be initialized once it is accessed by the program.';
|
| + } else if (ref['id'] == 'objects/being-initialized') {
|
| + return 'This object is currently being initialized.';
|
| + }
|
| + }
|
| + }
|
| + return '';
|
| + }
|
| +
|
| // TODO(turnidge): This is here to workaround vm/dart2js differences.
|
| dynamic expander() {
|
| return expandEvent;
|
| @@ -28,6 +47,17 @@ class InstanceRefElement extends ServiceRefElement {
|
| print("Calling expandEvent");
|
| if (expand) {
|
| isolate.getMap(objectId).then((map) {
|
| + if (map['type'] == 'Null') {
|
| + // The object is no longer available. For example, the
|
| + // object id may have expired or the object may have been
|
| + // collected by the gc.
|
| + map['type'] = '@Null';
|
| + ref = map;
|
| + } else {
|
| + ref['fields'] = map['fields'];
|
| + ref['elements'] = map['elements'];
|
| + ref['length'] = map['length'];
|
| + }
|
| ref['fields'] = map['fields'];
|
| ref['elements'] = map['elements'];
|
| ref['length'] = map['length'];
|
|
|