diff options
Diffstat (limited to 'src/node_messaging.cc')
-rw-r--r-- | src/node_messaging.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/node_messaging.cc b/src/node_messaging.cc index ba39d01dc3..79fa510ed7 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -714,6 +714,15 @@ void MessagePort::PostMessage(const FunctionCallbackInfo<Value>& args) { return THROW_ERR_MISSING_ARGS(env, "Not enough arguments to " "MessagePort.postMessage"); } + if (!args[1]->IsNullOrUndefined() && !args[1]->IsObject()) { + // Browsers ignore null or undefined, and otherwise accept an array or an + // options object. + // TODO(addaleax): Add support for an options object and generic sequence + // support. + // Refs: https://github.com/nodejs/node/pull/28033#discussion_r289964991 + return THROW_ERR_INVALID_ARG_TYPE(env, + "Optional transferList argument must be an array"); + } MessagePort* port = Unwrap<MessagePort>(args.This()); // Even if the backing MessagePort object has already been deleted, we still |