File tree Expand file tree Collapse file tree 2 files changed +11
-1
lines changed
Expand file tree Collapse file tree 2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -78,7 +78,7 @@ global.Worker = function Worker(url) {
7878 . then ( code => {
7979 let vars = 'var self=this,global=self' ;
8080 for ( let k in scope ) vars += `,${ k } =self.${ k } ` ;
81- getScopeVar = eval ( '(function() {' + vars + '\n' + code + '\nreturn function(__){return eval(__)}})' ) . call ( scope ) ;
81+ getScopeVar = eval ( '(function() {' + vars + '; \n' + code + '\nreturn function(__){return eval(__)}})' ) . call ( scope ) ;
8282 let q = messageQueue ;
8383 messageQueue = null ;
8484 q . forEach ( this . postMessage ) ;
Original file line number Diff line number Diff line change @@ -24,4 +24,14 @@ describe('jsdom-worker', () => {
2424 await sleep ( 10 ) ;
2525 expect ( worker . onmessage ) . toHaveBeenCalledWith ( { data : 'test' } ) ;
2626 } ) ;
27+
28+ it ( 'should work with IIFE' , async ( ) => {
29+ const n = Math . random ( ) ;
30+ const code = `(function(n){ onmessage = e => { postMessage(n) } })(${ n } )` ;
31+ const worker = new Worker ( URL . createObjectURL ( new Blob ( [ code ] ) ) ) ;
32+ worker . onmessage = jest . fn ( ) ;
33+ worker . postMessage ( ) ;
34+ await sleep ( 10 ) ;
35+ expect ( worker . onmessage ) . toHaveBeenCalledWith ( { data : n } ) ;
36+ } ) ;
2737} ) ;
You can’t perform that action at this time.
0 commit comments