mirror of
https://github.com/oven-sh/bun
synced 2026-02-16 05:42:43 +00:00
fix: overriding self.postMessage should not impact worker_threads.parentPort (#10496)
* fix a bug in worker * remove old
This commit is contained in:
15
test/js/node/worker_threads/worker-override-postMessage.js
Normal file
15
test/js/node/worker_threads/worker-override-postMessage.js
Normal file
@@ -0,0 +1,15 @@
|
||||
import { isMainThread, parentPort, workerData } from "worker_threads";
|
||||
|
||||
if (parentPort === null) throw new Error("worker_threads.parentPort is null");
|
||||
|
||||
if (isMainThread) throw new Error("worker_threads.isMainThread is wrong");
|
||||
|
||||
Object.assign(global, {
|
||||
postMessage: message => {
|
||||
parentPort.postMessage(message);
|
||||
},
|
||||
});
|
||||
|
||||
parentPort.on("message", m => {
|
||||
postMessage("Hello from worker!");
|
||||
});
|
||||
@@ -176,3 +176,13 @@ test("receiveMessageOnPort works as FIFO", () => {
|
||||
}).toThrow();
|
||||
}
|
||||
});
|
||||
|
||||
test("you can override globalThis.postMessage", async () => {
|
||||
const worker = new Worker(new URL("./worker-override-postMessage.js", import.meta.url).href);
|
||||
const message = await new Promise(resolve => {
|
||||
worker.on("message", resolve);
|
||||
worker.postMessage("Hello from worker!");
|
||||
});
|
||||
expect(message).toBe("Hello from worker!");
|
||||
await worker.terminate();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user