anchor.diff:    /// extensions.
     final _extensions = <SimpleSelector, Map<ComplexSelector, Extension>>{};
   
  -  /// An expando from [CssStyleRule] to media query contexts.
  +  /// A map from CSS rules to the media query contexts they're defined in.
     ///
     /// This tracks the contexts in which each style rule is defined. If a rule is
     /// defined at the top level, it doesn't have an entry.
  -  final _mediaContexts = new Expando<List<CssMediaQuery>>();
  -
  -  /// An expando from [SimpleSelector]s to integers.
  +  final _mediaContexts = new Map<CssStyleRule, List<CssMediaQuery>>();
  +
  +  /// A map from [SimpleSelector]s to the specificity of their source
  +  /// selectors.
     ///
     /// This tracks the maximum specificity of the [ComplexSelector] that
     /// originally contained each [SimpleSelector]. This allows us to ensure that
  
positive.code:     var result = new QueueList<ComplexSelector>();
      for (var i = lists.length - 1; i >= 0; i--) {
        for (var complex1 in lists[i].reversed) {
          if (_original[complex1] != null) {
            result.addFirst(complex1);
            continue;
          }
  
negative.code:         // Make sure that copies of [complex] retain their status as "original"
          // selectors. This includes selectors that are modified because a :not()
          // was extended into.
          if (first && _originals.contains(complex)) {
            _originals.add(outputComplex);
          }
          first = false;
  
  