anchor.diff:  library clienr.parse;
   
   import "dart:async";
  +import "dart:html";
   import "dart:js" as js;
   
   /**
  
positive.code:  */
  Future downloadMsg(msgId) {
    Completer cmpl = new Completer();
    var ok = (response) => cmpl.complete(response);
    var fail = (error) => cmpl.completeError(error);
    
    js.context.callMethod('downloadMsg', [msgId, ok, fail]);
    return cmpl.future;
  }
negative.code:  * @param  {func}    onFailure function(string errmsg)
   * @return {void}
   */
  Future uploadMsg(String sendname, String sendemail, String recvname, String recvemail, bool isFile, File content, String filename) {
    Completer cmpl = new Completer();
    var ok = (response) => cmpl.complete(response);
    var fail = (error) => cmpl.completeError(error);
    
    js.context.callMethod('uploadMsg', [sendname, sendemail, recvname, recvemail, isFile, content, filename, ok, fail]);
    return cmpl.future;
  }
  
  