diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 9c854df7a3d1f3..d5ef67b15cbd55 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -1627,10 +1627,15 @@ static void MessageChannel(const FunctionCallbackInfo& args) { MessagePort::Entangle(port1, port2); - args.This()->Set(context, env->port1_string(), port1->object()) - .Check(); - args.This()->Set(context, env->port2_string(), port2->object()) - .Check(); + if (args.This() + ->Set(context, env->port1_string(), port1->object()) + .IsNothing() || + args.This() + ->Set(context, env->port2_string(), port2->object()) + .IsNothing()) { + port1->Close(); + port2->Close(); + } } static void BroadcastChannel(const FunctionCallbackInfo& args) { diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index d80de135c26b1e..5201371dc29e65 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -390,8 +390,9 @@ MaybeLocal AddressToJS(Environment* env, int port; - if (info.IsEmpty()) + if (info.IsEmpty()) { info = Object::New(env->isolate()); + } switch (addr->sa_family) { case AF_INET6: @@ -413,32 +414,45 @@ MaybeLocal AddressToJS(Environment* env, } } port = ntohs(a6->sin6_port); - info->Set(env->context(), - env->address_string(), - OneByteString(env->isolate(), ip)).Check(); - info->Set(env->context(), env->family_string(), env->ipv6_string()).Check(); - info->Set(env->context(), - env->port_string(), - Integer::New(env->isolate(), port)).Check(); + if (info->Set(env->context(), + env->address_string(), + OneByteString(env->isolate(), ip)) + .IsNothing() || + info->Set(env->context(), env->family_string(), env->ipv6_string()) + .IsNothing() || + info->Set(env->context(), + env->port_string(), + Integer::New(env->isolate(), port)) + .IsNothing()) { + return {}; + } break; case AF_INET: a4 = reinterpret_cast(addr); uv_inet_ntop(AF_INET, &a4->sin_addr, ip, sizeof ip); port = ntohs(a4->sin_port); - info->Set(env->context(), - env->address_string(), - OneByteString(env->isolate(), ip)).Check(); - info->Set(env->context(), env->family_string(), env->ipv4_string()).Check(); - info->Set(env->context(), - env->port_string(), - Integer::New(env->isolate(), port)).Check(); + if (info->Set(env->context(), + env->address_string(), + OneByteString(env->isolate(), ip)) + .IsNothing() || + info->Set(env->context(), env->family_string(), env->ipv4_string()) + .IsNothing() || + info->Set(env->context(), + env->port_string(), + Integer::New(env->isolate(), port)) + .IsNothing()) { + return {}; + } break; default: - info->Set(env->context(), - env->address_string(), - String::Empty(env->isolate())).Check(); + if (info->Set(env->context(), + env->address_string(), + String::Empty(env->isolate())) + .IsNothing()) { + return {}; + } } return scope.Escape(info); diff --git a/src/tty_wrap.cc b/src/tty_wrap.cc index d2bd9c383abea4..f43a4c81f5d7d1 100644 --- a/src/tty_wrap.cc +++ b/src/tty_wrap.cc @@ -100,8 +100,12 @@ void TTYWrap::GetWindowSize(const FunctionCallbackInfo& args) { if (err == 0) { Local a = args[0].As(); - a->Set(env->context(), 0, Integer::New(env->isolate(), width)).Check(); - a->Set(env->context(), 1, Integer::New(env->isolate(), height)).Check(); + if (a->Set(env->context(), 0, Integer::New(env->isolate(), width)) + .IsNothing() || + a->Set(env->context(), 1, Integer::New(env->isolate(), height)) + .IsNothing()) { + return; + } } args.GetReturnValue().Set(err);