anchor.diff:          '--packages=${packageConfig.path}',
         ];
   
  -      final StreamController<List<int>> streamController =
  -          StreamController<List<int>>();
  -      final StreamController<List<int>> stdoutStreamController =
  -          StreamController<List<int>>();
  -      final IOSink ioSink = IOSink(stdoutStreamController.sink);
  -      StreamController<Result> receivedResults = StreamController<Result>();
  -      final outputParser = OutputParser(receivedResults);
  -      stdoutStreamController.stream
  -          .transform(utf8.decoder)
  -          .transform(const LineSplitter())
  -          .listen(outputParser.listener);
  -
  -      Future<int> result =
  -          starter(args, input: streamController.stream, output: ioSink);
  -      streamController.add('compile $library\n'.codeUnits);
  +      final frontendServer = FrontendServer();
  +      Future<int> result = frontendServer.open(args);
  +      frontendServer.compile(library);
         var count = 0;
  -      receivedResults.stream.listen((Result compiledResult) {
  +      frontendServer.listen((Result compiledResult) {
           CompilationResult result =
               CompilationResult.parse(compiledResult.status);
           count++;
  
positive.code:           compiledResult.expectNoErrors(filename: dillIncFile.path);
            expect(dillIncFile.existsSync(), equals(true));
            expect(widgetCacheFile.existsSync(), equals(false));
            inputStreamController.add('quit\n'.codeUnits);
          }
        });
        expect(await result, 0);
        inputStreamController.close();
      });
  
      test('unsafe-package-serialization', () async {
  
negative.code:           expect(outputFile.existsSync(), equals(true));
            expect(outputFile.lengthSync(), isPositive);
  
            frontendServer.compileExpressionToJs('2+2', library, 2, 1, module);
            count += 1;
          } else if (count == 3) {
            expect(result.errorsCount, equals(0));
  