@@ -3,44 +3,47 @@ var WasmfsLibrary = {
3
3
$wasmFS$JSMemoryFreeList : [ ] ,
4
4
$wasmFS$preloadedFiles : [ ] ,
5
5
$wasmFS$preloadedDirs : [ ] ,
6
- $FS__deps : [ '$wasmFS$preloadedFiles' , '$wasmFS$preloadedDirs' , '$wasmFS$JSMemoryFiles' , '$wasmFS$JSMemoryFreeList' ] ,
6
+ $FS__deps : [
7
+ '$wasmFS$preloadedFiles' ,
8
+ '$wasmFS$preloadedDirs' ,
9
+ '$wasmFS$JSMemoryFiles' ,
10
+ '$wasmFS$JSMemoryFreeList' ,
11
+ '$asyncLoad' ,
12
+ // TODO: when preload-plugins are not used, we do not need this.
13
+ '$Browser' ,
14
+ ] ,
7
15
$FS : {
8
16
// TODO: Clean up the following functions - currently copied from library_fs.js directly.
9
17
createPreloadedFile : function ( parent , name , url , canRead , canWrite , onload , onerror , dontCreateFile , canOwn , preFinish ) {
10
- Browser . init ( ) ;
11
- var fullname = name ? PATH_FS . resolve ( PATH . join2 ( parent , name ) ) : parent ;
12
- var dep = getUniqueRunDependency ( 'cp ' + fullname ) ; // might have several active requests for the same fullname
13
- function processData ( byteArray ) {
14
- function finish ( byteArray ) {
15
- if ( preFinish ) preFinish ( ) ;
16
- if ( ! dontCreateFile ) {
17
- FS . createDataFile ( parent , name , byteArray , canRead , canWrite , canOwn ) ;
18
- }
19
- if ( onload ) onload ( ) ;
20
- removeRunDependency ( dep ) ;
18
+ // TODO: use WasmFS code to resolve and join the path here?
19
+ var fullname = name ? parent + '/' + name : parent ;
20
+ var dep = getUniqueRunDependency ( 'cp ' + fullname ) ; // might have several active requests for the same fullname
21
+ function processData ( byteArray ) {
22
+ function finish ( byteArray ) {
23
+ if ( preFinish ) preFinish ( ) ;
24
+ if ( ! dontCreateFile ) {
25
+ FS . createDataFile ( parent , name , byteArray , canRead , canWrite , canOwn ) ;
21
26
}
22
- var handled = false ;
23
- Module [ 'preloadPlugins' ] . forEach ( function ( plugin ) {
24
- if ( handled ) return ;
25
- if ( plugin [ 'canHandle' ] ( fullname ) ) {
26
- plugin [ 'handle' ] ( byteArray , fullname , finish , function ( ) {
27
- if ( onerror ) onerror ( ) ;
28
- removeRunDependency ( dep ) ;
29
- } ) ;
30
- handled = true ;
31
- }
32
- } ) ;
33
- if ( ! handled ) finish ( byteArray ) ;
27
+ if ( onload ) onload ( ) ;
28
+ removeRunDependency ( dep ) ;
34
29
}
35
- addRunDependency ( dep ) ;
36
- if ( typeof url == 'string' ) {
37
- asyncLoad ( url , function ( byteArray ) {
38
- processData ( byteArray ) ;
39
- } , onerror ) ;
40
- } else {
41
- processData ( url ) ;
30
+ if ( Browser . handledByPreloadPlugin ( byteArray , fullname , finish , function ( ) {
31
+ if ( onerror ) onerror ( ) ;
32
+ removeRunDependency ( dep ) ;
33
+ } ) ) {
34
+ return ;
42
35
}
43
- } ,
36
+ finish ( byteArray ) ;
37
+ }
38
+ addRunDependency ( dep ) ;
39
+ if ( typeof url == 'string' ) {
40
+ asyncLoad ( url , function ( byteArray ) {
41
+ processData ( byteArray ) ;
42
+ } , onerror ) ;
43
+ } else {
44
+ processData ( url ) ;
45
+ }
46
+ } ,
44
47
getMode : function ( canRead , canWrite ) {
45
48
var mode = 0 ;
46
49
if ( canRead ) mode |= { { { cDefine ( 'S_IRUGO' ) } } } | { { { cDefine ( 'S_IXUGO' ) } } } ;
0 commit comments