Index: tests/lib/mirrors/stringify.dart |
diff --git a/tests/lib/mirrors/stringify.dart b/tests/lib/mirrors/stringify.dart |
index 977877238b7875e6206e434e048e45d35bbb5098..ddb066848300d952dd656d86f3a065218b50647b 100644 |
--- a/tests/lib/mirrors/stringify.dart |
+++ b/tests/lib/mirrors/stringify.dart |
@@ -37,6 +37,14 @@ stringifyIterable(Iterable list) { |
return '[$buffer]'; |
} |
+stringifyInstance(InstanceMirror instance) { |
+ var buffer = new StringBuffer(); |
+ if (instance.hasReflectee) { |
+ buffer.write('value = ${stringify(instance.reflectee)}'); |
+ } |
+ return 'Instance(${buffer})'; |
+} |
+ |
stringifySymbol(Symbol symbol) => 's(${MirrorSystem.getName(symbol)})'; |
writeDeclarationOn(DeclarationMirror mirror, StringBuffer buffer) { |
@@ -66,11 +74,10 @@ stringifyParameter(ParameterMirror parameter) { |
writeVariableOn(parameter, buffer); |
if (parameter.isOptional) buffer.write(', optional'); |
if (parameter.isNamed) buffer.write(', named'); |
- // TODO(6490,12430): Add this check as soon as it's properly implemented in |
- // the VM and dart2js. |
- // if (parameter.hasDefaultValue) { |
- // buffer.write(', value = ${stringify(parameter.defaultValue)}'); |
- // } |
+ // TODO(6490): dart2js always returns false for hasDefaultValue. |
+ if (parameter.hasDefaultValue) { |
+ buffer.write(', value = ${stringify(parameter.defaultValue)}'); |
+ } |
// TODO(ahe): Move to writeVariableOn. |
buffer.write(', type = ${stringify(parameter.type)}'); |
return 'Parameter($buffer)'; |
@@ -101,9 +108,12 @@ stringifyMethod(MethodMirror method) { |
stringify(value) { |
if (value is Map) return stringifyMap(value); |
if (value is Iterable) return stringifyIterable(value); |
+ if (value is InstanceMirror) return stringifyInstance(value); |
if (value is ParameterMirror) return stringifyParameter(value); |
if (value is VariableMirror) return stringifyVariable(value); |
if (value is MethodMirror) return stringifyMethod(value); |
+ if (value is num) return value.toString(); |
+ if (value is String) return value; |
if (value is Symbol) return stringifySymbol(value); |
if (value is ClassMirror) return stringifyClass(value); |
if (value is TypeMirror) return stringifyType(value); |