anchor.diff:  
     Map builtMap;
     if (buildSourceMap && sourceMap != null) {
  -    builtMap =
  -        placeSourceMap(sourceMap.build(jsUrl), mapUrl, <String, String>{});
  +    builtMap = placeSourceMap(
  +        sourceMap.build(jsUrl), mapUrl, <String, String>{}, customScheme);
       var jsDir = path.dirname(path.fromUri(jsUrl));
       var relative = path.relative(path.fromUri(mapUrl), from: jsDir);
       var relativeMapUrl = path.toUri(relative).toString();
  
positive.code:   var jsCode = jsProgramToCode(jsModule, moduleFormat,
        buildSourceMap: argResults['source-map'],
        jsUrl: path.toUri(output).toString(),
        mapUrl: path.toUri(output + '.map').toString());
    file.writeAsStringSync(jsCode.code);
  
    if (jsCode.sourceMap != null) {
  
negative.code: /// and returns the new map.  Relative paths are in terms of URIs ('/'), not
  /// local OS paths (e.g., windows '\').
  // TODO(jmesserly): find a new home for this.
  // TODO(sigmund): delete bazelMappings - customScheme should be used instead.
  Map placeSourceMap(Map sourceMap, String sourceMapPath,
      Map<String, String> bazelMappings, String customScheme) {
    var map = new Map.from(sourceMap);
    // Convert to a local file path if it's not.
    sourceMapPath = path.fromUri(_sourceToUri(sourceMapPath, customScheme));
    var sourceMapDir = path.dirname(path.absolute(sourceMapPath));
    var list = new List.from(map['sources']);
    map['sources'] = list;
  
    String makeRelative(String sourcePath) {
      var uri = _sourceToUri(sourcePath, customScheme);
      if (uri.scheme == 'dart' ||
          uri.scheme == 'package' ||
          uri.scheme == customScheme) {
        return sourcePath;
      }
  
      // Convert to a local file path if it's not.
      sourcePath = path.absolute(path.fromUri(uri));
  