anchor.diff:        'package:compiler/src/dart2js.dart',
         '${toUri(module, dillId)}',
         for (String flag in flags) '--enable-experiment=$flag',
  -      '--dill-dependencies=${dillDependencies.join(',')}',
  -      '--write-data=${toUri(module, globalDataId)}',
  +      '${Flags.dillDependencies}=${dillDependencies.join(',')}',
  +      '${Flags.writeData}=${toUri(module, globalDataId)}',
         '--out=${toUri(module, updatedDillId)}',
       ];
       var result =
  
positive.code:       'package:compiler/src/dart2js.dart',
        '${toUri(module, updatedDillId)}',
        for (String flag in flags) '--enable-experiment=$flag',
        '--read-data=${toUri(module, globalDataId)}',
        '--out=${toUri(module, jsId)}',
      ];
      var result =
  
negative.code:   }
  }
  
  // Step that invokes the dart2js code generation on the main module given the
  // results of the global analysis step and produces one shard of the codegen
  // output.
  class Dart2jsCodegenStep implements IOModularStep {
    final ShardDataId codeId;
  
    Dart2jsCodegenStep(this.codeId);
  
    @override
    List<DataId> get resultData => [codeId];
  
    @override
    bool get needsSources => false;
  