@@ -31,25 +31,26 @@ addToLibrary({
3131        try  { 
3232          var  u  =  new  URL ( fileUrl ,  self . location . origin ) ; 
3333          url  =  u . toString ( ) ; 
34-         }  catch  ( e )  { 
34+         }  catch  ( _e )  { 
35+           throw  { status : 404 } ; 
3536        } 
3637      } 
3738      var  chunkSize  =  __wasmfs_fetch_get_chunk_size ( file ) ; 
38-       offset  =   offset   ||  0 ; 
39+       offset  ??=  0 ; 
3940      len  =  len  ||  chunkSize ; 
4041      var  firstChunk  =  ( offset  /  chunkSize )  |  0 ; 
4142      var  lastChunk  =  ( ( offset + len )  /  chunkSize )  |  0 ; 
4243      if  ( ! ( file  in  wasmFS$JSMemoryRanges ) )  { 
4344        var  fileInfo  =  await  fetch ( url , { method :"HEAD" ,  headers :{ "Range" : "bytes=0-" } } ) ; 
44-         if ( fileInfo . ok  && 
45+         if   ( fileInfo . ok  && 
4546           fileInfo . headers . has ( "Content-Length" )  && 
4647           fileInfo . headers . get ( "Accept-Ranges" )  ==  "bytes"  && 
4748           ( parseInt ( fileInfo . headers . get ( "Content-Length" ) )  >  chunkSize * 2 ) )  { 
4849          wasmFS$JSMemoryRanges [ file ]  =  { size :parseInt ( fileInfo . headers . get ( "Content-Length" ) ) ,  chunks :[ ] ,  chunkSize :chunkSize } ; 
4950        }  else  { 
5051          // may as well/forced to download the whole file 
5152          var  wholeFileReq  =  await  fetch ( url ) ; 
52-           if ( ! wholeFileReq . ok )  { 
53+           if   ( ! wholeFileReq . ok )  { 
5354            throw  wholeFileReq ; 
5455          } 
5556          var  wholeFileData  =  new  Uint8Array ( await  wholeFileReq . arrayBuffer ( ) ) ; 
@@ -60,11 +61,11 @@ addToLibrary({
6061      } 
6162      var  allPresent  =  true ; 
6263      var  i ; 
63-       if ( lastChunk  *  chunkSize  <  offset + len )  { 
64+       if   ( lastChunk  *  chunkSize  <  offset + len )  { 
6465        lastChunk  +=  1 ; 
6566      } 
66-       for ( i  =  firstChunk ;  i  <  lastChunk ;  i ++ )  { 
67-         if ( ! wasmFS$JSMemoryRanges [ file ] . chunks [ i ] )  { 
67+       for   ( i  =  firstChunk ;  i  <  lastChunk ;  i ++ )  { 
68+         if   ( ! wasmFS$JSMemoryRanges [ file ] . chunks [ i ] )  { 
6869          allPresent  =  false ; 
6970          break ; 
7071        } 
@@ -78,14 +79,13 @@ addToLibrary({
7879      var  start  =  firstChunk * chunkSize ; 
7980      var  end  =  lastChunk * chunkSize ; 
8081      var  response  =  await  fetch ( url ,  { headers :{ "Range" : `bytes=${ start }  -${ end - 1 }  ` } } ) ; 
81-       if  ( response . ok )  { 
82-         var  bytes  =  new  Uint8Array ( await  response [ 'arrayBuffer' ] ( ) ) ; 
83-         for  ( i  =  firstChunk ;  i  <  lastChunk ;  i ++ )  { 
84-           wasmFS$JSMemoryRanges [ file ] . chunks [ i ]  =  bytes . slice ( i * chunkSize - start , ( i + 1 ) * chunkSize - start ) ; 
85-         } 
86-       }  else  { 
82+       if  ( ! response . ok )  { 
8783        throw  response ; 
8884      } 
85+       var  bytes  =  new  Uint8Array ( await  response [ 'arrayBuffer' ] ( ) ) ; 
86+       for  ( i  =  firstChunk ;  i  <  lastChunk ;  i ++ )  { 
87+         wasmFS$JSMemoryRanges [ file ] . chunks [ i ]  =  bytes . slice ( i * chunkSize - start , ( i + 1 ) * chunkSize - start ) ; 
88+       } 
8989      return  Promise . resolve ( ) ; 
9090    } 
9191
@@ -110,24 +110,21 @@ addToLibrary({
110110      read : async  ( file ,  buffer ,  length ,  offset )  =>  { 
111111        try  { 
112112          await  getFileRange ( file ,  offset  ||  0 ,  length ) ; 
113-         }  catch  ( response )  { 
114-           return  response . status  ===  404  ? - { { {  cDefs . ENOENT  } } }  : - { { {  cDefs. EBADF  } } } ; 
113+         }  catch  ( failedResponse )  { 
114+           return  failedResponse . status  ===  404  ? - { { {  cDefs . ENOENT  } } }  : - { { {  cDefs. EBADF  } } } ; 
115115        } 
116116        var  fileInfo  =  wasmFS$JSMemoryRanges [ file ] ; 
117117        var  fileData  =  fileInfo . chunks ; 
118118        var  chunkSize  =  fileInfo . chunkSize ; 
119119        var  firstChunk  =  ( offset  /  chunkSize )  |  0 ; 
120120        var  lastChunk  =  ( ( offset + length )  /  chunkSize )  |  0 ; 
121-         if ( offset  +  length  >  lastChunk  *  chunkSize )  { 
121+         if   ( offset  +  length  >  lastChunk  *  chunkSize )  { 
122122          lastChunk  +=  1 ; 
123123        } 
124124        var  readLength  =  0 ; 
125125        for  ( var  i  =  firstChunk ;  i  <  lastChunk ;  i ++ )  { 
126126          var  chunk =  fileData [ i ] ; 
127127          var  start  =  Math . max ( i * chunkSize ,  offset ) ; 
128-           if ( ! chunk )  { 
129-             throw  [ fileData . length ,  firstChunk ,  lastChunk ,  i ] ; 
130-           } 
131128          var  chunkStart  =  i * chunkSize ; 
132129          var  end  =  Math . min ( chunkStart + chunkSize ,  offset + length ) ; 
133130          HEAPU8 . set ( chunk . subarray ( start - chunkStart ,  end - chunkStart ) ,  buffer + ( start - offset ) ) ; 
@@ -138,7 +135,7 @@ addToLibrary({
138135      getSize : async  ( file )  =>  { 
139136        try  { 
140137          await  getFileRange ( file ,  0 ,  0 ) ; 
141-         }  catch  ( response )  { 
138+         }  catch  ( failedResponse )  { 
142139          return  0 ; 
143140        } 
144141        return  wasmFS$JSMemoryRanges [ file ] . size ; 
0 commit comments