Unclamp setTimeout in Safari

Fixes #2008

wrapping setTimeout in postMessage is a trade-off between
* slowdown due to postMessage (slow on Safari)
* speedup due to no setTimeout clamping (can be severe on Safari)
This commit is contained in:
David Császár
2024-09-01 09:41:41 +02:00
parent 1c74356691
commit acc777c267

View File

@@ -2,7 +2,8 @@ getJasmineRequireObj().clearStack = function(j$) {
const maxInlineCallCount = 10;
function browserQueueMicrotaskImpl(global) {
const { setTimeout, queueMicrotask } = global;
const unclampedSetTimeout = getUnclampedSetTimeout(global);
const { queueMicrotask } = global;
let currentCallCount = 0;
return function clearStack(fn) {
currentCallCount++;
@@ -11,7 +12,7 @@ getJasmineRequireObj().clearStack = function(j$) {
queueMicrotask(fn);
} else {
currentCallCount = 0;
setTimeout(fn);
unclampedSetTimeout(fn);
}
};
}