| 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 cbaae26eff6135bc776a8fa7e941aeac4a4af569..656bf20dc713b20b8808c7ac05670360498aa9e4 100644
|
| --- a/runtime/observatory/lib/src/service/object.dart
|
| +++ b/runtime/observatory/lib/src/service/object.dart
|
| @@ -776,29 +776,28 @@ abstract class VM extends ServiceObjectOwner implements M.VM {
|
| return this;
|
| }
|
|
|
| - assert(type == 'Isolate');
|
| String id = map['id'];
|
| - if (!id.startsWith(_isolateIdPrefix)) {
|
| - // Currently the VM only supports upgrading Isolate ServiceObjects.
|
| - throw new UnimplementedError();
|
| - }
|
| -
|
| - // Check cache.
|
| - var isolate = _isolateCache[id];
|
| - if (isolate == null) {
|
| - // Add new isolate to the cache.
|
| - isolate = new ServiceObject._fromMap(this, map);
|
| - _isolateCache[id] = isolate;
|
| - _buildIsolateList();
|
| -
|
| - // Eagerly load the isolate.
|
| - isolate.load().catchError((e, stack) {
|
| - Logger.root.info('Eagerly loading an isolate failed: $e\n$stack');
|
| - });
|
| - } else {
|
| - isolate.update(map);
|
| + if ((id != null) && id.startsWith(_isolateIdPrefix)) {
|
| + // Check cache.
|
| + var isolate = _isolateCache[id];
|
| + if (isolate == null) {
|
| + // Add new isolate to the cache.
|
| + isolate = new ServiceObject._fromMap(this, map);
|
| + _isolateCache[id] = isolate;
|
| + _buildIsolateList();
|
| +
|
| + // Eagerly load the isolate.
|
| + isolate.load().catchError((e, stack) {
|
| + Logger.root.info('Eagerly loading an isolate failed: $e\n$stack');
|
| + });
|
| + } else {
|
| + isolate.update(map);
|
| + }
|
| + return isolate;
|
| }
|
| - return isolate;
|
| +
|
| + // Build the object from the map directly.
|
| + return new ServiceObject._fromMap(this, map);
|
| }
|
|
|
| // Note that this function does not reload the isolate if it found
|
| @@ -3009,7 +3008,7 @@ class ServiceFunction extends HeapObject implements M.Function {
|
| ServiceFunction._empty(ServiceObject owner) : super._empty(owner);
|
|
|
| void _update(Map map, bool mapIsRef) {
|
| - _upgradeCollection(map, isolate);
|
| + _upgradeCollection(map, owner);
|
| super._update(map, mapIsRef);
|
|
|
| name = map['name'];
|
|
|