Index: runtime/observatory/lib/src/cpu_profile/cpu_profile.dart |
diff --git a/runtime/observatory/lib/src/cpu_profile/cpu_profile.dart b/runtime/observatory/lib/src/cpu_profile/cpu_profile.dart |
index c71a41ed77b47492aaec4acb0b287e8e30bbc68a..d3e0252d10cd1d23a640242f1edc3c3573940148 100644 |
--- a/runtime/observatory/lib/src/cpu_profile/cpu_profile.dart |
+++ b/runtime/observatory/lib/src/cpu_profile/cpu_profile.dart |
@@ -370,15 +370,22 @@ class ProfileCode { |
code.profile = this; |
- if (code.isDartCode) { |
+ if (code.kind == CodeKind.Stub) { |
+ attributes.add('stub'); |
+ } else if (code.kind == CodeKind.Dart) { |
+ if (code.isNative) { |
+ attributes.add('ffi'); // Not to be confused with a C function. |
+ } else { |
+ attributes.add('dart'); |
+ } |
+ if (code.hasIntrinsic) { |
+ attributes.add('intrinsic'); |
+ } |
if (code.isOptimized) { |
attributes.add('optimized'); |
} else { |
attributes.add('unoptimized'); |
} |
- } |
- if (code.isDartCode) { |
- attributes.add('dart'); |
} else if (code.kind == CodeKind.Tag) { |
attributes.add('tag'); |
} else if (code.kind == CodeKind.Native) { |
@@ -516,15 +523,19 @@ class ProfileFunction { |
if (function.kind == FunctionKind.kTag) { |
attribs.add('tag'); |
} else if (function.kind == FunctionKind.kStub) { |
- attribs.add('dart'); |
attribs.add('stub'); |
} else if (function.kind == FunctionKind.kNative) { |
attribs.add('native'); |
} else if (function.kind.isSynthetic()) { |
attribs.add('synthetic'); |
+ } else if (function.isNative) { |
+ attribs.add('ffi'); // Not to be confused with a C function. |
} else { |
attribs.add('dart'); |
} |
+ if (function.hasIntrinsic == true) { |
+ attribs.add('intrinsic'); |
+ } |
} |
ProfileFunction.fromMap(this.profile, this.function, Map data) { |