tc39-weakrefs-shim
Version:
Shim for TC39 Weakrefs proposal
16 lines • 639 B
JavaScript
import makeTaskQueue from "./taskQueue.js";
export const available = typeof MessageChannel == "function";
export function shim() {
if (!available)
throw new Error("MessageChannel not available");
function register(immediateId) {
channel.port2.postMessage(immediateId);
return true;
}
const { set, clear, process } = makeTaskQueue(register, true);
const channel = new MessageChannel();
channel.port1.addEventListener("message", (event) => process(event.data));
channel.port1.start();
return { setImmediate: set, clearImmediate: clear };
}
//# sourceMappingURL=setImmediate.shim.js.map