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: const dillId = const DataId("dill");
  const updatedDillId = const DataId("udill");
  const globalDataId = const DataId("gdata");
  const jsId = const DataId("js");
  const txtId = const DataId("txt");
  
  
negative.code:   }
    throw new UnsupportedError('Unsupported platform.');
  }
  
  class ShardsDataId implements DataId {
    @override
    final String name;
    final int shards;
  
    const ShardsDataId(this.name, this.shards);
  
    @override
    String toString() => name;
  }
  
  class ShardDataId implements DataId {
    final ShardsDataId dataId;
    final int _shard;
  
    const ShardDataId(this.dataId, this._shard);
  
    int get shard {
      assert(0 <= _shard && _shard < dataId.shards);
      return _shard;
    }
  
    @override
    String get name => '${dataId.name}${shard}';
  
    @override
    String toString() => name;
  }
  