| 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 78b67659cb2d5cb5c10f6de89740e658d846127e..26535ecc7ceb38dff7b05b674715ca713d730973 100644
|
| --- a/runtime/observatory/lib/src/service/object.dart
|
| +++ b/runtime/observatory/lib/src/service/object.dart
|
| @@ -389,6 +389,9 @@ abstract class HeapObject extends ServiceObject {
|
| clazz = map['class'];
|
| }
|
|
|
| + // Load the full class object.
|
| + clazz?.load();
|
| +
|
| if (mapIsRef) {
|
| return;
|
| }
|
| @@ -2041,6 +2044,10 @@ class Library extends HeapObject {
|
| bool get canCache => true;
|
| bool get immutable => false;
|
|
|
| + bool isDart(String libraryName) {
|
| + return uri == 'dart:$libraryName';
|
| + }
|
| +
|
| Library._empty(ServiceObjectOwner owner) : super._empty(owner);
|
|
|
| void _update(ObservableMap map, bool mapIsRef) {
|
| @@ -2325,6 +2332,25 @@ class Instance extends HeapObject {
|
| bool get isWeakProperty => kind == 'WeakProperty';
|
| bool get isClosure => kind == 'Closure';
|
| bool get isStackTrace => kind == 'StackTrace';
|
| + bool get isStackOverflowError {
|
| + if (clazz == null) {
|
| + return false;
|
| + }
|
| + if (clazz.library == null) {
|
| + return false;
|
| + }
|
| + return (clazz.name == 'StackOverflowError') && clazz.library.isDart('core');
|
| + }
|
| +
|
| + bool get isOutOfMemoryError {
|
| + if (clazz == null) {
|
| + return false;
|
| + }
|
| + if (clazz.library == null) {
|
| + return false;
|
| + }
|
| + return (clazz.name == 'OutOfMemoryError') && clazz.library.isDart('core');
|
| + }
|
|
|
| // TODO(turnidge): Is this properly backwards compatible when new
|
| // instance kinds are added?
|
|
|