@@ -28,6 +28,11 @@ var CRLF = '\r\n';
2828var REQUEST = HTTPParser . REQUEST ;
2929var RESPONSE = HTTPParser . RESPONSE ;
3030
31+ var kOnHeaders = HTTPParser . kOnHeaders | 0 ;
32+ var kOnHeadersComplete = HTTPParser . kOnHeadersComplete | 0 ;
33+ var kOnBody = HTTPParser . kOnBody | 0 ;
34+ var kOnMessageComplete = HTTPParser . kOnMessageComplete | 0 ;
35+
3136// The purpose of this test is not to check HTTP compliance but to test the
3237// binding. Tests for pathological http messages should be submitted
3338// upstream to https://github.com/joyent/http-parser for inclusion into
@@ -40,19 +45,19 @@ function newParser(type) {
4045 parser . headers = [ ] ;
4146 parser . url = '' ;
4247
43- parser . onHeaders = function ( headers , url ) {
48+ parser [ kOnHeaders ] = function ( headers , url ) {
4449 parser . headers = parser . headers . concat ( headers ) ;
4550 parser . url += url ;
4651 } ;
4752
48- parser . onHeadersComplete = function ( info ) {
53+ parser [ kOnHeadersComplete ] = function ( info ) {
4954 } ;
5055
51- parser . onBody = function ( b , start , len ) {
56+ parser [ kOnBody ] = function ( b , start , len ) {
5257 assert . ok ( false , 'Function should not be called.' ) ;
5358 } ;
5459
55- parser . onMessageComplete = function ( ) {
60+ parser [ kOnMessageComplete ] = function ( ) {
5661 } ;
5762
5863 return parser ;
@@ -92,7 +97,7 @@ function expectBody(expected) {
9297
9398 var parser = newParser ( REQUEST ) ;
9499
95- parser . onHeadersComplete = mustCall ( function ( info ) {
100+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
96101 assert . equal ( info . method , 'GET' ) ;
97102 assert . equal ( info . url || parser . url , '/hello' ) ;
98103 assert . equal ( info . versionMajor , 1 ) ;
@@ -106,7 +111,7 @@ function expectBody(expected) {
106111 // thrown from parser.execute()
107112 //
108113
109- parser . onHeadersComplete = function ( info ) {
114+ parser [ kOnHeadersComplete ] = function ( info ) {
110115 throw new Error ( 'hello world' ) ;
111116 } ;
112117
@@ -131,14 +136,14 @@ function expectBody(expected) {
131136
132137 var parser = newParser ( RESPONSE ) ;
133138
134- parser . onHeadersComplete = mustCall ( function ( info ) {
139+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
135140 assert . equal ( info . method , undefined ) ;
136141 assert . equal ( info . versionMajor , 1 ) ;
137142 assert . equal ( info . versionMinor , 1 ) ;
138143 assert . equal ( info . statusCode , 200 ) ;
139144 } ) ;
140145
141- parser . onBody = mustCall ( function ( buf , start , len ) {
146+ parser [ kOnBody ] = mustCall ( function ( buf , start , len ) {
142147 var body = '' + buf . slice ( start , start + len ) ;
143148 assert . equal ( body , 'pong' ) ;
144149 } ) ;
@@ -157,7 +162,7 @@ function expectBody(expected) {
157162
158163 var parser = newParser ( RESPONSE ) ;
159164
160- parser . onHeadersComplete = mustCall ( function ( info ) {
165+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
161166 assert . equal ( info . method , undefined ) ;
162167 assert . equal ( info . versionMajor , 1 ) ;
163168 assert . equal ( info . versionMinor , 0 ) ;
@@ -194,16 +199,16 @@ function expectBody(expected) {
194199
195200 var parser = newParser ( REQUEST ) ;
196201
197- parser . onHeadersComplete = mustCall ( function ( info ) {
202+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
198203 assert . equal ( info . method , 'POST' ) ;
199204 assert . equal ( info . url || parser . url , '/it' ) ;
200205 assert . equal ( info . versionMajor , 1 ) ;
201206 assert . equal ( info . versionMinor , 1 ) ;
202207 // expect to see trailing headers now
203- parser . onHeaders = mustCall ( onHeaders ) ;
208+ parser [ kOnHeaders ] = mustCall ( onHeaders ) ;
204209 } ) ;
205210
206- parser . onBody = mustCall ( function ( buf , start , len ) {
211+ parser [ kOnBody ] = mustCall ( function ( buf , start , len ) {
207212 var body = '' + buf . slice ( start , start + len ) ;
208213 assert . equal ( body , 'ping' ) ;
209214 seen_body = true ;
@@ -226,7 +231,7 @@ function expectBody(expected) {
226231
227232 var parser = newParser ( REQUEST ) ;
228233
229- parser . onHeadersComplete = mustCall ( function ( info ) {
234+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
230235 assert . equal ( info . method , 'GET' ) ;
231236 assert . equal ( info . versionMajor , 1 ) ;
232237 assert . equal ( info . versionMinor , 0 ) ;
@@ -255,7 +260,7 @@ function expectBody(expected) {
255260
256261 var parser = newParser ( REQUEST ) ;
257262
258- parser . onHeadersComplete = mustCall ( function ( info ) {
263+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
259264 assert . equal ( info . method , 'GET' ) ;
260265 assert . equal ( info . url || parser . url , '/foo/bar/baz?quux=42#1337' ) ;
261266 assert . equal ( info . versionMajor , 1 ) ;
@@ -287,14 +292,14 @@ function expectBody(expected) {
287292
288293 var parser = newParser ( REQUEST ) ;
289294
290- parser . onHeadersComplete = mustCall ( function ( info ) {
295+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
291296 assert . equal ( info . method , 'POST' ) ;
292297 assert . equal ( info . url || parser . url , '/it' ) ;
293298 assert . equal ( info . versionMajor , 1 ) ;
294299 assert . equal ( info . versionMinor , 1 ) ;
295300 } ) ;
296301
297- parser . onBody = mustCall ( function ( buf , start , len ) {
302+ parser [ kOnBody ] = mustCall ( function ( buf , start , len ) {
298303 var body = '' + buf . slice ( start , start + len ) ;
299304 assert . equal ( body , 'foo=42&bar=1337' ) ;
300305 } ) ;
@@ -322,7 +327,7 @@ function expectBody(expected) {
322327
323328 var parser = newParser ( REQUEST ) ;
324329
325- parser . onHeadersComplete = mustCall ( function ( info ) {
330+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
326331 assert . equal ( info . method , 'POST' ) ;
327332 assert . equal ( info . url || parser . url , '/it' ) ;
328333 assert . equal ( info . versionMajor , 1 ) ;
@@ -337,7 +342,7 @@ function expectBody(expected) {
337342 assert . equal ( body , body_parts [ body_part ++ ] ) ;
338343 }
339344
340- parser . onBody = mustCall ( onBody , body_parts . length ) ;
345+ parser [ kOnBody ] = mustCall ( onBody , body_parts . length ) ;
341346 parser . execute ( request , 0 , request . length ) ;
342347} ) ( ) ;
343348
@@ -358,7 +363,7 @@ function expectBody(expected) {
358363
359364 var parser = newParser ( REQUEST ) ;
360365
361- parser . onHeadersComplete = mustCall ( function ( info ) {
366+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
362367 assert . equal ( info . method , 'POST' ) ;
363368 assert . equal ( info . url || parser . url , '/it' ) ;
364369 assert . equal ( info . versionMajor , 1 ) ;
@@ -375,7 +380,7 @@ function expectBody(expected) {
375380 assert . equal ( body , body_parts [ body_part ++ ] ) ;
376381 }
377382
378- parser . onBody = mustCall ( onBody , body_parts . length ) ;
383+ parser [ kOnBody ] = mustCall ( onBody , body_parts . length ) ;
379384 parser . execute ( request , 0 , request . length ) ;
380385
381386 request = Buffer (
@@ -415,7 +420,7 @@ function expectBody(expected) {
415420 function test ( a , b ) {
416421 var parser = newParser ( REQUEST ) ;
417422
418- parser . onHeadersComplete = mustCall ( function ( info ) {
423+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
419424 assert . equal ( info . method , 'POST' ) ;
420425 assert . equal ( info . url || parser . url , '/helpme' ) ;
421426 assert . equal ( info . versionMajor , 1 ) ;
@@ -424,7 +429,7 @@ function expectBody(expected) {
424429
425430 var expected_body = '123123456123456789123456789ABC123456789ABCDEF' ;
426431
427- parser . onBody = function ( buf , start , len ) {
432+ parser [ kOnBody ] = function ( buf , start , len ) {
428433 var chunk = '' + buf . slice ( start , start + len ) ;
429434 assert . equal ( expected_body . indexOf ( chunk ) , 0 ) ;
430435 expected_body = expected_body . slice ( chunk . length ) ;
@@ -471,7 +476,7 @@ function expectBody(expected) {
471476
472477 var parser = newParser ( REQUEST ) ;
473478
474- parser . onHeadersComplete = mustCall ( function ( info ) {
479+ parser [ kOnHeadersComplete ] = mustCall ( function ( info ) {
475480 assert . equal ( info . method , 'POST' ) ;
476481 assert . equal ( info . url || parser . url , '/it' ) ;
477482 assert . equal ( info . versionMajor , 1 ) ;
@@ -483,7 +488,7 @@ function expectBody(expected) {
483488
484489 var expected_body = '123123456123456789123456789ABC123456789ABCDEF' ;
485490
486- parser . onBody = function ( buf , start , len ) {
491+ parser [ kOnBody ] = function ( buf , start , len ) {
487492 var chunk = '' + buf . slice ( start , start + len ) ;
488493 assert . equal ( expected_body . indexOf ( chunk ) , 0 ) ;
489494 expected_body = expected_body . slice ( chunk . length ) ;
@@ -538,12 +543,12 @@ function expectBody(expected) {
538543 } ;
539544
540545 var parser = newParser ( REQUEST ) ;
541- parser . onHeadersComplete = onHeadersComplete1 ;
542- parser . onBody = expectBody ( 'ping' ) ;
546+ parser [ kOnHeadersComplete ] = onHeadersComplete1 ;
547+ parser [ kOnBody ] = expectBody ( 'ping' ) ;
543548 parser . execute ( req1 , 0 , req1 . length ) ;
544549
545550 parser . reinitialize ( REQUEST ) ;
546- parser . onBody = expectBody ( 'pong' ) ;
547- parser . onHeadersComplete = onHeadersComplete2 ;
551+ parser [ kOnBody ] = expectBody ( 'pong' ) ;
552+ parser [ kOnHeadersComplete ] = onHeadersComplete2 ;
548553 parser . execute ( req2 , 0 , req2 . length ) ;
549554} ) ( ) ;
0 commit comments