File tree Expand file tree Collapse file tree 2 files changed +21
-15
lines changed Expand file tree Collapse file tree 2 files changed +21
-15
lines changed Original file line number Diff line number Diff line change @@ -160,7 +160,7 @@ Socket.prototype.listen = function() {
160
160
161
161
162
162
Socket . prototype . setTimeout = function ( msecs , callback ) {
163
- if ( msecs > 0 ) {
163
+ if ( msecs > 0 && ! isNaN ( msecs ) && isFinite ( msecs ) ) {
164
164
timers . enroll ( this , msecs ) ;
165
165
timers . active ( this ) ;
166
166
if ( callback ) {
Original file line number Diff line number Diff line change @@ -33,18 +33,24 @@ var server = net.createServer(function(c) {
33
33
} ) ;
34
34
server . listen ( common . PORT ) ;
35
35
36
- var socket = net . createConnection ( common . PORT , 'localhost' ) ;
37
-
38
- socket . setTimeout ( T , function ( ) {
39
- socket . destroy ( ) ;
40
- server . close ( ) ;
41
- assert . ok ( false ) ;
36
+ var killers = [ 0 , Infinity , NaN ] ;
37
+
38
+ var left = killers . length ;
39
+ killers . forEach ( function ( killer ) {
40
+ var socket = net . createConnection ( common . PORT , 'localhost' ) ;
41
+
42
+ socket . setTimeout ( T , function ( ) {
43
+ socket . destroy ( ) ;
44
+ if ( -- left === 0 ) server . close ( ) ;
45
+ assert . ok ( killer !== 0 ) ;
46
+ clearTimeout ( timeout ) ;
47
+ } ) ;
48
+
49
+ socket . setTimeout ( killer ) ;
50
+
51
+ var timeout = setTimeout ( function ( ) {
52
+ socket . destroy ( ) ;
53
+ if ( -- left === 0 ) server . close ( ) ;
54
+ assert . ok ( killer === 0 ) ;
55
+ } , T * 2 ) ;
42
56
} ) ;
43
-
44
- socket . setTimeout ( 0 ) ;
45
-
46
- setTimeout ( function ( ) {
47
- socket . destroy ( ) ;
48
- server . close ( ) ;
49
- assert . ok ( true ) ;
50
- } , T * 2 ) ;
You can’t perform that action at this time.
0 commit comments