anchor.diff:    var currentPackage = options.currentPackage;
     var transformTests = options.transformTests;
     var outPackages = path.join(options.outDir, 'packages');
  -  for (var asset in assets) {
  +
  +  return Future.forEach(assets, (asset) {
       var id = asset.id;
       var dir = _firstDir(id.path);
  -    if (dir == null) continue;
  +    if (dir == null) return null;
   
       var filepath;
       if (dir == 'lib') {
  
positive.code:   _ensureDir(outPackages);
  
    // Copy all the files we didn't process
    var futures = [];
    var dirs = options.packageDirs;
    for (var package in _polymerPackageDependencies) {
      for (var relpath in _listPackageDir(package, 'lib', options)) {
        var inpath = path.join(dirs[package], relpath);
        var outpath = path.join(outPackages, package, relpath.substring(4));
        futures.add(_copyFile(inpath, outpath));
      }
    }
    return Future.wait(futures);
  }
  
  /** Ensure [dirpath] exists. */
  
negative.code:       filepath = path.join(options.outDir, _toSystemPath(id.path));
      } else {
        // TODO(sigmund): do something about other assets?
        return null;
      }
  
      return _writeAsset(filepath, asset);
    });
  }
  
  /**
  