anchor.diff:  
     }
   
  -  void uploadFile(FileProgress fileProgress, {void callback(String path):null, void progress(num pct):null}) {
  +  Future<Response<String>> uploadFile(FileProgress fileProgress, {void progress(num pct):null}) {
  +    var completer = new Completer();
       var reader = new FileReader();
       reader.onLoadEnd.listen((_) {
         fileProgress.previewPath = reader.result;
  
positive.code: 
    AJAXFileUploadStrategy() ;
  
    void uploadFile(FileProgress fileProgress, {void callback(String path):null, void progress(num pct):null}) {
      var formData = new FormData();
      formData.appendBlob("file", fileProgress.file, fileProgress.file.name);
      ajaxClient.callFunctionString("File.uploadFile(FILES['file'])", progress:progress, form_data:formData).then((JSONResponse response) {
  
negative.code:       }
        var c = (String path) {
          fileProgress.path = path;
          completer.complete(path);
  
        };
        c(response.type == Response.RESPONSE_TYPE_SUCCESS ? response.payload : null);
      });
      return completer.future;
  
    }
  
  
  