Add filename to output unit.
This will be used to properly extract text from sources when the output of dump-info only shows span offsets
diff --git a/lib/binary_serialization.dart b/lib/binary_serialization.dart
index 672d280..a19689f 100644
--- a/lib/binary_serialization.dart
+++ b/lib/binary_serialization.dart
@@ -206,6 +206,7 @@
   void visitOutput(OutputUnitInfo output) {
     sink.writeCached(output, (OutputUnitInfo info) {
       _visitBasicInfo(info);
+      sink.writeStringOrNull(info.filename);
       sink.writeList(info.imports, sink.writeString);
     });
   }
@@ -445,6 +446,7 @@
   OutputUnitInfo readOutput() => source.readCached<OutputUnitInfo>(() {
         OutputUnitInfo info = new OutputUnitInfo.internal();
         _readBasicInfo(info);
+        info.filename = source.readStringOrNull();
         info.imports = source.readList(source.readString);
         return info;
       });
diff --git a/lib/info.dart b/lib/info.dart
index b41bb5c..d2019ca 100644
--- a/lib/info.dart
+++ b/lib/info.dart
@@ -203,10 +203,12 @@
 /// program unless the application uses deferred imports, in which case there
 /// would be an additional output unit per deferred chunk.
 class OutputUnitInfo extends BasicInfo {
+  String filename;
+
   /// The deferred imports that will load this output unit.
   List<String> imports = <String>[];
 
-  OutputUnitInfo(String name, int size)
+  OutputUnitInfo(this.filename, String name, int size)
       : super(InfoKind.outputUnit, name, null, size, null);
 
   OutputUnitInfo.internal() : super.internal(InfoKind.outputUnit);
diff --git a/lib/json_info_codec.dart b/lib/json_info_codec.dart
index 92b7d63..e7c9364 100644
--- a/lib/json_info_codec.dart
+++ b/lib/json_info_codec.dart
@@ -92,6 +92,7 @@
   OutputUnitInfo parseOutputUnit(Map json) {
     OutputUnitInfo result = parseId(json['id']);
     result
+      ..filename = json['filename']
       ..name = json['name']
       ..size = json['size'];
     result.imports
@@ -252,6 +253,7 @@
           (json['parameters'] as List).map((p) => parseParameter(p)).toList()
       ..code = parseCode(json['code'])
       ..sideEffects = json['sideEffects']
+      ..inlinedCount = json['inlinedCount']
       ..modifiers =
           parseModifiers(new Map<String, bool>.from(json['modifiers']))
       ..closures = (json['children'] as List)
@@ -583,8 +585,9 @@
 
   visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type;
 
-  visitOutput(OutputUnitInfo info) =>
-      _visitBasicInfo(info)..['imports'] = info.imports;
+  visitOutput(OutputUnitInfo info) => _visitBasicInfo(info)
+    ..['filename'] = info.filename
+    ..['imports'] = info.imports;
 
   Object _serializeCode(List<CodeSpan> code) {
     if (isBackwardCompatible) {