| Index: runtime/lib/mirrors_impl.dart
 | 
| diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
 | 
| index 88a89cc5a2f220466eb79773bbcc1d36b80ca401..defd2eac400bd0121cd4a3f0ab050deb10876a6b 100644
 | 
| --- a/runtime/lib/mirrors_impl.dart
 | 
| +++ b/runtime/lib/mirrors_impl.dart
 | 
| @@ -1070,27 +1070,30 @@ class _LocalParameterMirrorImpl extends _LocalVariableMirrorImpl
 | 
|                              DeclarationMirror owner,
 | 
|                              this._position,
 | 
|                              this.isOptional,
 | 
| -                            this.isNamed)
 | 
| +                            this.isNamed,
 | 
| +                            bool isFinal,
 | 
| +                            this._defaultValueReflectee)
 | 
|        : super(reflectee,
 | 
|                simpleName,
 | 
|                owner,
 | 
|                null,  // We override the type.
 | 
|                false, // isStatic does not apply.
 | 
| -              false);  // TODO(12196): Not yet implemented.
 | 
| +              isFinal);
 | 
|  
 | 
|    final int _position;
 | 
|    final bool isOptional;
 | 
|    final bool isNamed;
 | 
|  
 | 
| -  String get defaultValue {
 | 
| -    throw new UnimplementedError(
 | 
| -        'ParameterMirror.defaultValue is not implemented');
 | 
| +  Object _defaultValueReflectee;
 | 
| +  InstanceMirror _defaultValue = null;
 | 
| +  InstanceMirror get defaultValue {
 | 
| +    if (_defaultValue == null && hasDefaultValue) {
 | 
| +      _defaultValue = reflect(_defaultValueReflectee);
 | 
| +    }
 | 
| +    return _defaultValue;
 | 
|    }
 | 
|  
 | 
| -  bool get hasDefaultValue {
 | 
| -    throw new UnimplementedError(
 | 
| -        'ParameterMirror.hasDefaultValue is not implemented');
 | 
| -  }
 | 
| +  bool get hasDefaultValue => !(_defaultValueReflectee == null);
 | 
|  
 | 
|    // TODO(11418): Implement.
 | 
|    List<InstanceMirror> get metadata {
 | 
| 
 |