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

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart

Issue 16101007: Implement LibraryMirror.metadata. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 7 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: dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart
diff --git a/dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart b/dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart
index ffcef0aaa14649092eae8a3783f870ed1184801d..3477d3190d94f649dd21c1224abc294114b6272d 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/lib/mirrors_patch.dart
@@ -37,8 +37,12 @@ class _MirrorSystem implements MirrorSystem {
Uri uri = Uri.parse(data[1]);
List<String> classes = data[2];
List<String> functions = data[3];
+ var metadataFunction = data[4];
+ List metadata =
+ (metadataFunction == null) ? null : JS('List', '#()', metadataFunction);
kasperl 2013/05/29 06:25:06 Long line.
ahe 2013/05/30 11:41:15 Done.
var libraries = result.putIfAbsent(name, () => <LibraryMirror>[]);
- libraries.add(new _LibraryMirror(_s(name), uri, classes, functions));
+ libraries.add(
+ new _LibraryMirror(_s(name), uri, classes, functions, metadata));
}
return result;
}
@@ -54,8 +58,13 @@ class _LibraryMirror extends _ObjectMirror implements LibraryMirror {
final Uri uri;
final List<String> _classes;
final List<String> _functions;
+ final List _metadata;
- _LibraryMirror(this.simpleName, this.uri, this._classes, this._functions);
+ _LibraryMirror(this.simpleName,
+ this.uri,
+ this._classes,
+ this._functions,
+ this._metadata);
Symbol get qualifiedName => simpleName;
@@ -127,6 +136,8 @@ class _LibraryMirror extends _ObjectMirror implements LibraryMirror {
variables.forEach(addToResult);
return result;
}
+
+ List<InstanceMirror> get metadata => _metadata.map(reflect);
}
String _n(Symbol symbol) => _symbol_dev.Symbol.getName(symbol);

Powered by Google App Engine
This is Rietveld 408576698