anchor.diff:      if (dartList != null) return dartList;
       dartList = jsValue.map((item) => convertToDart(item)).toList();
       _jsArrayExpando[dartList] = jsValue;
  -    addDartInstance(jsValue, dartList);
  +    setDartInstance(jsValue, dartList);
       return dartList;
     } else if (jsValue is JsFunction) {
       // If we are passed a recognized JS constructor function, return the
  
positive.code:         newMap[k] = convertToJs(v);
        });
        _jsMapExpando[dartValue] = newMap;
        addDartInstance(newMap, dartValue);
      }
    } else if (dartValue is Map) {
      var newMap = new JsObject(_Object);
      dartValue.forEach((k, v) {
        newMap[k] = convertToJs(v);
      });
      addDartInstance(newMap, dartValue);
      return newMap;
    } else if (dartValue is DateTime) {
      return new JsObject(_Date, [dartValue.millisecondsSinceEpoch]);
  
negative.code: }
  
  /// Adds a reference to the original dart instance to a js proxy object.
  void setDartInstance(JsObject jsObject, dartInstance) {
    assert(jsObject['__dartClass__'] == null);
    jsObject['__dartClass__'] = dartInstance;
  }
  