
PASS Cannot transfer all objects 
FAIL Cannot transfer the same ArrayBuffer twice assert_throws: function "() => self.postMessage({ get whatever() { throw new Error("You should not have gotten to this point") } }, "*", transferList)" threw object "Error: You should not have gotten to this point" that is not a DOMException DataCloneError: property "code" is equal to undefined, expected 25
PASS Serialize should make the ArrayBuffer detached, so it cannot be transferred again 
FAIL Serialize should throw before a detached ArrayBuffer is found assert_throws: function "() => self.postMessage({ get whatever() { throw customError } }, "*", [transferable])" threw object "DataCloneError: The object can not be cloned." ("DataCloneError") expected object "Error: hi" ("Error")
FAIL Cannot transfer ArrayBuffer detached while the message was serialized assert_throws: function "() => self.postMessage(message, "*", [transferable])" threw object "TypeError: Type error" that is not a DOMException DataCloneError: property "code" is equal to undefined, expected 25
FAIL Cannot transfer the same MessagePort twice assert_throws: function "() => self.postMessage({ get whatever() { throw new Error("You should not have gotten to this point") } }, "*", transferList)" threw object "Error: You should not have gotten to this point" that is not a DOMException DataCloneError: property "code" is equal to undefined, expected 25
PASS Serialize should make the MessagePort detached, so it cannot be transferred again 
PASS Serialize should throw before a detached MessagePort is found 
PASS Cannot transfer MessagePort detached while the message was serialized 
PASS Cannot transfer the same ImageBitmap twice 
PASS Serialize should make the ImageBitmap detached, so it cannot be transferred again 
FAIL Serialize should throw before a detached ImageBitmap is found assert_throws: function "() => self.postMessage({ get whatever() { throw customError } }, "*", [transferable])" threw object "DataCloneError: The object can not be cloned." ("DataCloneError") expected object "Error: hi" ("Error")
FAIL Cannot transfer ImageBitmap detached while the message was serialized assert_throws: function "() => self.postMessage(message, "*", [transferable])" did not throw
PASS Cannot transfer the same OffscreenCanvas twice 
FAIL Serialize should make the OffscreenCanvas detached, so it cannot be transferred again promise_test: Unhandled rejection with value: object "DataCloneError: The object can not be cloned."
FAIL Serialize should throw before a detached OffscreenCanvas is found promise_test: Unhandled rejection with value: object "DataCloneError: The object can not be cloned."
FAIL Cannot transfer OffscreenCanvas detached while the message was serialized assert_true: expected true got false

