@@ -90,9 +90,7 @@ export function trustedReplaceXhrResponse(source, pattern = '', replacement = ''
9090 const nativeOpen = window . XMLHttpRequest . prototype . open ;
9191 const nativeSend = window . XMLHttpRequest . prototype . send ;
9292
93- let shouldReplace = false ;
9493 let xhrData ;
95- let requestHeaders = [ ] ;
9694
9795 const openWrapper = ( target , thisArg , args ) => {
9896 // eslint-disable-next-line prefer-spread
@@ -106,13 +104,16 @@ export function trustedReplaceXhrResponse(source, pattern = '', replacement = ''
106104 return Reflect . apply ( target , thisArg , args ) ;
107105 }
108106
109- shouldReplace = matchRequestProps ( source , propsToMatch , xhrData ) ;
107+ if ( matchRequestProps ( source , propsToMatch , xhrData ) ) {
108+ thisArg . shouldBePrevented = true ;
109+ }
110110
111111 // Trap setRequestHeader of target xhr object to mimic request headers later
112- if ( shouldReplace ) {
112+ if ( thisArg . shouldBePrevented ) {
113+ thisArg . collectedHeaders = [ ] ;
113114 const setRequestHeaderWrapper = ( target , thisArg , args ) => {
114115 // Collect headers
115- requestHeaders . push ( args ) ;
116+ thisArg . collectedHeaders . push ( args ) ;
116117 return Reflect . apply ( target , thisArg , args ) ;
117118 } ;
118119
@@ -129,7 +130,7 @@ export function trustedReplaceXhrResponse(source, pattern = '', replacement = ''
129130 } ;
130131
131132 const sendWrapper = ( target , thisArg , args ) => {
132- if ( ! shouldReplace ) {
133+ if ( ! thisArg . shouldBePrevented ) {
133134 return Reflect . apply ( target , thisArg , args ) ;
134135 }
135136
@@ -197,13 +198,13 @@ export function trustedReplaceXhrResponse(source, pattern = '', replacement = ''
197198
198199 // Mimic request headers before sending
199200 // setRequestHeader can only be called on open request objects
200- requestHeaders . forEach ( ( header ) => {
201+ thisArg . collectedHeaders . forEach ( ( header ) => {
201202 const name = header [ 0 ] ;
202203 const value = header [ 1 ] ;
203204
204205 forgedRequest . setRequestHeader ( name , value ) ;
205206 } ) ;
206- requestHeaders = [ ] ;
207+ thisArg . collectedHeaders = [ ] ;
207208
208209 try {
209210 nativeSend . call ( forgedRequest , args ) ;
0 commit comments