anchor.diff:    }
   }
   
  -JsObject _wrapToDart(o) {
  +Object _wrapToDart(o) {
     if (JS('bool', 'typeof # == "function"', o)) {
       return _getDartProxy(
           o, DART_CLOSURE_PROPERTY_NAME, (o) => JsFunction._fromJs(o));
  
positive.code: 
  // converts a Dart object to a reference to a native JS object
  // which might be a DartObject JS->Dart proxy
  Object _convertToDart(o) {
    if (JS('bool', '# == null', o) ||
        JS('bool', 'typeof # == "string"', o) ||
        JS('bool', 'typeof # == "number"', o) ||
  
negative.code:     if ((object is! Map) && (object is! Iterable)) {
        throw ArgumentError("object must be a Map or Iterable");
      }
      return _castToJsObject(_wrapToDart(_convertDataTree(object)));
    }
  
    static _convertDataTree(Object data) {
  