diff options
Diffstat (limited to 'testing/web-platform/tests/webmessaging/Channel_postMessage_ports_readonly_array.any.js')
-rw-r--r-- | testing/web-platform/tests/webmessaging/Channel_postMessage_ports_readonly_array.any.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webmessaging/Channel_postMessage_ports_readonly_array.any.js b/testing/web-platform/tests/webmessaging/Channel_postMessage_ports_readonly_array.any.js new file mode 100644 index 0000000000..032a54e710 --- /dev/null +++ b/testing/web-platform/tests/webmessaging/Channel_postMessage_ports_readonly_array.any.js @@ -0,0 +1,28 @@ +// META: title=postMessage(): read-only ports array + + "use strict"; + + var TargetPort = null; + var description = "The postMessage() method - Make new ports into a read only array."; + + var t = async_test("Test Description: " + description); + + var channel = new MessageChannel(); + + TargetPort = channel.port2; + TargetPort.start(); + TargetPort.addEventListener("message", t.step_func(TestMessageEvent), true); + + var channel2 = new MessageChannel(); + + channel.port1.postMessage("ports", [channel2.port1]); + + function TestMessageEvent(evt) + { + var channel3 = new MessageChannel(); + assert_throws_js(TypeError, () => { + evt.ports.push(channel3.port1); + }, "ports is a frozen object"); + assert_equals(evt.ports.length, 1, "ports is a read only array with length == 1."); + t.done(); + } |