Index: dart/sdk/lib/_internal/compiler/implementation/lib/js_mirrors.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/lib/js_mirrors.dart b/dart/sdk/lib/_internal/compiler/implementation/lib/js_mirrors.dart |
index 8e253dabd4ae6dc13420e0a510fad9de751aa0a1..d1f93eda316292825eb33fe4bc80b97ffa78164c 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/lib/js_mirrors.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/lib/js_mirrors.dart |
@@ -262,6 +262,7 @@ class JsClassMirror extends JsObjectMirror implements ClassMirror { |
final Symbol simpleName; |
final _jsConstructor; |
final String _fields; |
+ List _metadata; |
// Set as side-effect of accessing JsLibraryMirror.classes. |
JsLibraryMirror _owner; |
@@ -370,6 +371,15 @@ class JsClassMirror extends JsObjectMirror implements ClassMirror { |
return _owner; |
} |
+ List<InstanceMirror> get metadata { |
+ if (_metadata == null) { |
+ var metadataFunction = JS('', '#.prototype["@"]', _jsConstructor); |
+ _metadata = (metadataFunction == null) |
+ ? const [] : JS('', '#()', metadataFunction); |
+ } |
+ return _metadata.map(reflect).toList(); |
+ } |
+ |
String toString() => 'ClassMirror(${n(simpleName)})'; |
} |