anchor.diff:      _file.callMethod("remove", [
         () {
           ret.complete({});
  +      },
  +      (b) {
  +        ret.completeError(b);
  +      }
  +    ]);
  +    return ret.future;
  +  }
  +
  +  Future<hetima.WriteResult> truncate(int length) {
  +    Completer<hetima.WriteResult> ret = new Completer();
  +    _file.callMethod("createWriter", [
  +      (a) {
  +        js.JsObject _writer = a;
  +        try {
  +          _writer.callMethod("truncate", [length]);
  +        } catch (e) {
  +          ret.completeError(e);
  +        }
         },
         (b) {
           ret.completeError(b);
  
positive.code:         _writer = a;
          print("writer ${_writer} ${_writer.runtimeType}");
          _writer["onwrite"] = (d) {
          //  print("####[Z]");
            print("onwrite ${d}");
            _writer["abort"];
            ret.complete(new hetima.WriteResult());
          };
          
          _writer["onerror"] = (d) {
          //  print("####[Z]");
            print("onerror ${d}");
            _writer["abort"];
            ret.completeError({});
  
negative.code:     _mBlob = blob;
    }
  
    Future<hetima.WriteResult> write(Object o, int start, [int length = null]) {
      if (o is List<int> && !(o is type.Uint8List)) {
        o = new type.Uint8List.fromList(o);
      }
  