diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/web/13_message_port.js | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/extensions/web/13_message_port.js b/extensions/web/13_message_port.js index 50d3f5d04..1928409f2 100644 --- a/extensions/web/13_message_port.js +++ b/extensions/web/13_message_port.js @@ -60,7 +60,9 @@ * @returns {MessagePort} */ function createMessagePort(id) { - const port = webidl.createBranded(MessagePort); + const port = core.createHostObject(); + Object.setPrototypeOf(port, MessagePort.prototype); + port[webidl.brand] = webidl.brand; setEventTargetData(port); port[_id] = id; return port; @@ -187,7 +189,9 @@ } } - const data = core.deserialize(messageData.data); + const data = core.deserialize(messageData.data, { + hostObjects: transferables, + }); return [data, transferables]; } @@ -200,7 +204,7 @@ function serializeJsMessageData(data, tranferables) { let serializedData; try { - serializedData = core.serialize(data); + serializedData = core.serialize(data, { hostObjects: tranferables }); } catch (err) { throw new DOMException(err.message, "DataCloneError"); } |