Index: runtime/observatory/lib/src/elements/service_ref.dart |
diff --git a/runtime/observatory/lib/src/elements/service_ref.dart b/runtime/observatory/lib/src/elements/service_ref.dart |
index d368713f5f0adb7655f410fd9cc6150e9ec6d5f7..e0a28fea5c46ef060c479f9f0047c456c55ab944 100644 |
--- a/runtime/observatory/lib/src/elements/service_ref.dart |
+++ b/runtime/observatory/lib/src/elements/service_ref.dart |
@@ -7,11 +7,18 @@ library service_ref_element; |
import 'dart:html'; |
import 'package:logging/logging.dart'; |
+import 'package:observatory/models.dart' as M; |
import 'package:observatory/service.dart'; |
import 'package:polymer/polymer.dart'; |
import 'class_ref.dart'; |
+import 'class_ref_as_value.dart'; |
+import 'code_ref.dart'; |
+import 'error_ref.dart'; |
+import 'function_ref.dart'; |
import 'library_ref.dart'; |
+import 'library_ref_as_value.dart'; |
+import 'script_ref.dart'; |
import 'observatory_element.dart'; |
class ServiceRefElement extends ObservatoryElement { |
@@ -91,43 +98,49 @@ class AnyServiceRefElement extends ObservatoryElement { |
var type = ref.type; |
switch (type) { |
case 'Class': |
- ClassRefElement element = new Element.tag('class-ref'); |
- element.ref = ref; |
- element.asValue = asValue; |
- return element; |
+ if (asValue) { |
+ ClassRefAsValueElement element = |
+ new Element.tag('class-ref-as-element'); |
+ element.ref = ref; |
+ return element; |
+ } |
+ return new ClassRefElement(ref.isolate, |
+ ref as M.ClassRef, |
+ queue: app.queue); |
case 'Code': |
- ServiceRefElement element = new Element.tag('code-ref'); |
- element.ref = ref; |
- return element; |
+ return new CodeRefElement(ref.isolate, ref as M.Code, queue: app.queue); |
case 'Context': |
ServiceRefElement element = new Element.tag('context-ref'); |
element.ref = ref; |
return element; |
case 'Error': |
- ServiceRefElement element = new Element.tag('error-ref'); |
- element.ref = ref; |
- return element; |
+ return new ErrorRefElement(ref as M.ErrorRef, queue: app.queue); |
case 'Field': |
ServiceRefElement element = new Element.tag('field-ref'); |
element.ref = ref; |
return element; |
case 'Function': |
- ServiceRefElement element = new Element.tag('function-ref'); |
- element.ref = ref; |
- return element; |
+ return new FunctionRefElement(ref.isolate, |
+ ref as M.FunctionRef, |
+ queue: app.queue); |
case 'Library': |
- LibraryRefElement element = new Element.tag('library-ref'); |
- element.ref = ref; |
- element.asValue = asValue; |
- return element; |
+ if (asValue) { |
+ LibraryRefAsValueElement element = |
+ new Element.tag('library-ref-as-value'); |
+ element.ref = ref; |
+ return element; |
+ } |
+ return new LibraryRefElement(ref.isolate, |
+ ref as M.LibraryRef, |
+ queue: app.queue); |
case 'Object': |
ServiceRefElement element = new Element.tag('object-ref'); |
element.ref = ref; |
return element; |
case 'Script': |
- ServiceRefElement element = new Element.tag('script-ref'); |
- element.ref = ref; |
- return element; |
+ return new ScriptRefElement(ref.isolate, |
+ ref as M.ScriptRef, |
+ queue: app.queue); |
case 'Instance': |
case 'Sentinel': |
ServiceRefElement element = new Element.tag('instance-ref'); |