anchor.diff:    print("polymer build done");
   }
   
  +// Transpile dart sources to JS.
  +// It will create spark.html_bootstrap.dart.precompiled.js.
   void dart2JSBuild(GrinderContext context) {
     // We remove the symlink and replace it with a copy.
     runCommandSync(context, 'rm -rf web/packages');
  
positive.code:   context.log('spark.zip is ${sizeKb}kb');
  }
  
  String getBranchName() {
    return getCommandOutput('git branch | grep "*" | sed -e "s/\* //g"');
  }
  
  String getRepositoryUrl() {
    return getCommandOutput('git config remote.origin.url');
  }
  
  String getCurrentRevision() {
    return getCommandOutput('git rev-parse HEAD | cut -c1-10');
  }
  
  bool canReleaseFromHere() {
    return (getRepositoryUrl() == 'https://github.com/dart-lang/spark.git') &&
           (getBranchName() == 'master');
  }
  
  void archiveWithRevision(GrinderContext context) {
    context.log('Performing archive instead.');
    archive(context);
  
negative.code:       joinDir(Directory.current, ['app', 'packages']));
  }
  
  // Prepare the build folder.
  // It will copy all the required source files to build/.
  // It will prepare the directory layout to be compatible with polymer builder.
  void prepareBuild(GrinderContext context) {
    context.log('prepare build');
    // Copy files to build directory.
  