| OLD | NEW |
| 1 description("This test checks the various use cases around sending multiple port
s through Worker.postMessage"); | 1 description("This test checks the various use cases around sending multiple port
s through Worker.postMessage"); |
| 2 | 2 |
| 3 if (window.testRunner) { | 3 if (window.testRunner) { |
| 4 testRunner.dumpAsText(); | 4 testRunner.dumpAsText(); |
| 5 testRunner.waitUntilDone(); | 5 testRunner.waitUntilDone(); |
| 6 } | 6 } |
| 7 | 7 |
| 8 var channel = new MessageChannel(); | 8 var channel = new MessageChannel(); |
| 9 var channel2 = new MessageChannel(); | 9 var channel2 = new MessageChannel(); |
| 10 var channel3 = new MessageChannel(); | 10 var channel3 = new MessageChannel(); |
| 11 var channel4 = new MessageChannel(); | 11 var channel4 = new MessageChannel(); |
| 12 | 12 |
| 13 var worker = new Worker("resources/worker-thread-multi-port.js"); | 13 var worker = new Worker("resources/worker-thread-multi-port.js"); |
| 14 worker.postMessage("noargs"); |
| 14 worker.postMessage("noport"); | 15 worker.postMessage("noport"); |
| 15 worker.postMessage("zero ports", []); | 16 worker.postMessage("zero ports", []); |
| 16 worker.postMessage("two ports", [channel2.port1, channel2.port2]); | 17 worker.postMessage("two ports", [channel2.port1, channel2.port2]); |
| 17 | 18 |
| 18 // Now test various failure cases | 19 // Now test various failure cases |
| 20 shouldThrow("worker.postMessage()"); |
| 19 shouldThrow('worker.postMessage("null port", [channel3.port1, null, channel3.por
t2])'); | 21 shouldThrow('worker.postMessage("null port", [channel3.port1, null, channel3.por
t2])'); |
| 20 shouldThrow('worker.postMessage("notAPort", [channel3.port1, {}, channel3.port2]
)'); | 22 shouldThrow('worker.postMessage("notAPort", [channel3.port1, {}, channel3.port2]
)'); |
| 21 // Should be OK to send channel3.port1/2 (should not have been disentangled by t
he previous failed calls). | 23 // Should be OK to send channel3.port1/2 (should not have been disentangled by t
he previous failed calls). |
| 22 worker.postMessage("failed ports", [channel3.port1, channel3.port2]); | 24 worker.postMessage("failed ports", [channel3.port1, channel3.port2]); |
| 23 | 25 |
| 24 shouldThrow('worker.postMessage("notAnArray", channel3.port1)') | 26 shouldThrow('worker.postMessage("notAnArray", channel3.port1)') |
| 25 shouldThrow('worker.postMessage("notASequence", [{length: 3}])'); | 27 shouldThrow('worker.postMessage("notASequence", [{length: 3}])'); |
| 26 | 28 |
| 27 worker.postMessage("done", [channel.port2]); | 29 worker.postMessage("done", [channel.port2]); |
| 28 worker.onmessage = function(event) { | 30 worker.onmessage = function(event) { |
| 29 // Report results from worker thread. | 31 // Report results from worker thread. |
| 30 if (event.data == "done") | 32 if (event.data == "done") |
| 31 channel.port1.onmessage = done; | 33 channel.port1.onmessage = done; |
| 32 else if (event.data.indexOf("PASS") == 0) | 34 else if (event.data.indexOf("PASS") == 0) |
| 33 testPassed(event.data.substring(4)); | 35 testPassed(event.data.substring(4)); |
| 34 else if (event.data.indexOf("FAIL") == 0) | 36 else if (event.data.indexOf("FAIL") == 0) |
| 35 testFailed(event.data.substring(4)); | 37 testFailed(event.data.substring(4)); |
| 36 else | 38 else |
| 37 testFailed("Unexpected result: " + event.data); | 39 testFailed("Unexpected result: " + event.data); |
| 38 } | 40 } |
| 39 | |
| OLD | NEW |