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