diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 9d17e670aec459..804d520497cf3a 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -824,11 +824,11 @@ BaseObjectPtr MessagePortData::Deserialize( } Maybe MessagePort::PostMessage(Environment* env, + Local context, Local message_v, const TransferList& transfer_v) { Isolate* isolate = env->isolate(); Local obj = object(isolate); - Local context = obj->CreationContext(); Message msg; @@ -970,7 +970,9 @@ void MessagePort::PostMessage(const FunctionCallbackInfo& args) { return; } - port->PostMessage(env, args[0], transfer_list); + Maybe res = port->PostMessage(env, context, args[0], transfer_list); + if (res.IsJust()) + args.GetReturnValue().Set(res.FromJust()); } void MessagePort::Start() { diff --git a/src/node_messaging.h b/src/node_messaging.h index 34215349343722..76fc2898430baa 100644 --- a/src/node_messaging.h +++ b/src/node_messaging.h @@ -181,6 +181,7 @@ class MessagePort : public HandleWrap { // If this port is closed, or if there is no sibling, this message is // serialized with transfers, then silently discarded. v8::Maybe PostMessage(Environment* env, + v8::Local context, v8::Local message, const TransferList& transfer);