| 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 ccc9054597b92b533b9fa16d6c53f5a9fdc20d47..2452e8b7f0f6a5663fd98a83c46e9343093b01a6 100644
|
| --- a/runtime/observatory/lib/src/service/object.dart
|
| +++ b/runtime/observatory/lib/src/service/object.dart
|
| @@ -4390,11 +4390,13 @@ class ServiceMetric extends ServiceObject implements M.Metric {
|
| }
|
|
|
| class Frame extends ServiceObject implements M.Frame {
|
| + M.FrameKind kind = M.FrameKind.regular;
|
| int index;
|
| ServiceFunction function;
|
| SourceLocation location;
|
| Code code;
|
| List<ServiceMap> variables = <ServiceMap>[];
|
| + String marker;
|
|
|
| Frame._empty(ServiceObject owner) : super._empty(owner);
|
|
|
| @@ -4402,14 +4404,29 @@ class Frame extends ServiceObject implements M.Frame {
|
| assert(!mapIsRef);
|
| _loaded = true;
|
| _upgradeCollection(map, owner);
|
| + this.kind = _fromString(map['kind']);
|
| + this.marker = map['marker'];
|
| this.index = map['index'];
|
| this.function = map['function'];
|
| this.location = map['location'];
|
| this.code = map['code'];
|
| - this.variables = map['vars'];
|
| + this.variables = map['vars'] ?? [];
|
| }
|
|
|
| - String toString() => "Frame(${function.qualifiedName} $location)";
|
| + M.FrameKind _fromString(String frameKind) {
|
| + if (frameKind == null) {
|
| + return M.FrameKind.regular;
|
| + }
|
| + switch (frameKind) {
|
| + case 'kRegular': return M.FrameKind.regular;
|
| + case 'kAsyncCausal': return M.FrameKind.asyncCausal;
|
| + case 'kAsyncSuspensionMarker': return M.FrameKind.asyncSuspensionMarker;
|
| + default:
|
| + throw new UnsupportedError('Unknown FrameKind: $frameKind');
|
| + }
|
| + }
|
| +
|
| + String toString() => "Frame([$kind] ${function.qualifiedName} $location)";
|
| }
|
|
|
| class ServiceMessage extends ServiceObject {
|
|
|