mirror of
https://github.com/denoland/deno.git
synced 2024-10-31 09:14:20 -04:00
635253bd3a
This commit upgrade "Worker.postMessage()" implementation to use structured clone algorithm instead of non-spec compliant JSON serialization.
25 lines
653 B
JavaScript
25 lines
653 B
JavaScript
// See issue for details
|
|
// https://github.com/denoland/deno/issues/4080
|
|
//
|
|
// After first received message, this worker schedules
|
|
// [assert(), close(), assert()] ops on the same turn of microtask queue
|
|
// All tasks after close should not make it
|
|
|
|
onmessage = async function () {
|
|
let stage = 0;
|
|
await new Promise((_) => {
|
|
setTimeout(() => {
|
|
if (stage !== 0) throw "Unexpected stage";
|
|
stage = 1;
|
|
}, 50);
|
|
setTimeout(() => {
|
|
if (stage !== 1) throw "Unexpected stage";
|
|
stage = 2;
|
|
postMessage("DONE");
|
|
close();
|
|
}, 50);
|
|
setTimeout(() => {
|
|
throw "This should not be run";
|
|
}, 50);
|
|
});
|
|
};
|