anchor.diff:          monitor: compiler.dumpInfoTask));
   
       if (shouldGenerateSourceMap) {
  -      mainOutput.add(SourceMapBuilder.generateSourceMapTag(
  -          compiler.options.sourceMapUri, compiler.options.outputUri));
  +      task.measureSubtask('source-maps', () {
  +        mainOutput.add(SourceMapBuilder.generateSourceMapTag(
  +            compiler.options.sourceMapUri, compiler.options.outputUri));
  +      });
       }
   
       mainOutput.close();
   
       if (shouldGenerateSourceMap) {
  -      SourceMapBuilder.outputSourceMap(
  -          mainOutput,
  -          locationCollector,
  -          namer.createMinifiedGlobalNameMap(),
  -          namer.createMinifiedInstanceNameMap(),
  -          '',
  -          compiler.options.sourceMapUri,
  -          compiler.options.outputUri,
  -          compiler.outputProvider);
  +      task.measureSubtask('source-maps', () {
  +        SourceMapBuilder.outputSourceMap(
  +            mainOutput,
  +            locationCollector,
  +            namer.createMinifiedGlobalNameMap(),
  +            namer.createMinifiedInstanceNameMap(),
  +            '',
  +            compiler.options.sourceMapUri,
  +            compiler.options.outputUri,
  +            compiler.outputProvider);
  +      });
       }
     }
   
  
positive.code:     LocationCollector locationCollector;
      List<CodeOutputListener> codeOutputListeners;
      if (shouldGenerateSourceMap) {
        locationCollector = new LocationCollector();
        codeOutputListeners = <CodeOutputListener>[locationCollector];
      }
  
      CodeOutput mainOutput = new StreamCodeOutput(
  
negative.code: 
      LocationCollector locationCollector;
      if (shouldGenerateSourceMap) {
        task.measureSubtask('source-maps', () {
          locationCollector = new LocationCollector();
          outputListeners.add(locationCollector);
        });
      }
  
      String hunkPrefix = fragment.outputFileName;
  