@@ -25,7 +25,10 @@ var merge = require('utils-merge');
25
25
var resolve = require ( 'path' ) . resolve ;
26
26
var once = require ( 'once' )
27
27
var Router = require ( 'router' ) ;
28
+ var setPrototypeUntil = require ( './setPrototypeUntil' )
28
29
var setPrototypeOf = require ( 'setprototypeof' )
30
+ var resProto = require ( './response' )
31
+ var reqProto = require ( './request' )
29
32
30
33
/**
31
34
* Module variables.
@@ -117,8 +120,6 @@ app.defaultConfiguration = function defaultConfiguration() {
117
120
}
118
121
119
122
// inherit protos
120
- setPrototypeOf ( this . request , parent . request )
121
- setPrototypeOf ( this . response , parent . response )
122
123
setPrototypeOf ( this . engines , parent . engines )
123
124
setPrototypeOf ( this . settings , parent . settings )
124
125
} ) ;
@@ -168,8 +169,8 @@ app.handle = function handle(req, res, callback) {
168
169
res . req = req ;
169
170
170
171
// alter the prototypes
171
- setPrototypeOf ( req , this . request )
172
- setPrototypeOf ( res , this . response )
172
+ setPrototypeUntil ( req , this . request , reqProto )
173
+ setPrototypeUntil ( res , this . response , resProto )
173
174
174
175
// setup locals
175
176
if ( ! res . locals ) {
@@ -232,8 +233,8 @@ app.use = function use(fn) {
232
233
router . use ( path , function mounted_app ( req , res , next ) {
233
234
var orig = req . app ;
234
235
fn . handle ( req , res , function ( err ) {
235
- setPrototypeOf ( req , orig . request )
236
- setPrototypeOf ( res , orig . response )
236
+ setPrototypeUntil ( req , orig . request )
237
+ setPrototypeUntil ( res , orig . response )
237
238
next ( err ) ;
238
239
} ) ;
239
240
} ) ;
0 commit comments