function info(msg) {
  postMessage({type: 'info', msg: msg});
}

function ok(a, msg) {
  postMessage({type: 'check', what: !!a, msg: msg});
}

function finish() {
  postMessage({type: 'finish'});
}

info("Creating XHR...");
var xhr = new XMLHttpRequest();
xhr.open("POST", "echo.sjs");
xhr.responseType = 'arraybuffer';

info("Sending some data...");
var data = new Array(256).join("1234567890ABCDEF");
xhr.send({toString: function() { return data; }});

var aborted = false;

xhr.onprogress = function() {
  info("Onprogress, we abort!");
  aborted = true;
  xhr.abort();
}

xhr.onloadend = function() {
  ok(aborted, "We are still alive after an abort()!");
  finish();
}