@@ -390,8 +390,9 @@ MaybeLocal<Object> AddressToJS(Environment* env, |
390 | 390 |
|
391 | 391 | int port; |
392 | 392 |
|
393 | | - if (info.IsEmpty()) |
| 393 | + if (info.IsEmpty()) { |
394 | 394 | info = Object::New(env->isolate()); |
| 395 | + } |
395 | 396 |
|
396 | 397 | switch (addr->sa_family) { |
397 | 398 | case AF_INET6: |
@@ -413,32 +414,45 @@ MaybeLocal<Object> AddressToJS(Environment* env, |
413 | 414 | } |
414 | 415 | } |
415 | 416 | port = ntohs(a6->sin6_port); |
416 | | - info->Set(env->context(), |
417 | | - env->address_string(), |
418 | | - OneByteString(env->isolate(), ip)).Check(); |
419 | | - info->Set(env->context(), env->family_string(), env->ipv6_string()).Check(); |
420 | | - info->Set(env->context(), |
421 | | - env->port_string(), |
422 | | - Integer::New(env->isolate(), port)).Check(); |
| 417 | + if (info->Set(env->context(), |
| 418 | + env->address_string(), |
| 419 | + OneByteString(env->isolate(), ip)) |
| 420 | + .IsNothing() || |
| 421 | + info->Set(env->context(), env->family_string(), env->ipv6_string()) |
| 422 | + .IsNothing() || |
| 423 | + info->Set(env->context(), |
| 424 | + env->port_string(), |
| 425 | + Integer::New(env->isolate(), port)) |
| 426 | + .IsNothing()) { |
| 427 | + return {}; |
| 428 | + } |
423 | 429 | break; |
424 | 430 |
|
425 | 431 | case AF_INET: |
426 | 432 | a4 = reinterpret_cast<const sockaddr_in*>(addr); |
427 | 433 | uv_inet_ntop(AF_INET, &a4->sin_addr, ip, sizeof ip); |
428 | 434 | port = ntohs(a4->sin_port); |
429 | | - info->Set(env->context(), |
430 | | - env->address_string(), |
431 | | - OneByteString(env->isolate(), ip)).Check(); |
432 | | - info->Set(env->context(), env->family_string(), env->ipv4_string()).Check(); |
433 | | - info->Set(env->context(), |
434 | | - env->port_string(), |
435 | | - Integer::New(env->isolate(), port)).Check(); |
| 435 | + if (info->Set(env->context(), |
| 436 | + env->address_string(), |
| 437 | + OneByteString(env->isolate(), ip)) |
| 438 | + .IsNothing() || |
| 439 | + info->Set(env->context(), env->family_string(), env->ipv4_string()) |
| 440 | + .IsNothing() || |
| 441 | + info->Set(env->context(), |
| 442 | + env->port_string(), |
| 443 | + Integer::New(env->isolate(), port)) |
| 444 | + .IsNothing()) { |
| 445 | + return {}; |
| 446 | + } |
436 | 447 | break; |
437 | 448 |
|
438 | 449 | default: |
439 | | - info->Set(env->context(), |
440 | | - env->address_string(), |
441 | | - String::Empty(env->isolate())).Check(); |
| 450 | + if (info->Set(env->context(), |
| 451 | + env->address_string(), |
| 452 | + String::Empty(env->isolate())) |
| 453 | + .IsNothing()) { |
| 454 | + return {}; |
| 455 | + } |
442 | 456 | } |
443 | 457 |
|
444 | 458 | return scope.Escape(info); |
|