Test that the second argument of window.postMessage is ignored or triggers an error if it is not a message port. You should see PASS message '1' through '7', followed by 'done', with messages 4-7 received below.


PASS Posting message ('1', 1): threw exception TypeError: Failed to execute 'postMessage' on 'Window': The 3rd argument is neither an array, nor does it have indexed properties.
PASS Posting message ('2', c): threw exception TypeError: Failed to execute 'postMessage' on 'Window': The 3rd argument is neither an array, nor does it have indexed properties.
PASS Posting message ('3', [object Object]): threw exception TypeError: Failed to execute 'postMessage' on 'Window': The 3rd argument is neither an array, nor does it have indexed properties.
PASS Posting message ('4', [object Window]) did not throw an exception
PASS Posting message ('5', undefined) did not throw an exception
PASS Posting message ('5a', null): threw exception TypeError: Failed to execute 'postMessage' on 'Window': The 3rd argument is neither an array, nor does it have indexed properties.
PASS Posting message ('6', undefined) did not throw an exception
PASS Posting message ('7', [object MessagePort],[object MessagePort]) did not throw an exception
PASS Posting message ('7', [object MessagePort],[object MessagePort]) did not throw an exception
PASS Posting message ('2147483648', undefined) did not throw an exception
PASS Posting message ('2147483648', null): threw exception TypeError: Failed to execute 'postMessage' on 'Window': The 3rd argument is neither an array, nor does it have indexed properties.
PASS Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
PASS Posting message ('[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
PASS Posting message ('[object MessagePort],[object MessagePort]', [object MessagePort],[object MessagePort]) did not throw an exception
PASS Posting message ('data', [object MessagePort],[object MessagePort]): threw exception DataCloneError: Failed to execute 'postMessage' on 'Window': Port at index 0 is already neutered.
PASS Posting message ('[object MessagePort],[object MessagePort]', ): threw exception DataCloneError: Failed to execute 'postMessage' on 'Window': A MessagePort could not be cloned.
PASS Posting message ('[object ArrayBuffer]', [object ArrayBuffer]) did not throw an exception
PASS arrayBuffer neutered
PASS view neutered
PASS Posting message ('[object ArrayBuffer]', ): threw exception DataCloneError: Failed to execute 'postMessage' on 'Window': An ArrayBuffer is neutered and could not be cloned.
PASS Posting message ('data', [object ArrayBuffer]): threw exception DataCloneError: Failed to execute 'postMessage' on 'Window': ArrayBuffer at index 0 is already neutered.
PASS Posting message ('', ): threw exception DataCloneError: Failed to execute 'postMessage' on 'Window': An ArrayBuffer is neutered and could not be cloned.
PASS Posting message ('data', ): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 does not have a transferable type.
PASS Posting message ('data', [object Object]): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 is an untransferable 'undefined' value.
PASS Posting message ('data', 1,,2): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 does not have a transferable type.
PASS Posting message ('data', ,function () { [native code] }): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 is an untransferable 'null' value.
PASS window.postMessage() threw exception TypeError: Failed to execute 'postMessage' on 'Window': 2 arguments required, but only 0 present..
PASS window.postMessage('a') threw exception TypeError: Failed to execute 'postMessage' on 'Window': 2 arguments required, but only 1 present..
PASS Posting message ('done', undefined) did not throw an exception
Received message '4' with 0 ports.
Received message '5' with 0 ports.
Received message '6' with 0 ports.
Received message '7' with 2 ports.
Received message '7' with 2 ports.
Received message '2147483648' with 0 ports.
Received message '[object MessagePort]' with 2 ports.
Received message '[object MessagePort]' with 2 ports.
Received message '[object MessagePort],[object MessagePort]' with 2 ports.
Received message '[object ArrayBuffer]' with 0 ports.
Received message 'done' with 0 ports.
PASS successfullyParsed is true

TEST COMPLETE

