anchor.diff:  
       File outFile = joinFile(outDir, ["${fileName(sourceFile)}.js"]);
   
  -    runSdkBinary(context, 'dart2js',
  +    runSdkBinary(
  +        context,
  +        'dart2js',
           arguments: ['-o${outFile.path}', sourceFile.path]);
     }
   }
   
   String _execName(String name) {
  -  if (Platform.isWindows)
  +  if (Platform.isWindows) {
       return name == 'dart' ? 'dart.exe' : '${name}.bat';
  +  }
   
     return name;
   }
  
positive.code:  * Utility tasks for executing pub commands.
   */
  class PubTools {
  
    /**
     * Run `pub get` on the current project. If [force] is true, this will execute
     * even if the pubspec.lock file is up-to-date with respect to the
  
negative.code:     }
    }
  
    /**
     * Run `pub upgrade` on the current project.
     */
    void upgrade(GrinderContext context) {
      runSdkBinary(context, 'pub', arguments: ['upgrade']);
    }
  
    /**
     * Deprecated in favor of [get].
     */
    @deprecated
    void install(context, {force: false}) => get(context, force: force);
  
    /**
     * Deprecated in favor of [upgrade].
     */
    @deprecated
    void update(context, {force: false}) => upgrade(context);
  }
  
  /**
   * Utility tasks for invoking dart2js.
   */
  class Dart2jsTools {
    /**
     * Invoke a dart2js compile with the given [sourceFile] as input.
     */
    void compile(GrinderContext context, File sourceFile, {Directory outDir}) {
  //    // TODO: check for the out.deps file, us it to know when to compile
  
      if (outDir == null) {
        outDir = sourceFile.parent;
  