anchor.diff:      if ((object is! Map) && (object is! Iterable)) {
         throw ArgumentError("object must be a Map or Iterable");
       }
  -    return _wrapToDart(_convertDataTree(object));
  +    return _castToJsObject(_wrapToDart(_convertDataTree(object)));
     }
   
     static _convertDataTree(Object data) {
  
positive.code:   }
  }
  
  JsObject _wrapToDart(o) {
    if (JS('bool', 'typeof # == "function"', o)) {
      return _getDartProxy(
          o, DART_CLOSURE_PROPERTY_NAME, (o) => JsFunction._fromJs(o));
  
negative.code: @patch
  JsObject get context => _context;
  
  final JsObject _context = _castToJsObject(_wrapToDart(JS('', 'self')));
  
  _convertDartFunction(Function f, {bool captureThis: false}) {
    return JS(
  