Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: runtime/bin/vmservice/client/lib/src/elements/function_view.dart

Issue 211283004: Support Types in instance-ref/instance-view (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/client/lib/src/elements/function_view.dart
diff --git a/runtime/bin/vmservice/client/lib/src/elements/function_view.dart b/runtime/bin/vmservice/client/lib/src/elements/function_view.dart
index 1c3620c24d91bde1b445ffaefc043a5eed8d28a7..4a09f709a9569cc9bb64c158deb01662b169eafc 100644
--- a/runtime/bin/vmservice/client/lib/src/elements/function_view.dart
+++ b/runtime/bin/vmservice/client/lib/src/elements/function_view.dart
@@ -14,7 +14,74 @@ class FunctionViewElement extends ObservatoryElement {
@published ServiceMap function;
FunctionViewElement.created() : super.created();
+ @published String qualifiedName;
+ @published String kind;
+
+ String _getQualifiedName(ServiceMap function) {
+ var parent = (function != null && function['parent'] != null
+ ? function['parent'] : null);
+ if (parent != null) {
+ return "${_getQualifiedName(parent)}.${function['user_name']}";
+ }
+ var cls = (function != null &&
+ function['class'] != null &&
+ function['class']['user_name'] != null &&
+ function['class']['user_name'] != '::'
+ ? function['class'] : null);
+ if (cls != null) {
+ return "${cls['user_name']}.${function['user_name']}";
+ }
+ return "${function['username']}";
+ }
+
+ void functionChanged(oldValue) {
+ notifyPropertyChange(#qualifiedName, 0, 1);
+ notifyPropertyChange(#kind, 0, 1);
+ qualifiedName = _getQualifiedName(function);
+ switch(function['kind']) {
Cutch 2014/03/25 23:12:38 Maybe add a TODO here that this code should be fac
turnidge 2014/03/26 17:05:20 Done.
+ case 'kRegularFunction':
+ kind = 'function';
+ break;
+ case 'kClosureFunction':
+ kind = 'closure function';
+ break;
+ case 'kSignatureFunction':
+ kind = 'signature function';
+ break;
+ case 'kGetterFunction':
+ kind = 'getter function';
+ break;
+ case 'kSetterFunction':
+ kind = 'setter function';
+ break;
+ case 'kConstructor':
+ kind = 'constructor';
+ break;
+ case 'kImplicitGetterFunction':
+ kind = 'implicit getter function';
+ break;
+ case 'kImplicitSetterFunction':
+ kind = 'implicit setter function';
+ break;
+ case 'kStaticInitializer':
+ kind = 'static initializer';
+ break;
+ case 'kMethodExtractor':
+ kind = 'method extractor';
+ break;
+ case 'kNoSuchMethodDispatcher':
+ kind = 'noSuchMethod dispatcher';
+ break;
+ case 'kInvokeFieldDispatcher':
+ kind = 'invoke field dispatcher';
+ break;
+ default:
+ kind = 'UNKNOWN';
+ break;
+ }
+ }
+
void refresh(var done) {
function.reload().whenComplete(done);
}
-}
+}

Powered by Google App Engine
This is Rietveld 408576698