@@ -229,7 +229,8 @@ var WasiLibrary = {
229229 }
230230 return ret ;
231231 } ,
232- #else
232+ #endif
233+ #if ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS
233234 // MEMFS filesystem disabled lite handling of stdout and stderr:
234235 $printCharBuffers : [ null , [ ] , [ ] ] , // 1 => stdout, 2 => stderr
235236 $printCharBuffers__internal : true ,
@@ -247,11 +248,9 @@ var WasiLibrary = {
247248 buffer . push ( curr ) ;
248249 }
249250 } ,
250- #endif // SYSCALLS_REQUIRE_FILESYSTEM
251+ #endif
251252
252- #if SYSCALLS_REQUIRE_FILESYSTEM
253- fd_write__deps : [ '$doWritev' ] ,
254- #elif ( ! MINIMAL_RUNTIME || EXIT_RUNTIME )
253+ #if ( ( ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS ) && ( ! MINIMAL_RUNTIME || EXIT_RUNTIME ) )
255254 $flush_NO_FILESYSTEM__deps : [ '$printChar' , '$printCharBuffers' ] ,
256255 $flush_NO_FILESYSTEM : ( ) = > {
257256 // flush anything remaining in the buffers during shutdown
@@ -261,17 +260,37 @@ var WasiLibrary = {
261260 if ( printCharBuffers [ 1 ] . length ) printChar ( 1 , { { { charCode ( "\n" ) } } } ) ;
262261 if ( printCharBuffers [ 2 ] . length ) printChar ( 2 , { { { charCode ( "\n" ) } } } ) ;
263262 } ,
264- fd_write__deps : [ '$flush_NO_FILESYSTEM' , '$printChar' ] ,
265263 fd_write__postset : ( ) => addAtExit ( 'flush_NO_FILESYSTEM()' ) ,
266- #else
267- fd_write__deps : [ '$printChar' ] ,
268264#endif
265+
266+ fd_write__deps : [
267+ #if SYSCALLS_REQUIRE_FILESYSTEM
268+ '$doWritev' ,
269+ #endif
270+ #if ( ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS )
271+ '$printChar' ,
272+ #if ( ! MINIMAL_RUNTIME || EXIT_RUNTIME )
273+ '$flush_NO_FILESYSTEM' ,
274+ #endif
275+ #endif
276+ ] ,
269277 fd_write : ( fd , iov , iovcnt , pnum ) = > {
270278#if SYSCALLS_REQUIRE_FILESYSTEM
279+ #if WASM_WORKERS
280+ if ( ! ENVIRONMENT_IS_WASM_WORKER ) {
281+ #endif // WASM_WORKERS
271282 var stream = SYSCALLS . getStreamFromFD ( fd ) ;
272283 var num = doWritev ( stream , iov , iovcnt ) ;
273- #else
274- // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
284+ #if WASM_WORKERS
285+ } else {
286+ // Hack to support printf in WASM workers in a simple way.
287+ // We support at least stdout, stderr.
288+ #endif // WASM_WORKERS
289+ #endif // SYSCALLS_REQUIRE_FILESYSTEM
290+ #if ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS
291+ #if ! SYSCALLS_REQUIRE_FILESYSTEM
292+ // Hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
293+ #endif
275294 var num = 0 ;
276295 for ( var i = 0 ; i < iovcnt ; i ++ ) {
277296 var ptr = { { { makeGetValue ( 'iov' , C_STRUCTS . iovec . iov_base , '*' ) } } } ;
@@ -282,7 +301,10 @@ var WasiLibrary = {
282301 }
283302 num += len ;
284303 }
285- #endif // SYSCALLS_REQUIRE_FILESYSTEM
304+ #endif
305+ #if SYSCALLS_REQUIRE_FILESYSTEM && WASM_WORKERS
306+ }
307+ #endif
286308 { { { makeSetValue ( 'pnum ', 0 , 'num' , SIZE_TYPE ) } } } ;
287309 return 0 ;
288310 } ,
0 commit comments