mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-03 07:01:19 +00:00
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:
parent
ec1af0401e
commit
35fe8e091d
@ -35,6 +35,10 @@ MOZ_CAN_RUN_SCRIPT static already_AddRefed<Promise> PromisifyAlgorithm(
|
|||||||
aFunc(aRv);
|
aFunc(aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (aRv.IsUncatchableException()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return Promise::CreateRejectedWithErrorResult(aGlobal, aRv);
|
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>
|
Loading…
x
Reference in New Issue
Block a user