dartObjectToString function

String dartObjectToString (DartObject v)

Implementation

String dartObjectToString(DartObject v) {
  if (v.isNull) return 'null';
  if (v.toBoolValue() != null) return v.toBoolValue().toString();
  if (v.toIntValue() != null) return v.toIntValue().toString();
  if (v.toDoubleValue() != null) return v.toDoubleValue().toString();
  if (v.toSymbolValue() != null) return '#' + v.toSymbolValue();
  if (v.toTypeValue() != null) return v.toTypeValue().name;
  if (v.toListValue() != null)
    return 'const [' + v.toListValue().map(dartObjectToString).join(', ') + ']';
  if (v.toMapValue() != null) {
    return 'const {' +
        v.toMapValue().entries.map((entry) {
          var k = dartObjectToString(entry.key);
          var v = dartObjectToString(entry.value);
          return '$k: $v';
        }).join(', ') +
        '}';
  }
  if (v.toStringValue() != null) {
    return literalString(v.toStringValue())
        .accept(new DartEmitter())
        .toString();
  }
  throw new ArgumentError(v.toString());
}