<!DOCTYPE html>
<html>
<head>
<title> postMessage(): read-only ports array </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<script>

    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();
        evt.ports.push(channel3.port1);
        evt.ports.push(channel3.port1);

        assert_equals(evt.ports.length, 1, "ports is a read only array with length == 1.");
        t.done();
    }
</script>
</body>
</html>
