| function gc() | |
| { | |
| for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect) | |
| var s = new String("abc"); | |
| } | |
| } | |
| onmessage = function(evt) | |
| { | |
| gc(); | |
| if (evt.data == "ping") | |
| postMessage("pong"); | |
| else if (evt.data == "freeze") | |
| while (1) {} | |
| else if (evt.data == "close") | |
| close(); | |
| else if (/eval.+/.test(evt.data)) { | |
| try { | |
| postMessage(evt.data.substr(5) + ": " + eval(evt.data.substr(5))); | |
| } catch (ex) { | |
| postMessage(evt.data.substr(5) + ": " + ex); | |
| } | |
| } | |
| gc(); | |
| } |