anchor.diff:      if (!tagDefns.isEmpty) {
         List<js.Statement> statements = <js.Statement>[];
   
  -      List<js.Expression> initializations = <js.Expression>[];
  +      List<js.VariableInitialization> initializations =
  +          <js.VariableInitialization>[];
         for (final String varName in varNames) {
           initializations.add(
               new js.VariableInitialization(
  
positive.code:       void walk(ClassElement cls) {
          for (final ClassElement subclass in getDirectSubclasses(cls)) {
            ClassElement tag = subclass;
            String existing = tagDefns[tag];
            if (existing == null) {
              subtags.add(toNativeName(tag));
              walk(subclass);
  
negative.code:     // Temporary variables for common substrings.
      List<String> varNames = <String>[];
      // var -> expression
      Map<dynamic, js.Expression> varDefns = new Map<dynamic, js.Expression>();
      // tag -> expression (a string or a variable)
      Map<ClassElement, js.Expression> tagDefns =
          new Map<ClassElement, js.Expression>();
  
      js.Expression makeExpression(ClassElement classElement) {
        // Expression fragments for this set of cls keys.
        List<js.Expression> expressions = <js.Expression>[];
        // TODO: Remove if cls is abstract.
  