anchor.diff:      add(keyValuePairs);
       TypeMask mapType = new TypeMask.nonNullSubtype(backend.mapLiteralClass);
       pushInvokeStatic(node, backend.getMapMaker(), [keyValuePairs], mapType);
  -    setRtiIfNeeded(peek(), node);
  +    stack.add(setRtiIfNeeded(pop(), node));
     }
   
     visitLiteralMapEntry(LiteralMapEntry node) {
  
positive.code:     return result;
    }
  
    void handleListConstructor(InterfaceType type,
                               Node currentNode,
                               HInstruction newObject) {
      if (!backend.classNeedsRti(type.element)) return;
      if (!type.treatAsRaw) {
        List<HInstruction> inputs = <HInstruction>[];
        type.typeArguments.forEach((DartType argument) {
          inputs.add(analyzeTypeArgument(argument));
        });
        callSetRuntimeTypeInfo(type.element, inputs, newObject);
      }
    }
  
    void copyRuntimeTypeInfo(HInstruction source, HInstruction target) {
  
negative.code:         return inferred.containsAll(compiler)
              ? backend.fixedArrayType
              : inferred;
        } else if (isGrowableListConstructorCall) {
          TypeMask inferred =
              TypeMaskFactory.inferredForNode(currentElement, send, compiler);
          return inferred.containsAll(compiler)
  