6
6
7
7
mergeInto ( LibraryManager . library , {
8
8
// TODO: Generate these ID pools from a common utility.
9
- $wasmfsOPFSDirectories : {
9
+ $wasmfsOPFSDirectoryHandles : {
10
10
allocated : [ ] ,
11
11
free : [ ] ,
12
12
get : function ( i ) {
@@ -15,7 +15,7 @@ mergeInto(LibraryManager.library, {
15
15
}
16
16
} ,
17
17
18
- $wasmfsOPFSFiles : {
18
+ $wasmfsOPFSFileHandles : {
19
19
allocated : [ ] ,
20
20
free : [ ] ,
21
21
get : function ( i ) {
@@ -24,7 +24,7 @@ mergeInto(LibraryManager.library, {
24
24
}
25
25
} ,
26
26
27
- $wasmfsOPFSAccesses : {
27
+ $wasmfsOPFSAccessHandles : {
28
28
allocated : [ ] ,
29
29
free : [ ] ,
30
30
get : function ( i ) {
@@ -50,12 +50,12 @@ mergeInto(LibraryManager.library, {
50
50
ids . free . push ( id ) ;
51
51
} ,
52
52
53
- _wasmfs_opfs_init_root_directory__deps : [ '$wasmfsOPFSDirectories ' ] ,
53
+ _wasmfs_opfs_init_root_directory__deps : [ '$wasmfsOPFSDirectoryHandles ' ] ,
54
54
_wasmfs_opfs_init_root_directory : async function ( ctx ) {
55
- if ( wasmfsOPFSDirectories . allocated . length == 0 ) {
55
+ if ( wasmfsOPFSDirectoryHandles . allocated . length == 0 ) {
56
56
// Directory 0 is reserved as the root
57
57
let root = await navigator . storage . getDirectory ( ) ;
58
- wasmfsOPFSDirectories . allocated . push ( root ) ;
58
+ wasmfsOPFSDirectoryHandles . allocated . push ( root ) ;
59
59
}
60
60
_emscripten_proxy_finish ( ctx ) ;
61
61
} ,
@@ -68,10 +68,10 @@ mergeInto(LibraryManager.library, {
68
68
// -2: file exists but it is actually a directory.
69
69
// -3: file exists but an access handle cannot be created for it.
70
70
$wasmfsOPFSGetOrCreateFile__deps : [ '$wasmfsOPFSAllocate' ,
71
- '$wasmfsOPFSDirectories ' ,
72
- '$wasmfsOPFSFiles ' ] ,
71
+ '$wasmfsOPFSDirectoryHandles ' ,
72
+ '$wasmfsOPFSFileHandles ' ] ,
73
73
$wasmfsOPFSGetOrCreateFile : async function ( parent , name , create ) {
74
- let parentHandle = wasmfsOPFSDirectories . get ( parent ) ;
74
+ let parentHandle = wasmfsOPFSDirectoryHandles . get ( parent ) ;
75
75
let fileHandle ;
76
76
try {
77
77
fileHandle = await parentHandle . getFileHandle ( name , { create : create } ) ;
@@ -84,7 +84,7 @@ mergeInto(LibraryManager.library, {
84
84
}
85
85
throw e ;
86
86
}
87
- return wasmfsOPFSAllocate ( wasmfsOPFSFiles , fileHandle ) ;
87
+ return wasmfsOPFSAllocate ( wasmfsOPFSFileHandles , fileHandle ) ;
88
88
} ,
89
89
90
90
// Return the file ID for the directory with `name` under `parent`, creating
@@ -94,9 +94,9 @@ mergeInto(LibraryManager.library, {
94
94
// -1: directory does not exist.
95
95
// -2: directory exists but is actually a data file.
96
96
$wasmfsOPFSGetOrCreateDir__deps : [ '$wasmfsOPFSAllocate' ,
97
- '$wasmfsOPFSDirectories ' ] ,
97
+ '$wasmfsOPFSDirectoryHandles ' ] ,
98
98
$wasmfsOPFSGetOrCreateDir : async function ( parent , name , create ) {
99
- let parentHandle = wasmfsOPFSDirectories . get ( parent ) ;
99
+ let parentHandle = wasmfsOPFSDirectoryHandles . get ( parent ) ;
100
100
let childHandle ;
101
101
try {
102
102
childHandle =
@@ -110,7 +110,7 @@ mergeInto(LibraryManager.library, {
110
110
}
111
111
throw e ;
112
112
}
113
- return wasmfsOPFSAllocate ( wasmfsOPFSDirectories , childHandle ) ;
113
+ return wasmfsOPFSAllocate ( wasmfsOPFSDirectoryHandles , childHandle ) ;
114
114
} ,
115
115
116
116
_wasmfs_opfs_get_child__deps : [ '$wasmfsOPFSGetOrCreateFile' ,
@@ -131,7 +131,7 @@ mergeInto(LibraryManager.library, {
131
131
132
132
_wasmfs_opfs_get_entries__deps : [ ] ,
133
133
_wasmfs_opfs_get_entries : async function ( ctx , dirID , entries ) {
134
- let dirHandle = wasmfsOPFSDirectories . get ( dirID ) ;
134
+ let dirHandle = wasmfsOPFSDirectoryHandles . get ( dirID ) ;
135
135
136
136
// TODO: Use 'for await' once Acorn supports that.
137
137
let iter = dirHandle . entries ( ) ;
@@ -157,46 +157,49 @@ mergeInto(LibraryManager.library, {
157
157
} ,
158
158
159
159
_wasmfs_opfs_insert_directory__deps : [ '$wasmfsOPFSGetOrCreateDir' ] ,
160
- _wasmfs_opfs_insert_directory : async function ( ctx , parent , namePtr , childIDPtr ) {
160
+ _wasmfs_opfs_insert_directory :
161
+ async function ( ctx , parent , namePtr , childIDPtr ) {
161
162
let name = UTF8ToString ( namePtr ) ;
162
163
let childID = await wasmfsOPFSGetOrCreateDir ( parent , name , true ) ;
163
164
{ { { makeSetValue ( 'childIDPtr' , 0 , 'childID' , 'i32' ) } } } ;
164
165
_emscripten_proxy_finish ( ctx ) ;
165
166
} ,
166
167
167
- _wasmfs_opfs_move__deps : [ '$wasmfsOPFSFiles' , '$wasmfsOPFSDirectories' ] ,
168
+ _wasmfs_opfs_move__deps : [ '$wasmfsOPFSFileHandles' ,
169
+ '$wasmfsOPFSDirectoryHandles' ] ,
168
170
_wasmfs_opfs_move : async function ( ctx , fileID , newDirID , namePtr ) {
169
171
let name = UTF8ToString ( namePtr ) ;
170
- let fileHandle = wasmfsOPFSFiles . get ( fileID ) ;
171
- let newDirHandle = wasmfsOPFSDirectories . get ( newDirID ) ;
172
+ let fileHandle = wasmfsOPFSFileHandles . get ( fileID ) ;
173
+ let newDirHandle = wasmfsOPFSDirectoryHandles . get ( newDirID ) ;
172
174
await fileHandle . move ( newDirHandle , name ) ;
173
175
_emscripten_proxy_finish ( ctx ) ;
174
176
} ,
175
177
176
- _wasmfs_opfs_remove_child__deps : [ '$wasmfsOPFSFree' , '$wasmfsOPFSDirectories' ] ,
178
+ _wasmfs_opfs_remove_child__deps : [ '$wasmfsOPFSFree' ,
179
+ '$wasmfsOPFSDirectoryHandles' ] ,
177
180
_wasmfs_opfs_remove_child : async function ( ctx , dirID , namePtr ) {
178
181
let name = UTF8ToString ( namePtr ) ;
179
- let dirHandle = wasmfsOPFSDirectories . get ( dirID ) ;
182
+ let dirHandle = wasmfsOPFSDirectoryHandles . get ( dirID ) ;
180
183
await dirHandle . removeEntry ( name ) ;
181
184
_emscripten_proxy_finish ( ctx ) ;
182
185
} ,
183
186
184
- _wasmfs_opfs_free_file__deps : [ '$wasmfsOPFSFree' , '$wasmfsOPFSFiles ' ] ,
187
+ _wasmfs_opfs_free_file__deps : [ '$wasmfsOPFSFree' , '$wasmfsOPFSFileHandles ' ] ,
185
188
_wasmfs_opfs_free_file : function ( fileID ) {
186
- wasmfsOPFSFree ( wasmfsOPFSFiles , fileID ) ;
189
+ wasmfsOPFSFree ( wasmfsOPFSFileHandles , fileID ) ;
187
190
} ,
188
191
189
192
_wasmfs_opfs_free_directory__deps : [ '$wasmfsOPFSFree' ,
190
- '$wasmfsOPFSDirectories ' ] ,
193
+ '$wasmfsOPFSDirectoryHandles ' ] ,
191
194
_wasmfs_opfs_free_directory : function ( dirID ) {
192
- wasmfsOPFSFree ( wasmfsOPFSDirectories , dirID ) ;
195
+ wasmfsOPFSFree ( wasmfsOPFSDirectoryHandles , dirID ) ;
193
196
} ,
194
197
195
- _wasmfs_opfs_open__deps : [ '$wasmfsOPFSAllocate' ,
196
- '$wasmfsOPFSFiles ',
197
- '$wasmfsOPFSAccesses '] ,
198
- _wasmfs_opfs_open : async function ( ctx , fileID , accessIDPtr ) {
199
- let fileHandle = wasmfsOPFSFiles . get ( fileID ) ;
198
+ _wasmfs_opfs_open_access__deps : [ '$wasmfsOPFSAllocate' ,
199
+ '$wasmfsOPFSFileHandles ',
200
+ '$wasmfsOPFSAccessHandles '] ,
201
+ _wasmfs_opfs_open_access : async function ( ctx , fileID , accessIDPtr ) {
202
+ let fileHandle = wasmfsOPFSFileHandles . get ( fileID ) ;
200
203
let accessID ;
201
204
try {
202
205
let accessHandle ;
@@ -207,7 +210,7 @@ mergeInto(LibraryManager.library, {
207
210
accessHandle = await fileHandle . createSyncAccessHandle (
208
211
{ mode : "in-place" } ) ;
209
212
}
210
- accessID = wasmfsOPFSAllocate ( wasmfsOPFSAccesses , accessHandle ) ;
213
+ accessID = wasmfsOPFSAllocate ( wasmfsOPFSAccessHandles , accessHandle ) ;
211
214
} catch ( e ) {
212
215
if ( e . name === "InvalidStateError" ) {
213
216
accessID = - 1 ;
@@ -218,54 +221,55 @@ mergeInto(LibraryManager.library, {
218
221
_emscripten_proxy_finish ( ctx ) ;
219
222
} ,
220
223
221
- _wasmfs_opfs_close__deps : [ '$wasmfsOPFSFree' , '$wasmfsOPFSAccesses' ] ,
222
- _wasmfs_opfs_close : async function ( ctx , accessID ) {
223
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
224
+ _wasmfs_opfs_close_access__deps : [ '$wasmfsOPFSFree' ,
225
+ '$wasmfsOPFSAccessHandles' ] ,
226
+ _wasmfs_opfs_close_access : async function ( ctx , accessID ) {
227
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
224
228
await accessHandle . close ( ) ;
225
- wasmfsOPFSFree ( wasmfsOPFSAccesses , accessID ) ;
229
+ wasmfsOPFSFree ( wasmfsOPFSAccessHandles , accessID ) ;
226
230
_emscripten_proxy_finish ( ctx ) ;
227
231
} ,
228
232
229
- _wasmfs_opfs_read__deps : [ '$wasmfsOPFSAccesses ' ] ,
230
- _wasmfs_opfs_read : function ( accessID , bufPtr , len , pos ) {
231
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
233
+ _wasmfs_opfs_read_access__deps : [ '$wasmfsOPFSAccessHandles ' ] ,
234
+ _wasmfs_opfs_read_access : function ( accessID , bufPtr , len , pos ) {
235
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
232
236
let data = HEAPU8 . subarray ( bufPtr , bufPtr + len ) ;
233
237
return accessHandle . read ( data , { at : pos } ) ;
234
238
} ,
235
239
236
- _wasmfs_opfs_write__deps : [ '$wasmfsOPFSAccesses ' ] ,
237
- _wasmfs_opfs_write : function ( accessID , bufPtr , len , pos , nwrittenPtr ) {
238
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
240
+ _wasmfs_opfs_write_access__deps : [ '$wasmfsOPFSAccessHandles ' ] ,
241
+ _wasmfs_opfs_write_access : function ( accessID , bufPtr , len , pos , nwrittenPtr ) {
242
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
239
243
let data = HEAPU8 . subarray ( bufPtr , bufPtr + len ) ;
240
244
return accessHandle . write ( data , { at : pos } ) ;
241
245
} ,
242
246
243
- _wasmfs_opfs_get_size_access__deps : [ '$wasmfsOPFSAccesses ' ] ,
247
+ _wasmfs_opfs_get_size_access__deps : [ '$wasmfsOPFSAccessHandles ' ] ,
244
248
_wasmfs_opfs_get_size_access : async function ( ctx , accessID , sizePtr ) {
245
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
249
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
246
250
let size = await accessHandle . getSize ( ) ;
247
251
{ { { makeSetValue ( 'sizePtr' , 0 , 'size' , 'i32' ) } } } ;
248
252
_emscripten_proxy_finish ( ctx ) ;
249
253
} ,
250
254
251
- _wasmfs_opfs_get_size_blob__deps : [ '$wasmfsOPFSFiles ' ] ,
255
+ _wasmfs_opfs_get_size_blob__deps : [ '$wasmfsOPFSFileHandles ' ] ,
252
256
_wasmfs_opfs_get_size_blob : async function ( ctx , fileID , sizePtr ) {
253
- let fileHandle = wasmfsOPFSFiles . get ( fileID ) ;
257
+ let fileHandle = wasmfsOPFSFileHandles . get ( fileID ) ;
254
258
let size = ( await fileHandle . getFile ( ) ) . size ;
255
259
{ { { makeSetValue ( 'sizePtr' , 0 , 'size' , 'i32' ) } } } ;
256
260
_emscripten_proxy_finish ( ctx ) ;
257
261
} ,
258
262
259
- _wasmfs_opfs_set_size__deps : [ '$wasmfsOPFSAccesses ' ] ,
260
- _wasmfs_opfs_set_size : async function ( ctx , accessID , size ) {
261
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
263
+ _wasmfs_opfs_set_size_access__deps : [ '$wasmfsOPFSAccessHandles ' ] ,
264
+ _wasmfs_opfs_set_size_access : async function ( ctx , accessID , size ) {
265
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
262
266
await accessHandle . truncate ( size ) ;
263
267
_emscripten_proxy_finish ( ctx ) ;
264
268
} ,
265
269
266
- _wasmfs_opfs_flush__deps : [ '$wasmfsOPFSAccesses ' ] ,
267
- _wasmfs_opfs_flush : async function ( ctx , accessID ) {
268
- let accessHandle = wasmfsOPFSAccesses . get ( accessID ) ;
270
+ _wasmfs_opfs_flush_access__deps : [ '$wasmfsOPFSAccessHandles ' ] ,
271
+ _wasmfs_opfs_flush_access : async function ( ctx , accessID ) {
272
+ let accessHandle = wasmfsOPFSAccessHandles . get ( accessID ) ;
269
273
await accessHandle . flush ( ) ;
270
274
_emscripten_proxy_finish ( ctx ) ;
271
275
}
0 commit comments