Refactor: extract postMessage

This commit is contained in:
David Császár
2024-09-01 09:31:52 +02:00
parent 66eb27b0af
commit bbebea0fa5

View File

@@ -25,6 +25,23 @@ getJasmineRequireObj().clearStack = function(j$) {
}
function messageChannelImpl(global) {
const { setTimeout } = global;
const postMessage = getPostMessage(global);
let currentCallCount = 0;
return function clearStack(fn) {
currentCallCount++;
if (currentCallCount < maxInlineCallCount) {
postMessage(fn);
} else {
currentCallCount = 0;
setTimeout(fn);
}
};
}
function getPostMessage(global) {
const { MessageChannel, setTimeout } = global;
const channel = new MessageChannel();
let head = {};
@@ -48,17 +65,9 @@ getJasmineRequireObj().clearStack = function(j$) {
}
};
let currentCallCount = 0;
return function clearStack(fn) {
currentCallCount++;
if (currentCallCount < maxInlineCallCount) {
tail = tail.next = { task: fn };
channel.port2.postMessage(0);
} else {
currentCallCount = 0;
setTimeout(fn);
}
return function postMessage(fn) {
tail = tail.next = { task: fn };
channel.port2.postMessage(0);
};
}