|
24 | 24 | const{ |
25 | 25 | Array, |
26 | 26 | ArrayIsArray, |
| 27 | + ArrayPrototypePush, |
| 28 | + FunctionPrototypeBind, |
| 29 | + FunctionPrototypeCall, |
27 | 30 | ObjectDefineProperty, |
28 | 31 | ObjectSetPrototypeOf, |
| 32 | + ReflectApply, |
29 | 33 | }=primordials; |
30 | 34 |
|
31 | 35 | consterrors=require('internal/errors'); |
@@ -87,7 +91,7 @@ const exceptionWithHostPort = errors.exceptionWithHostPort; |
87 | 91 |
|
88 | 92 |
|
89 | 93 | functionSocket(type,listener){ |
90 | | -EventEmitter.call(this); |
| 94 | +FunctionPrototypeCall(EventEmitter,this); |
91 | 95 | letlookup; |
92 | 96 | letrecvBufferSize; |
93 | 97 | letsendBufferSize; |
@@ -220,8 +224,8 @@ Socket.prototype.bind = function(port_, address_ /* , callback */){ |
220 | 224 | } |
221 | 225 |
|
222 | 226 | functiononListening(){ |
223 | | -removeListeners.call(this); |
224 | | -cb.call(this); |
| 227 | +FunctionPrototypeCall(removeListeners,this); |
| 228 | +FunctionPrototypeCall(cb,this); |
225 | 229 | } |
226 | 230 |
|
227 | 231 | this.on('error',removeListeners); |
@@ -369,11 +373,12 @@ Socket.prototype.connect = function(port, address, callback){ |
369 | 373 | this.bind({port: 0,exclusive: true},null); |
370 | 374 |
|
371 | 375 | if(state.bindState!==BIND_STATE_BOUND){ |
372 | | -enqueue(this,_connect.bind(this,port,address,callback)); |
| 376 | +enqueue(this,FunctionPrototypeBind(_connect,this, |
| 377 | +port,address,callback)); |
373 | 378 | return; |
374 | 379 | } |
375 | 380 |
|
376 | | -_connect.call(this,port,address,callback); |
| 381 | +ReflectApply(_connect,this,[port,address,callback]); |
377 | 382 | }; |
378 | 383 |
|
379 | 384 |
|
@@ -498,13 +503,13 @@ function enqueue(self, toEnqueue){ |
498 | 503 | self.once(EventEmitter.errorMonitor,onListenError); |
499 | 504 | self.once('listening',onListenSuccess); |
500 | 505 | } |
501 | | -state.queue.push(toEnqueue); |
| 506 | +ArrayPrototypePush(state.queue,toEnqueue); |
502 | 507 | } |
503 | 508 |
|
504 | 509 |
|
505 | 510 | functiononListenSuccess(){ |
506 | 511 | this.removeListener(EventEmitter.errorMonitor,onListenError); |
507 | | -clearQueue.call(this); |
| 512 | +FunctionPrototypeCall(clearQueue,this); |
508 | 513 | } |
509 | 514 |
|
510 | 515 |
|
@@ -625,12 +630,13 @@ Socket.prototype.send = function(buffer, |
625 | 630 | this.bind({port: 0,exclusive: true},null); |
626 | 631 |
|
627 | 632 | if(list.length===0) |
628 | | -list.push(Buffer.alloc(0)); |
| 633 | +ArrayPrototypePush(list,Buffer.alloc(0)); |
629 | 634 |
|
630 | 635 | // If the socket hasn't been bound yet, push the outbound packet onto the |
631 | 636 | // send queue and send after binding is complete. |
632 | 637 | if(state.bindState!==BIND_STATE_BOUND){ |
633 | | -enqueue(this,this.send.bind(this,list,port,address,callback)); |
| 638 | +enqueue(this,FunctionPrototypeBind(this.send,this, |
| 639 | +list,port,address,callback)); |
634 | 640 | return; |
635 | 641 | } |
636 | 642 |
|
@@ -712,7 +718,7 @@ Socket.prototype.close = function(callback){ |
712 | 718 | this.on('close',callback); |
713 | 719 |
|
714 | 720 | if(queue!==undefined){ |
715 | | -queue.push(this.close.bind(this)); |
| 721 | +ArrayPrototypePush(queue,FunctionPrototypeBind(this.close,this)); |
716 | 722 | returnthis; |
717 | 723 | } |
718 | 724 |
|
|
0 commit comments