|
14 | 14 | namespace node {
|
15 | 15 |
|
16 | 16 | using v8::Array;
|
| 17 | +using v8::Boolean; |
17 | 18 | using v8::Context;
|
18 | 19 | using v8::FunctionCallbackInfo;
|
19 | 20 | using v8::HandleScope;
|
@@ -56,6 +57,20 @@ int StreamBase::Shutdown(const FunctionCallbackInfo<Value>& args) {
|
56 | 57 | return Shutdown(req_wrap_obj);
|
57 | 58 | }
|
58 | 59 |
|
| 60 | +inline void SetWriteResultPropertiesOnWrapObject( |
| 61 | + Environment* env, |
| 62 | + Local<Object> req_wrap_obj, |
| 63 | + const StreamWriteResult& res, |
| 64 | + size_t bytes) { |
| 65 | + req_wrap_obj->Set( |
| 66 | + env->context(), |
| 67 | + env->bytes_string(), |
| 68 | + Number::New(env->isolate(), bytes)).FromJust(); |
| 69 | + req_wrap_obj->Set( |
| 70 | + env->context(), |
| 71 | + env->async(), |
| 72 | + Boolean::New(env->isolate(), res.async)).FromJust(); |
| 73 | +} |
59 | 74 |
|
60 | 75 | int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) {
|
61 | 76 | Environment* env = Environment::GetCurrent(args);
|
@@ -150,7 +165,7 @@ int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) {
|
150 | 165 | }
|
151 | 166 |
|
152 | 167 | StreamWriteResult res = Write(*bufs, count, nullptr, req_wrap_obj);
|
153 |
| - req_wrap_obj->Set(env->bytes_string(), Number::New(env->isolate(), bytes)); |
| 168 | + SetWriteResultPropertiesOnWrapObject(env, req_wrap_obj, res, bytes); |
154 | 169 | if (res.wrap != nullptr && storage) {
|
155 | 170 | res.wrap->SetAllocatedStorage(storage.release(), storage_size);
|
156 | 171 | }
|
@@ -178,9 +193,7 @@ int StreamBase::WriteBuffer(const FunctionCallbackInfo<Value>& args) {
|
178 | 193 |
|
179 | 194 | if (res.async)
|
180 | 195 | req_wrap_obj->Set(env->context(), env->buffer_string(), args[1]).FromJust();
|
181 |
| - req_wrap_obj->Set(env->context(), env->bytes_string(), |
182 |
| - Integer::NewFromUnsigned(env->isolate(), buf.len)) |
183 |
| - .FromJust(); |
| 196 | + SetWriteResultPropertiesOnWrapObject(env, req_wrap_obj, res, buf.len); |
184 | 197 |
|
185 | 198 | return res.err;
|
186 | 199 | }
|
@@ -286,10 +299,7 @@ int StreamBase::WriteString(const FunctionCallbackInfo<Value>& args) {
|
286 | 299 |
|
287 | 300 | StreamWriteResult res = Write(&buf, 1, send_handle, req_wrap_obj);
|
288 | 301 |
|
289 |
| - req_wrap_obj->Set(env->context(), env->bytes_string(), |
290 |
| - Integer::NewFromUnsigned(env->isolate(), data_size)) |
291 |
| - .FromJust(); |
292 |
| - |
| 302 | + SetWriteResultPropertiesOnWrapObject(env, req_wrap_obj, res, data_size); |
293 | 303 | if (res.wrap != nullptr) {
|
294 | 304 | res.wrap->SetAllocatedStorage(data.release(), data_size);
|
295 | 305 | }
|
|
0 commit comments