OK, so contrary to my last post, this is still happening. We left Safari alive overnight (with no developer tools active) and it crashed with an "out of memory" error on line 657. I know this will not tie up with your own line numbers as it is just my beautified version of your minified script, but here it is anyway. I hope it provides a clue:
Line 657 says
for (0 >= j.length && (k = 0); 0 < n.length :Smile_Ad: a = n.shift(), a.WY = m + a.tt, a.Bt = k++, j.push(a)
and appears here
define("lsi", ["lsr", "lss", "lsc", "lsa", "lsda"], function (g, e, d, c, h) {
function b(a, k) {
return a.WY == k.WY ? a.Bt - k.Bt : a.WY - k.WY
}
function a() {
l && clearInterval(l);
l = setInterval(i, f);
c.Ts() && "undefined" != typeof postMessage && d.addEvent("message", function (a) {
if ("Lightstreamer.run" == a.data && "*" == p || a.origin == p) o = !1, i()
}, !0)
}
function i() {
if (e.jT) clearInterval(l);
else {
m = g.gf();
if (0 < j.length) {
j.sort(b);
for (var a; 0 < j.length && j[0].WY <= m && !e.jT :Smile_Ad: a = j.shift(), a.Zp && (y.af(a),
a.tt && n.push(a))
}
for (0 >= j.length && (k = 0); 0 < n.length :Smile_Ad: a = n.shift(), a.WY = m + a.tt, a.Bt = k++, j.push(a)
}
}
var f = 50,
j = [],
m = g.gf(),
n = [],
l = null,
o = !1,
k = 0,
p = c.Ts() && "file:" != document.location.protocol ? document.location.protocol + "//" + document.location.hostname + (document.location.port ? ":" + document.location.port : "") : "*",
u = h.Wi(h.EXECUTOR),
y = {
toString: function () {
return ["[|Executor", f, j.length, "]"].join("|")
},
hO: function () {
o || (o = !0, c.Ts() && "undefined" != typeof postMessage && window.postMessage("Lightstreamer.run", p))
},
dO: function () {
return j.length
},
aN: function (a, b, i) {
return {
Zp: a,
so: b || null,
vs: i || null,
Bt: k++
}
},
um: function (a, k, b) {
a.tt = b ? k : null;
a.WY = m + parseInt(k);
if (isNaN(a.WY)) throw "lsi error time: " + a.WY;
j.push(a)
},
pk: function (a, k, b, i) {
return this.vb(a, k, b, i, !0)
},
nO: function (a) {
a && (a.Zp = null, a.tt = null)
},
vb: function (a, k, b, i, c) {
a = this.aN(a, b, i);
this.um(a, k, c);
0 == k && this.hO();
return a
},
Vk: function (a, k, b) {
a.vs[k] = b
},
VB: function (a, k) {
a.vs = k
},
Rl: function (a, k) {
a.WY += k
},
af: function (a, k) {
try {
var b = k || a.vs;
a.so ? b ? a.Zp.apply(a.so,
b) : a.Zp.apply(a.so) : b ? a.Zp.apply(null, b) : a.Zp()
} catch (i) {
b = null;
try {
b = a.Zp.name || a.Zp.toString()
} catch (c) {}
u.ZV(h.Wu(283), i, b)
}
}
};
c.bx() ? setTimeout(a, 1) : a();
return y
});