| Index: sdk/lib/_internal/lib/js_mirrors.dart
|
| diff --git a/sdk/lib/_internal/lib/js_mirrors.dart b/sdk/lib/_internal/lib/js_mirrors.dart
|
| index 067b61633620b80888548e8e3af49fdd3203870b..9934b8264f44c0ba02540bb6737fc63ac52e674f 100644
|
| --- a/sdk/lib/_internal/lib/js_mirrors.dart
|
| +++ b/sdk/lib/_internal/lib/js_mirrors.dart
|
| @@ -2167,13 +2167,15 @@ class JsMethodMirror extends JsDeclarationMirror implements MethodMirror {
|
| bool isNamed = info.areOptionalParametersNamed;
|
| for (JsParameterMirror parameter in type.parameters) {
|
| var name = info.parameterName(i);
|
| + List<int> annotations = info.parameterMetadataAnnotations(i);
|
| var p;
|
| if (i < info.requiredParameterCount) {
|
| - p = new JsParameterMirror(name, this, parameter._type);
|
| + p = new JsParameterMirror(name, this, parameter._type,
|
| + metadataList: annotations);
|
| } else {
|
| var defaultValue = info.defaultValue(i);
|
| p = new JsParameterMirror(
|
| - name, this, parameter._type,
|
| + name, this, parameter._type, metadataList: annotations,
|
| isOptional: true, isNamed: isNamed, defaultValue: defaultValue);
|
| }
|
| formals[i++] = p;
|
| @@ -2268,10 +2270,13 @@ class JsParameterMirror extends JsDeclarationMirror implements ParameterMirror {
|
|
|
| final int _defaultValue;
|
|
|
| + final List<int> metadataList;
|
| +
|
| JsParameterMirror(String unmangledName,
|
| this.owner,
|
| this._type,
|
| - {this.isOptional: false,
|
| + {this.metadataList: const <int>[],
|
| + this.isOptional: false,
|
| this.isNamed: false,
|
| defaultValue})
|
| : _defaultValue = defaultValue,
|
| @@ -2298,8 +2303,10 @@ class JsParameterMirror extends JsDeclarationMirror implements ParameterMirror {
|
| return hasDefaultValue ? reflect(getMetadata(_defaultValue)) : null;
|
| }
|
|
|
| - // TODO(ahe): Implement this.
|
| - List<InstanceMirror> get metadata => throw new UnimplementedError();
|
| + List<InstanceMirror> get metadata {
|
| + preserveMetadata();
|
| + return metadataList.map((int i) => reflect(getMetadata(i))).toList();
|
| + }
|
| }
|
|
|
| class JsTypedefMirror extends JsDeclarationMirror implements TypedefMirror {
|
| @@ -2349,7 +2356,7 @@ class BrokenClassMirror {
|
| InstanceMirror newInstance(
|
| Symbol constructorName,
|
| List positionalArguments,
|
| - [Map<Symbol,dynamic> namedArguments]) => throw new UnimplementedError();
|
| + [Map<Symbol, dynamic> namedArguments]) => throw new UnimplementedError();
|
| Function operator [](Symbol name) => throw new UnimplementedError();
|
| InstanceMirror invoke(Symbol memberName,
|
| List positionalArguments,
|
|
|