зеркало из https://github.com/mozilla/gecko-dev.git
51 строка
1.1 KiB
JavaScript
51 строка
1.1 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
var seenScopeError;
|
|
onerror = function(message, filename, lineno) {
|
|
if (!seenScopeError) {
|
|
seenScopeError = true;
|
|
postMessage({
|
|
type: "scope",
|
|
data: { message: message, filename: filename, lineno: lineno }
|
|
});
|
|
return true;
|
|
}
|
|
};
|
|
|
|
onmessage = function(event) {
|
|
var workerId = parseInt(event.data);
|
|
|
|
if (workerId > 1) {
|
|
var worker = new Worker("errorPropagation_worker.js");
|
|
|
|
worker.onmessage = function(event) {
|
|
postMessage(event.data);
|
|
};
|
|
|
|
var seenWorkerError;
|
|
worker.onerror = function(event) {
|
|
if (!seenWorkerError) {
|
|
seenWorkerError = true;
|
|
postMessage({
|
|
type: "worker",
|
|
data: {
|
|
message: event.message,
|
|
filename: event.filename,
|
|
lineno: event.lineno
|
|
}
|
|
});
|
|
event.preventDefault();
|
|
}
|
|
};
|
|
|
|
worker.postMessage(workerId - 1);
|
|
return;
|
|
}
|
|
|
|
var interval = setInterval(function() {
|
|
throw new Error("expectedError");
|
|
}, 100);
|
|
};
|