anchor.diff:    }
   
     jsAst.Expression maybeAddTypeArguments(
  -      ResolutionInterfaceType type, jsAst.Expression value) {
  -    if (type is ResolutionInterfaceType &&
  +      InterfaceType type, jsAst.Expression value) {
  +    if (type is InterfaceType &&
           !type.treatAsRaw &&
           _rtiNeed.classNeedsRti(type.element)) {
         return new jsAst.Call(
  
positive.code:     // The arguments of the JavaScript constructor for any given Dart class
      // are in the same order as the members of the class element.
      int emittedArgumentCount = 0;
      classElement.implementation.forEachInstanceField(
          (ClassElement enclosing, Element field) {
        if (field.name == JavaScriptMapConstant.LENGTH_NAME) {
          arguments
              .add(new jsAst.LiteralNumber('${constant.keyList.entries.length}'));
  
negative.code:     return value;
    }
  
    jsAst.PropertyAccess getHelperProperty(FunctionEntity helper) {
      return _emitter.staticFunctionAccess(helper);
    }
  
    @override
    jsAst.Expression visitType(TypeConstantValue constant, [_]) {
      DartType type = constant.representedType;
      jsAst.Name typeName;
      Entity element;
      if (type is InterfaceType) {
        element = type.element;
      } else if (type is ResolutionTypedefType) {
        // TODO(redemption): Handle typedef type literals from .dill.
        element = type.element;
      } else {
        assert(type is DynamicType);
      }
      typeName = _namer.runtimeTypeName(element);
      return new jsAst.Call(getHelperProperty(_commonElements.createRuntimeType),
          [js.quoteName(typeName)]);
    }
  