@@ -10,16 +10,14 @@ import {
1010 clock_time_get ,
1111 clockid ,
1212 errnoToString ,
13- fd
14- } from "bindings/wasi_snapshot_preview1" ;
13+ fd ,
14+ tempbuf
15+ } from "bindings/wasi" ;
1516
1617import {
1718 E_INDEXOUTOFRANGE
1819} from "util/error" ;
1920
20- // @ts -ignore: decorator
21- @lazy const iobuf = memory . data ( 4 * sizeof < usize > ( ) ) ;
22-
2321export namespace process {
2422
2523 // @ts -ignore: decorator
@@ -49,24 +47,24 @@ export namespace process {
4947 @lazy export const stderr = changetype < WritableStream > ( 2 ) ;
5048
5149 export function time ( ) : i64 {
52- var err = clock_time_get ( clockid . REALTIME , 1000000 , iobuf ) ;
50+ var err = clock_time_get ( clockid . REALTIME , 1000000 , tempbuf ) ;
5351 if ( err ) throw new Error ( errnoToString ( err ) ) ;
54- return load < u64 > ( iobuf ) / 1000000 ;
52+ return load < u64 > ( tempbuf ) / 1000000 ;
5553 }
5654
5755 export function hrtime ( ) : u64 {
58- var err = clock_time_get ( clockid . MONOTONIC , 0 , iobuf ) ;
56+ var err = clock_time_get ( clockid . MONOTONIC , 0 , tempbuf ) ;
5957 if ( err ) throw new Error ( errnoToString ( err ) ) ;
60- return load < u64 > ( iobuf ) ;
58+ return load < u64 > ( tempbuf ) ;
6159 }
6260}
6361
6462function lazyArgv ( ) : string [ ] {
65- var err = args_sizes_get ( iobuf , iobuf + sizeof < usize > ( ) ) ;
63+ var err = args_sizes_get ( tempbuf , tempbuf + sizeof < usize > ( ) ) ;
6664 if ( err ) throw new Error ( errnoToString ( err ) ) ;
67- var count = load < usize > ( iobuf ) ;
65+ var count = load < usize > ( tempbuf ) ;
6866 var ptrsSize = count * sizeof < usize > ( ) ;
69- var dataSize = load < usize > ( iobuf , sizeof < usize > ( ) ) ;
67+ var dataSize = load < usize > ( tempbuf , sizeof < usize > ( ) ) ;
7068 var bufSize = ptrsSize + dataSize ;
7169 var buf = __alloc ( bufSize ) ;
7270 err = args_get ( buf , buf + ptrsSize ) ;
@@ -83,11 +81,11 @@ function lazyArgv(): string[] {
8381}
8482
8583function lazyEnv ( ) : Map < string , string > {
86- var err = environ_sizes_get ( iobuf , iobuf + 4 ) ;
84+ var err = environ_sizes_get ( tempbuf , tempbuf + 4 ) ;
8785 if ( err ) throw new Error ( errnoToString ( err ) ) ;
88- var count = load < usize > ( iobuf ) ;
86+ var count = load < usize > ( tempbuf ) ;
8987 var ptrsSize = count * sizeof < usize > ( ) ;
90- var dataSize = load < usize > ( iobuf , sizeof < usize > ( ) ) ;
88+ var dataSize = load < usize > ( tempbuf , sizeof < usize > ( ) ) ;
9189 var bufSize = ptrsSize + dataSize ;
9290 var buf = __alloc ( bufSize ) ;
9391 err = environ_get ( buf , buf + ptrsSize ) ;
@@ -136,18 +134,18 @@ abstract class ReadableStream extends Stream {
136134 if ( offset < 0 || < usize > offset > end ) {
137135 throw new Error ( E_INDEXOUTOFRANGE ) ;
138136 }
139- store < usize > ( iobuf , changetype < usize > ( buffer ) + offset ) ;
140- store < usize > ( iobuf , end - offset , sizeof < usize > ( ) ) ;
141- var err = fd_read ( < u32 > changetype < usize > ( this ) , iobuf , 1 , iobuf + 2 * sizeof < usize > ( ) ) ;
137+ store < usize > ( tempbuf , changetype < usize > ( buffer ) + offset ) ;
138+ store < usize > ( tempbuf , end - offset , sizeof < usize > ( ) ) ;
139+ var err = fd_read ( < u32 > changetype < usize > ( this ) , tempbuf , 1 , tempbuf + 2 * sizeof < usize > ( ) ) ;
142140 if ( err ) throw new Error ( errnoToString ( err ) ) ;
143- return < i32 > load < isize > ( iobuf , 2 * sizeof < usize > ( ) ) ;
141+ return < i32 > load < isize > ( tempbuf , 2 * sizeof < usize > ( ) ) ;
144142 }
145143}
146144
147145function writeBuffer ( fd : fd , data : ArrayBuffer ) : void {
148- store < usize > ( iobuf , changetype < usize > ( data ) ) ;
149- store < usize > ( iobuf , data . byteLength , sizeof < usize > ( ) ) ;
150- var err = fd_write ( < u32 > fd , iobuf , 1 , iobuf + 2 * sizeof < usize > ( ) ) ;
146+ store < usize > ( tempbuf , changetype < usize > ( data ) ) ;
147+ store < usize > ( tempbuf , data . byteLength , sizeof < usize > ( ) ) ;
148+ var err = fd_write ( < u32 > fd , tempbuf , 1 , tempbuf + 2 * sizeof < usize > ( ) ) ;
151149 if ( err ) throw new Error ( errnoToString ( err ) ) ;
152150}
153151
@@ -173,20 +171,20 @@ function writeString(fd: fd, data: string): void {
173171 case 1 : { // "\n"
174172 let char1 = < u32 > load < u16 > ( changetype < usize > ( data ) ) ;
175173 if ( char1 >= 0x80 ) break ;
176- store < usize > ( iobuf , iobuf + 2 * sizeof < usize > ( ) ) ;
177- store < usize > ( iobuf , len , sizeof < usize > ( ) ) ;
178- store < u32 > ( iobuf , char1 | char2 << 8 | char3 << 16 | char4 << 24 , 2 * sizeof < usize > ( ) ) ;
179- let err = fd_write ( < u32 > fd , iobuf , 1 , iobuf + 3 * sizeof < usize > ( ) ) ;
174+ store < usize > ( tempbuf , tempbuf + 2 * sizeof < usize > ( ) ) ;
175+ store < usize > ( tempbuf , len , sizeof < usize > ( ) ) ;
176+ store < u32 > ( tempbuf , char1 | char2 << 8 | char3 << 16 | char4 << 24 , 2 * sizeof < usize > ( ) ) ;
177+ let err = fd_write ( < u32 > fd , tempbuf , 1 , tempbuf + 3 * sizeof < usize > ( ) ) ;
180178 if ( err ) throw new Error ( errnoToString ( err ) ) ;
181179 }
182180 case 0 : return ;
183181 }
184182 var utf8len = < usize > String . UTF8 . byteLength ( data ) ;
185183 var utf8buf = __alloc ( utf8len ) ;
186184 assert ( String . UTF8 . encodeUnsafe ( changetype < usize > ( data ) , len , utf8buf ) == utf8len ) ;
187- store < usize > ( iobuf , utf8buf ) ;
188- store < usize > ( iobuf , utf8len , sizeof < usize > ( ) ) ;
189- var err = fd_write ( < u32 > fd , iobuf , 1 , iobuf + 2 * sizeof < usize > ( ) ) ;
185+ store < usize > ( tempbuf , utf8buf ) ;
186+ store < usize > ( tempbuf , utf8len , sizeof < usize > ( ) ) ;
187+ var err = fd_write ( < u32 > fd , tempbuf , 1 , tempbuf + 2 * sizeof < usize > ( ) ) ;
190188 __free ( utf8buf ) ;
191189 if ( err ) throw new Error ( errnoToString ( err ) ) ;
192190}
0 commit comments