@@ -10,16 +10,14 @@ import {
10
10
clock_time_get ,
11
11
clockid ,
12
12
errnoToString ,
13
- fd
14
- } from "bindings/wasi_snapshot_preview1" ;
13
+ fd ,
14
+ tempbuf
15
+ } from "bindings/wasi" ;
15
16
16
17
import {
17
18
E_INDEXOUTOFRANGE
18
19
} from "util/error" ;
19
20
20
- // @ts -ignore: decorator
21
- @lazy const iobuf = memory . data ( 4 * sizeof < usize > ( ) ) ;
22
-
23
21
export namespace process {
24
22
25
23
// @ts -ignore: decorator
@@ -49,24 +47,24 @@ export namespace process {
49
47
@lazy export const stderr = changetype < WritableStream > ( 2 ) ;
50
48
51
49
export function time ( ) : i64 {
52
- var err = clock_time_get ( clockid . REALTIME , 1000000 , iobuf ) ;
50
+ var err = clock_time_get ( clockid . REALTIME , 1000000 , tempbuf ) ;
53
51
if ( err ) throw new Error ( errnoToString ( err ) ) ;
54
- return load < u64 > ( iobuf ) / 1000000 ;
52
+ return load < u64 > ( tempbuf ) / 1000000 ;
55
53
}
56
54
57
55
export function hrtime ( ) : u64 {
58
- var err = clock_time_get ( clockid . MONOTONIC , 0 , iobuf ) ;
56
+ var err = clock_time_get ( clockid . MONOTONIC , 0 , tempbuf ) ;
59
57
if ( err ) throw new Error ( errnoToString ( err ) ) ;
60
- return load < u64 > ( iobuf ) ;
58
+ return load < u64 > ( tempbuf ) ;
61
59
}
62
60
}
63
61
64
62
function lazyArgv ( ) : string [ ] {
65
- var err = args_sizes_get ( iobuf , iobuf + sizeof < usize > ( ) ) ;
63
+ var err = args_sizes_get ( tempbuf , tempbuf + sizeof < usize > ( ) ) ;
66
64
if ( err ) throw new Error ( errnoToString ( err ) ) ;
67
- var count = load < usize > ( iobuf ) ;
65
+ var count = load < usize > ( tempbuf ) ;
68
66
var ptrsSize = count * sizeof < usize > ( ) ;
69
- var dataSize = load < usize > ( iobuf , sizeof < usize > ( ) ) ;
67
+ var dataSize = load < usize > ( tempbuf , sizeof < usize > ( ) ) ;
70
68
var bufSize = ptrsSize + dataSize ;
71
69
var buf = __alloc ( bufSize ) ;
72
70
err = args_get ( buf , buf + ptrsSize ) ;
@@ -83,11 +81,11 @@ function lazyArgv(): string[] {
83
81
}
84
82
85
83
function lazyEnv ( ) : Map < string , string > {
86
- var err = environ_sizes_get ( iobuf , iobuf + 4 ) ;
84
+ var err = environ_sizes_get ( tempbuf , tempbuf + 4 ) ;
87
85
if ( err ) throw new Error ( errnoToString ( err ) ) ;
88
- var count = load < usize > ( iobuf ) ;
86
+ var count = load < usize > ( tempbuf ) ;
89
87
var ptrsSize = count * sizeof < usize > ( ) ;
90
- var dataSize = load < usize > ( iobuf , sizeof < usize > ( ) ) ;
88
+ var dataSize = load < usize > ( tempbuf , sizeof < usize > ( ) ) ;
91
89
var bufSize = ptrsSize + dataSize ;
92
90
var buf = __alloc ( bufSize ) ;
93
91
err = environ_get ( buf , buf + ptrsSize ) ;
@@ -136,18 +134,18 @@ abstract class ReadableStream extends Stream {
136
134
if ( offset < 0 || < usize > offset > end ) {
137
135
throw new Error ( E_INDEXOUTOFRANGE ) ;
138
136
}
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 > ( ) ) ;
142
140
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 > ( ) ) ;
144
142
}
145
143
}
146
144
147
145
function 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 > ( ) ) ;
151
149
if ( err ) throw new Error ( errnoToString ( err ) ) ;
152
150
}
153
151
@@ -173,20 +171,20 @@ function writeString(fd: fd, data: string): void {
173
171
case 1 : { // "\n"
174
172
let char1 = < u32 > load < u16 > ( changetype < usize > ( data ) ) ;
175
173
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 > ( ) ) ;
180
178
if ( err ) throw new Error ( errnoToString ( err ) ) ;
181
179
}
182
180
case 0 : return ;
183
181
}
184
182
var utf8len = < usize > String . UTF8 . byteLength ( data ) ;
185
183
var utf8buf = __alloc ( utf8len ) ;
186
184
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 > ( ) ) ;
190
188
__free ( utf8buf ) ;
191
189
if ( err ) throw new Error ( errnoToString ( err ) ) ;
192
190
}
0 commit comments