anchor.diff:  
     await setup(entryUri);
   
  -  if (bench == 'scan') {
  -    Set<SourceFile> files = await scanReachableFiles(entryUri);
  -    // TODO(sigmund): consider replacing the warmup with instrumented snapshots.
  -    for (int i = 0; i < 10; i++) scanFiles(files);
  -  } else if (bench == 'parse') {
  -    Set<SourceFile> files = await scanReachableFiles(entryUri);
  -    // TODO(sigmund): consider replacing the warmup with instrumented snapshots.
  -    for (int i = 0; i < 10; i++) parseFiles(files);
  -  } else {
  -    print('unsupported bench-id: $bench. Please specify "scan" or "parse"');
  +  var handlers = {
  +    'scan': () async {
  +      Set<SourceFile> files = await scanReachableFiles(entryUri);
  +      // TODO(sigmund): replace the warmup with instrumented snapshots.
  +      for (int i = 0; i < 10; i++) scanFiles(files);
  +    },
  +    'parse': () async {
  +      Set<SourceFile> files = await scanReachableFiles(entryUri);
  +      // TODO(sigmund): replace the warmup with instrumented snapshots.
  +      for (int i = 0; i < 10; i++) parseFiles(files);
  +    },
  +    'kernel_gen_e2e': () async {
  +      // TODO(sigmund): remove. This is used to compute the input size, we
  +      // should extract input size from frontend instead.
  +      await scanReachableFiles(entryUri);
  +      // TODO(sigmund): replace this warmup. Note that for very large programs,
  +      // the GC pressure on the VM seems to make this worse with time (maybe we
  +      // are leaking memory?). That's why we run it twice and not 10 times.
  +      for (int i = 0; i < 2; i++) await generateKernel(entryUri);
  +    },
  +  };
  +
  +  var handler = handlers[bench];
  +  if (handler == null) {
       // TODO(sigmund): implement the remaining benchmarks.
  +    print('unsupported bench-id: $bench. Please specify one of the following: '
  +        '${handler.keys.join(", ")}');
       exit(1);
     }
  -
  +  await handler();
     totalTimer.stop();
     report("total", totalTimer.elapsedMicroseconds);
   }
  
positive.code:   const _ParserOptions();
    bool get enableGenericMethodSyntax => true;
  }
  
negative.code: import 'dart:io';
  
  import 'package:compiler/compiler_new.dart';
  import 'package:compiler/src/apiimpl.dart';
  import 'package:compiler/src/compiler.dart';
  import 'package:compiler/src/kernel/task.dart';
  import 'package:compiler/src/elements/elements.dart';
  import 'package:compiler/src/common.dart';
  import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
  import 'package:compiler/src/diagnostics/messages.dart'
  