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();
}
