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:       filepath = path.join(options.outDir, _toSystemPath(id.path));
      } else {
        // TODO(sigmund): do something about other assets?
        continue;
      }
  
      futures.add(_writeAsset(filepath, asset));
    }
    return Future.wait(futures);
  }
  
  /**
  
negative.code:   _ensureDir(outPackages);
  
    // Copy all the files we didn't process
    var dirs = options.packageDirs;
  
    return Future.forEach(_polymerPackageDependencies, (package) {
      return Future.forEach(_listPackageDir(package, 'lib', options), (relpath) {
        var inpath = path.join(dirs[package], relpath);
        var outpath = path.join(outPackages, package, relpath.substring(4));
        return _copyFile(inpath, outpath);
      });
    });
  }
  
  /** Ensure [dirpath] exists. */
  