anchor.diff:    buildDir = p.join(p.normalize(arguments[0]), "pub_async");
     new Directory(buildDir).createSync(recursive: true);
   
  +  // See if the current sources were compiled against a different version of the
  +  // compiler.
  +  var versionPath = p.join(buildDir, "compiler.version");
  +  var version = "none";
  +  try {
  +    version = new File(versionPath).readAsStringSync();
  +  } on IOException catch (ex) {
  +    // Do nothing. The version file didn't exist.
  +  }
  +
     var silent = arguments.length == 2 && arguments[1] == "--silent";
     var numFiles = 0;
     var numCompiled = 0;
  
positive.code:     }
    }
  
    if (!silent) print("Compiled $numCompiled out of $numFiles files.");
  
    if (hadFailure) exit(1);
  }
  
  final _compilerPattern = new RegExp(r"import '(\.\./)+compiler");
  
  void _compile(String sourcePath, String source, String destPath) {
    var destDir = new Directory(p.dirname(destPath));
  
negative.code:   source = _translateAsyncAwait(sourcePath, source);
    if (source != null) source = _fixDart2jsImports(sourcePath, source, destPath);
  
    if (source == null) {
      // If the async compile fails, delete the file so that we don't try to
      // run the stale previous output and so that we try to recompile it later.
      _deleteFile(destPath);
    } else {
      _writeFile(destPath, source);
    }
  }
  
  