anchor.diff:          // project type requires them.
           if (jsDepsStr != null) {
             List<String> jsDeps = [];
  -          for (final depName in jsDepsStr.split(':')) {
  +          for (final depName in jsDepsStr.split(',')) {
               final String depPath = _KNOWN_JS_PACKAGES[depName];
               assert(depPath != null);
               jsDeps.add('"$depName": "$depPath"');
  
positive.code:       'polymer-ui-elements': 'PolymerLabs/polymer-ui-elements#master'
    };
    // Matches: "proj-template", "proj-template+polymer,polymer-elements".
    static final _TEMPLATE_REGEX = new RegExp(r'([\w_-]+)(;(([\w-],?)+))?');
  
    NewProjectAction(Spark spark, Element dialog)
        : super(spark, "project-new", "New Project…", dialog) {
  
negative.code:         root = new ws.FolderChildRoot(location.parent, locationEntry);
        }
  
        // TODO(ussuri): Can this no-op `return Future.value()` be removed?
        return new Future.value().then((_) {
          List<ProjectTemplate> templates = [];
  
  