anchor.diff:      // Add all suffixes of the name that begin with a capital letter.
       var initials = new StringBuffer();
       for (int i = 0; i < name.length; i++) {
  -      var code = name.charCodeAt(i);
  +      var code = name.codeUnitAt(i);
         // Upper case character or number.
  -      // TODO(jacobr): use constants or a regexp.
  -      if ((code >= 65 && code <= 90) || (code >= 48 && code <= 57)) {
  +      if ((code >= _A && code <= _Z) || (code >= _0 && code <= _9)) {
           if (i > 0) {
             addEntry(nameLowerCase.substring(i));
           }
  -        initials.addCharCode(nameLowerCase.charCodeAt(i));
  +        initials.addCharCode(nameLowerCase.codeUnitAt(i));
         }
       }
       if (initials.length > 1) {
  
positive.code:         // TODO(jacobr): this formula is primitive. We should order by
          // popularity and the number of words into the match instead.
          // Also prioritize base classes over subclasses when sorting(?)
          num score = -name.indexOf(query) - element.name.length * 0.001;
          if (element is LibraryElement) score += 200;
          if (element is ClassElement) score += 100;
          if (name == query) score += 1000;
  
negative.code:  * Search Result matching an node in the AST.
   */
  class SearchResult implements Comparable {
  
    /** [Element] this search result references. */
    Element element;
  
    /** Score of the search result match. Higher is better. */
    num score;
  
  