gecko-dev/dom/crypto/test/test-worker.js

50 строки
1001 B
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* eslint-env worker */
// This file expects utils.js to be included in its scope
/* import-globals-from ./util.js */
importScripts("util.js");
importScripts("test-vectors.js");
var window = this;
function finish(result) {
postMessage(result);
}
function complete(test, valid) {
return function(x) {
if (valid) {
finish(valid(x));
} else {
finish(true);
}
};
}
function memcmp_complete(test, value) {
return function(x) {
finish(util.memcmp(x, value));
};
}
function error(test) {
return function(x) {
throw x;
};
}
onmessage = function(msg) {
// eslint-disable-next-line no-eval
var test = eval("(" + msg.data + ")");
try {
test.call({complete: finish});
} catch (err) {
error(`Failed to run worker test: ${err}\n`);
}
};