diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-08-25 21:48:58 +0200 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2019-09-06 06:12:47 +0200 |
commit | 72650bcf7283c7b9eb9df9154f981eabdf8c523a (patch) | |
tree | 771b2eb895d9cc0d72a9bbf2d99ef2fba2939722 /src/node_messaging.h | |
parent | 754d5a9375beecd95ab7f26de769259ee090e5f6 (diff) | |
download | android-node-v8-72650bcf7283c7b9eb9df9154f981eabdf8c523a.tar.gz android-node-v8-72650bcf7283c7b9eb9df9154f981eabdf8c523a.tar.bz2 android-node-v8-72650bcf7283c7b9eb9df9154f981eabdf8c523a.zip |
worker: make transfer list behave like web MessagePort
Allow generic iterables as transfer list arguments, as well
as an options object with a `transfer` option, for web compatibility.
PR-URL: https://github.com/nodejs/node/pull/29319
Refs: https://github.com/nodejs/node/pull/28033#discussion_r289964991
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/node_messaging.h')
-rw-r--r-- | src/node_messaging.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/node_messaging.h b/src/node_messaging.h index d9f25a95d7..054521b056 100644 --- a/src/node_messaging.h +++ b/src/node_messaging.h @@ -14,6 +14,8 @@ namespace worker { class MessagePortData; class MessagePort; +typedef MaybeStackBuffer<v8::Local<v8::Value>, 8> TransferList; + // Represents a single communication message. class Message : public MemoryRetainer { public: @@ -44,7 +46,7 @@ class Message : public MemoryRetainer { v8::Maybe<bool> Serialize(Environment* env, v8::Local<v8::Context> context, v8::Local<v8::Value> input, - v8::Local<v8::Value> transfer_list, + const TransferList& transfer_list, v8::Local<v8::Object> source_port = v8::Local<v8::Object>()); @@ -149,7 +151,7 @@ class MessagePort : public HandleWrap { // serialized with transfers, then silently discarded. v8::Maybe<bool> PostMessage(Environment* env, v8::Local<v8::Value> message, - v8::Local<v8::Value> transfer); + const TransferList& transfer); // Start processing messages on this port as a receiving end. void Start(); |