@@ -84,27 +84,30 @@ var WasiLibrary = {
8484 return getEnvStrings . strings ;
8585 } ,
8686
87- environ_sizes_get__deps : [ '$getEnvStrings' ] ,
87+ environ_sizes_get__deps : [ '$getEnvStrings' , '$lengthBytesUTF8' ] ,
8888 environ_sizes_get__nothrow : true ,
8989 environ_sizes_get : ( penviron_count , penviron_buf_size ) => {
9090 var strings = getEnvStrings ( ) ;
9191 { { { makeSetValue ( 'penviron_count' , 0 , 'strings.length' , SIZE_TYPE ) } } } ;
9292 var bufSize = 0 ;
93- strings . forEach ( ( string ) => bufSize += string . length + 1 ) ;
93+ for ( var string of strings ) {
94+ bufSize += lengthBytesUTF8 ( string ) + 1 ;
95+ }
9496 { { { makeSetValue ( 'penviron_buf_size' , 0 , 'bufSize' , SIZE_TYPE ) } } } ;
9597 return 0 ;
9698 } ,
9799
98- environ_get__deps : [ '$getEnvStrings' , '$stringToAscii ' ] ,
100+ environ_get__deps : [ '$getEnvStrings' , '$stringToUTF8 ' ] ,
99101 environ_get__nothrow : true ,
100102 environ_get : ( __environ , environ_buf ) = > {
101103 var bufSize = 0 ;
102- getEnvStrings ( ) . forEach ( ( string , i ) => {
104+ var envp = 0 ;
105+ for ( var string of getEnvStrings ( ) ) {
103106 var ptr = environ_buf + bufSize ;
104- { { { makeSetValue ( '__environ' , `i* ${ POINTER_SIZE } ` , 'ptr' , POINTER_TYPE ) } } } ;
105- stringToAscii ( string , ptr ) ;
106- bufSize += string . length + 1 ;
107- } ) ;
107+ { { { makeSetValue ( '__environ' , 'envp' , 'ptr' , POINTER_TYPE ) } } } ;
108+ bufSize += stringToUTF8 ( string , ptr , Infinity ) + 1 ;
109+ envp += { { { POINTER_SIZE } } } ;
110+ }
108111 return 0 ;
109112 } ,
110113
0 commit comments