setImmediate
Emulates setImmediate for Chrome and Firefox
by francisfortier
JavaScript
if (!window.setImmediate)
{
window.setImmediate = (function() {
var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
var URL = window.URL || window.webkitURL;
var bb = new BlobBuilder();
bb.append('self.onmessage = function(e) { ' +
' for (var i = 0; i < e.data; i++) { ' +
' self.postMessage(i); ' +
' } ' +
'}');
var worker = new Worker(URL.createObjectURL(bb.getBlob("text/javascript")));
var callback;
worker.addEventListener("message", function(event) {
callback();
}, false);
return function(cb) {
callback = cb;
worker.postMessage(1);
}
})();
}
var z = 0;
var start = +new Date();
(function() {
if (z++ < 920)
{
setImmediate(arguments.callee);
}
else
{
alert((+new Date - start) / 1000);
}
})();