anchor.diff:        for (var key in keys) {
           dartMap[key] = dartValue(jsValue[key]);
         }
  +      _jsMapExpando[dartMap] = jsValue;
         addDartInstance(jsValue, dartMap);
         return dartMap;
       }
  
positive.code:     var dartList = getDartInstance(jsValue);
      if (dartList != null) return dartList;
      dartList = jsValue.map((item) => dartValue(item)).toList();
      addDartInstance(jsValue, dartList);
      return dartList;
    } else if (jsValue is JsFunction) {
  
negative.code:   JsObject get jsProxy;
  }
  
  Expando<JsArray> _jsArrayExpando = new Expando<JsArray>();
  Expando<JsObject> _jsMapExpando = new Expando<JsObject>();
  
  /// Converts a dart value to a js value, using proxies when possible.
  /// TODO(jakemac): Use expando to cache js arrays that mirror dart lists?
  