anchor.diff:            documented: false,
             platforms: VM_PLATFORM),
       ''');
  +
  +    if (!forFlutterRelease) {
  +      // vmservice should be present unless we build release flavor of Flutter.
  +      extraLibraries.write('''
  +       "_vmservice": const LibraryInfo(
  +           "vmservice/vmservice.dart",
  +           categories: "Client,Server",
  +           implementation: true,
  +           documented: false,
  +           platforms: VM_PLATFORM),
  +
  +        "vmservice_sky": const LibraryInfo(
  +            "vmservice_sky/vmservice_io.dart",
  +            categories: "Client,Server",
  +            implementation: true,
  +            documented: false,
  +            platforms: VM_PLATFORM),
  +
  +      ''');
  +    }
     }
   
     libContents = libContents.replaceAll(
  
positive.code:     ..chaseDependencies = true
      ..target = target;
  
    var result = await generateKernel(
        new ProcessedOptions(
            options,
            // TODO(sigmund): pass all sdk libraries needed here, and make this
            // hermetic.
            false,
            [Uri.parse('dart:core')]),
        buildSummary: true,
        buildProgram: true);
    new File.fromUri(outlineOutput).writeAsBytesSync(result.summary);
  
negative.code:   exit(1);
  }
  
  const validModes = const ['vm', 'dart2js', 'flutter', 'flutter_release'];
  String mode;
  bool get forVm => mode == 'vm';
  bool get forFlutter => mode == 'flutter' || mode == 'flutter_release';
  bool get forFlutterRelease => mode == 'flutter_release';
  bool get forDart2js => mode == 'dart2js';
  
  Future _main(List<String> argv) async {
  