<!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>
    "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();
    }
</script>
</body>
</html>
