/**
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
onmessage =
function (event) {
const url = event.data;
var xhr =
new XMLHttpRequest();
xhr.open(
"GET" , url,
false );
xhr.send();
const refText = xhr.responseText;
function getResponse(type) {
xhr =
new XMLHttpRequest();
xhr.open(
"GET" , url,
false );
if (type !== undefined) {
xhr.responseType = type;
}
xhr.send();
return xhr.response;
}
if (getResponse() != refText) {
throw new Error(
"unset responseType failed" );
}
if (getResponse(
"" ) != refText) {
throw new Error(
"'' responseType failed" );
}
if (getResponse(
"text" ) != refText) {
throw new Error(
"'text' responseType failed" );
}
var array =
new Uint8Array(getResponse(
"arraybuffer" ));
if (String.fromCharCode.apply(String, array) != refText) {
throw new Error(
"'arraybuffer' responseType failed" );
}
var blob = getResponse(
"blob" );
if (
new FileReaderSync().readAsText(blob) != refText) {
throw new Error(
"'blob' responseType failed" );
}
// Make sure that we get invalid state exceptions when getting the wrong
// property.
function testResponseTextException(type) {
xhr =
new XMLHttpRequest();
xhr.open(
"GET" , url,
false );
xhr.responseType = type;
xhr.send();
var exception;
try {
xhr.responseText;
}
catch (e) {
exception = e;
}
if (!exception) {
throw new Error(
"Failed to throw when getting responseText on '" + type +
"' type"
);
}
if (exception.name !=
"InvalidStateError" ) {
throw new Error(
"Unexpected error when getting responseText on '" + type +
"' type"
);
}
if (exception.code != DOMException.INVALID_STATE_ERR) {
throw new Error(
"Unexpected error code when getting responseText on '" + type +
"' type"
);
}
}
testResponseTextException(
"arraybuffer" );
testResponseTextException(
"blob" );
// Make sure "document" works, but returns text.
xhr =
new XMLHttpRequest();
if (xhr.responseType !=
"" ) {
throw new Error(
"Default value for responseType is wrong!" );
}
xhr.open(
"GET" , url,
false );
xhr.responseType =
"document" ;
xhr.send();
if (xhr.responseText != refText) {
throw new Error(
"'document' type not working correctly" );
}
postMessage(
"done" );
};
Messung V0.5 C=97 H=95 G=95
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland