<body>
<p>A basic test for JS execution on secondary threads. Passes if the browser didn't crash.</p>
<div id=result></div>
<script>
function log(message)
{
    document.getElementById("result").innerHTML += message + "<br>";
}

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

var worker1 = new Worker('resources/stress-js-execution.js');
var worker2 = new Worker('resources/stress-js-execution.js');

worker1.onmessage = function(evt) {
    log(evt.data);
}

worker2.onmessage = worker1.onmessage;

setTimeout("log('DONE'); if (window.testRunner) testRunner.notifyDone();", 1000);

</script>
</body>
</html>
