anchor.diff:          // recorded.  Don't register these.
           if (fnId != null) {
             holding[fnId] = pulling
  -            .map((a) => infoCollector.idOf(a))
  +            .map((selection) {
  +              return <String, String>{
  +                "id": infoCollector.idOf(selection.selectedElement),
  +                "mask": selection.selector.mask.toString()
  +              };
  +            })
               // Filter non-null ids for the same reason as above.
  -            .where((a) => a != null)
  +            .where((a) => a['id'] != null)
               .toList();
           }
         }
  
positive.code:   }
  
    /**
     * Returns an iterable of [Element]s that are used by
     * [element].
     */
    Iterable<Element> getRetaining(Element element) {
      if (!selectorsFromElement.containsKey(element)) {
        return const <Element>[];
      } else {
        return selectorsFromElement[element].expand(
            (s) => compiler.world.allFunctions.filter(s));
      }
    }
  
  
negative.code:   }
  }
  
  class Selection {
    final Element selectedElement;
    final Selector selector;
    Selection(this.selectedElement, this.selector);
  }
  
  class DumpInfoTask extends CompilerTask {
    DumpInfoTask(Compiler compiler)
  