| Index: runtime/bin/socket.cc | 
| diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc | 
| index dcacf6ac34b1bb42783b03a8e1978a324dbdf84a..29b0ec7cd3e086274bfcd8a473c7a5e026ddc040 100644 | 
| --- a/runtime/bin/socket.cc | 
| +++ b/runtime/bin/socket.cc | 
| @@ -57,6 +57,25 @@ void FUNCTION_NAME(Socket_CreateConnect)(Dart_NativeArguments args) { | 
| } | 
|  | 
|  | 
| +void FUNCTION_NAME(Socket_CreateBindConnect)(Dart_NativeArguments args) { | 
| +  RawAddr addr; | 
| +  SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 1), &addr); | 
| +  Dart_Handle port_arg = Dart_GetNativeArgument(args, 2); | 
| +  int64_t port = DartUtils::GetInt64ValueCheckRange(port_arg, 0, 65535); | 
| +  RawAddr sourceAddr; | 
| +  SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 3), &sourceAddr); | 
| +  intptr_t socket = Socket::CreateBindConnect( | 
| +      addr, static_cast<intptr_t>(port), sourceAddr); | 
| +  OSError error; | 
| +  if (socket >= 0) { | 
| +    Socket::SetSocketIdNativeField(Dart_GetNativeArgument(args, 0), socket); | 
| +    Dart_SetReturnValue(args, Dart_True()); | 
| +  } else { | 
| +    Dart_SetReturnValue(args, DartUtils::NewDartOSError(&error)); | 
| +  } | 
| +} | 
| + | 
| + | 
| void FUNCTION_NAME(Socket_CreateBindDatagram)(Dart_NativeArguments args) { | 
| RawAddr addr; | 
| SocketAddress::GetSockAddr(Dart_GetNativeArgument(args, 1), &addr); | 
|  |