<!DOCTYPE html> <html> <body> <p>Test setTimeOut,fired in decreasing order in Web Workers.</p> <div id="result"></div> <script type="text/javascript"> function log(message) { document.getElementById("result").innerHTML += message + "</br>"; } if (window.testRunner) { testRunner.dumpAsText(); testRunner.waitUntilDone(); } var worker = new Worker('resources/worker-timeout-decreasing-order.js'); // Start the first test of settimeout's var lastTestResult = 0; var testCounterLimit = 3; var timerLimit = 3; var testStarted = false; var testAlreadyFailed = false; worker.postMessage("TS"); worker.onmessage = function(evt) { if(testStarted) { var currentNum = evt.data; if(lastTestResult == currentNum - 1 && !testAlreadyFailed) { lastTestResult = currentNum; --timerLimit; // we got all the results in order if(lastTestResult == testCounterLimit && timerLimit == 0) log("PASS: Timeouts executed in order."); } else { testAlreadyFailed = true; --timerLimit; if(timerLimit == 0) log("FAIL: Timeouts executed out of order."); } } if(evt.data == "Test started.") { log(evt.data); testStarted = true; } if (evt.data == "DONE") { log("DONE."); if (window.testRunner) testRunner.notifyDone(); } } </script> </body> </html>