зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1821563 - Do not create a promise from an uncatchable exception r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D172654
This commit is contained in:
Родитель
ec1af0401e
Коммит
35fe8e091d
|
@ -35,6 +35,10 @@ MOZ_CAN_RUN_SCRIPT static already_AddRefed<Promise> PromisifyAlgorithm(
|
|||
aFunc(aRv);
|
||||
}
|
||||
|
||||
if (aRv.IsUncatchableException()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (aRv.Failed()) {
|
||||
return Promise::CreateRejectedWithErrorResult(aGlobal, aRv);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="test-wait">
|
||||
<script id="workerScript" type="text/worker">
|
||||
// Blob will pass a huge Uint8Array object whose stringification will take long
|
||||
const encoder = new TextEncoderStream()
|
||||
const blob = new Blob([new ArrayBuffer(1338720)])
|
||||
const writable = new WritableStream()
|
||||
blob.stream().pipeThrough(encoder).pipeTo(writable)
|
||||
// Wait a bit for the piping to start
|
||||
Promise.resolve().then(() => postMessage('started'));
|
||||
</script>
|
||||
<script>
|
||||
const worker = new Worker(URL.createObjectURL(new Blob([
|
||||
document.getElementById("workerScript").textContent
|
||||
])))
|
||||
worker.onmessage = () => {
|
||||
worker.terminate();
|
||||
document.documentElement.classList.remove("test-wait");
|
||||
};
|
||||
</script>
|
Загрузка…
Ссылка в новой задаче