<!DOCTYPE html>
<script src="../resources/js-test.js"></script>
<script src="../resources/wasm-builder.js"></script>
<script src="./resources/load_wasm.js"></script>
<script>
description("Test that expected Wasm Module can be sent over window.parent.postMessage from iframe.");
if (window.testRunner)
    testRunner.waitUntilDone();

function finish(value) {
    shouldBe(() => value, () => 35010);

    if (window.testRunner)
        testRunner.notifyDone();
}

window.addEventListener("message", value =>  run(), { once:true }, false);

var run = async function () {
    try {
        window.addEventListener("message", (answer) => finish(answer.data), false);
        var mod = await createWasmModule();
        var iframe = document.getElementById("iframe").contentWindow;
        iframe.postMessage(mod, '*');
    } catch (e) {
        console.log('error:', e);
    }
};
</script>
<iframe src="./resources/frame-parent.html" id="iframe"></iframe>