summaryrefslogtreecommitdiff
path: root/src/node_messaging.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_messaging.cc')
-rw-r--r--src/node_messaging.cc9
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