Channel_postMessage_ports_readonly_array.any.js (862B)
1 // META: title=postMessage(): read-only ports array 2 3 "use strict"; 4 5 var TargetPort = null; 6 var description = "The postMessage() method - Make new ports into a read only array."; 7 8 var t = async_test("Test Description: " + description); 9 10 var channel = new MessageChannel(); 11 12 TargetPort = channel.port2; 13 TargetPort.start(); 14 TargetPort.addEventListener("message", t.step_func(TestMessageEvent), true); 15 16 var channel2 = new MessageChannel(); 17 18 channel.port1.postMessage("ports", [channel2.port1]); 19 20 function TestMessageEvent(evt) 21 { 22 var channel3 = new MessageChannel(); 23 assert_throws_js(TypeError, () => { 24 evt.ports.push(channel3.port1); 25 }, "ports is a frozen object"); 26 assert_equals(evt.ports.length, 1, "ports is a read only array with length == 1."); 27 t.done(); 28 }