@bytecodealliance/jco 0.12.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/wasi_snapshot_preview1.command.wasm +0 -0
  2. package/lib/wasi_snapshot_preview1.reactor.wasm +0 -0
  3. package/obj/interfaces/wasi-cli-environment-0.2.0-rc-2023-11-05.d.ts +3 -0
  4. package/obj/interfaces/wasi-cli-exit-0.2.0-rc-2023-11-05.d.ts +4 -0
  5. package/obj/interfaces/wasi-cli-stderr-0.2.0-rc-2023-11-05.d.ts +5 -0
  6. package/obj/interfaces/wasi-cli-stdin-0.2.0-rc-2023-11-05.d.ts +5 -0
  7. package/obj/interfaces/wasi-cli-stdout-0.2.0-rc-2023-11-05.d.ts +5 -0
  8. package/obj/interfaces/wasi-cli-terminal-input-0.2.0-rc-2023-11-05.d.ts +2 -0
  9. package/obj/interfaces/wasi-cli-terminal-output-0.2.0-rc-2023-11-05.d.ts +2 -0
  10. package/obj/interfaces/wasi-cli-terminal-stderr-0.2.0-rc-2023-11-05.d.ts +5 -0
  11. package/obj/interfaces/wasi-cli-terminal-stdin-0.2.0-rc-2023-11-05.d.ts +5 -0
  12. package/obj/interfaces/wasi-cli-terminal-stdout-0.2.0-rc-2023-11-05.d.ts +5 -0
  13. package/obj/interfaces/wasi-clocks-wall-clock-0.2.0-rc-2023-11-05.d.ts +6 -0
  14. package/obj/interfaces/wasi-filesystem-preopens-0.2.0-rc-2023-11-05.d.ts +5 -0
  15. package/obj/interfaces/wasi-filesystem-types-0.2.0-rc-2023-11-05.d.ts +156 -0
  16. package/obj/interfaces/wasi-io-streams-0.2.0-rc-2023-11-05.d.ts +24 -0
  17. package/obj/interfaces/wasi-random-random-0.2.0-rc-2023-11-05.d.ts +3 -0
  18. package/obj/interfaces/wasi-sockets-tcp-0.2.0-rc-2023-11-05.d.ts +2 -0
  19. package/obj/js-component-bindgen-component.component.wasm +0 -0
  20. package/obj/js-component-bindgen-component.core.wasm +0 -0
  21. package/obj/js-component-bindgen-component.core2.wasm +0 -0
  22. package/obj/js-component-bindgen-component.d.ts +16 -15
  23. package/obj/js-component-bindgen-component.js +992 -682
  24. package/obj/wasm-tools.component.wasm +0 -0
  25. package/obj/wasm-tools.core.wasm +0 -0
  26. package/obj/wasm-tools.core2.wasm +0 -0
  27. package/obj/wasm-tools.d.ts +16 -15
  28. package/obj/wasm-tools.js +992 -682
  29. package/package.json +2 -2
  30. package/src/jco.js +1 -1
package/obj/wasm-tools.js CHANGED
@@ -7,29 +7,18 @@ const { exit } = exit$1;
7
7
  const { getStderr } = stderr;
8
8
  const { getStdin } = stdin;
9
9
  const { getStdout } = stdout;
10
- const { dropTerminalInput } = terminalInput;
11
- const { dropTerminalOutput } = terminalOutput;
10
+ const { TerminalInput } = terminalInput;
11
+ const { TerminalOutput } = terminalOutput;
12
12
  const { getTerminalStderr } = terminalStderr;
13
13
  const { getTerminalStdin } = terminalStdin;
14
14
  const { getTerminalStdout } = terminalStdout;
15
15
  const { getDirectories } = preopens;
16
- const { appendViaStream,
17
- dropDescriptor,
18
- dropDirectoryEntryStream,
19
- getType,
20
- metadataHash,
21
- openAt,
22
- readViaStream,
23
- stat,
24
- writeViaStream } = types;
25
- const { blockingFlush,
26
- blockingRead,
27
- blockingWriteAndFlush,
28
- checkWrite,
29
- dropInputStream,
30
- dropOutputStream,
31
- read,
32
- write } = streams;
16
+ const { Descriptor,
17
+ DirectoryEntryStream,
18
+ filesystemErrorCode } = types;
19
+ const { Error: Error$1,
20
+ InputStream,
21
+ OutputStream } = streams;
33
22
  const { getRandomBytes } = random;
34
23
 
35
24
  const base64Compile = str => WebAssembly.compile(typeof Buffer !== 'undefined' ? Buffer.from(str, 'base64') : Uint8Array.from(atob(str), b => b.charCodeAt(0)));
@@ -64,6 +53,8 @@ const hasOwnProperty = Object.prototype.hasOwnProperty;
64
53
 
65
54
  const instantiateCore = WebAssembly.instantiate;
66
55
 
56
+ const resourceHandleSymbol = Symbol();
57
+
67
58
  function throwUninitialized() {
68
59
  throw new TypeError('Wasm uninitialized use `await $init` first');
69
60
  }
@@ -107,43 +98,14 @@ function utf8Encode(s, realloc, memory) {
107
98
  let exports0;
108
99
  let exports1;
109
100
 
110
- function trampoline0(arg0) {
111
- dropDirectoryEntryStream(arg0 >>> 0);
112
- }
113
-
114
- function trampoline1(arg0) {
115
- dropInputStream(arg0 >>> 0);
116
- }
117
-
118
- function trampoline2(arg0) {
119
- dropOutputStream(arg0 >>> 0);
120
- }
121
-
122
- function trampoline3(arg0) {
123
- dropDescriptor(arg0 >>> 0);
124
- }
125
-
126
- function trampoline4() {
127
- const ret = getStdin();
128
- return toUint32(ret);
129
- }
130
-
131
- function trampoline5(arg0) {
132
- dropTerminalInput(arg0 >>> 0);
133
- }
134
-
135
- function trampoline6() {
136
- const ret = getStdout();
137
- return toUint32(ret);
138
- }
139
-
140
- function trampoline7(arg0) {
141
- dropTerminalOutput(arg0 >>> 0);
142
- }
143
-
144
101
  function trampoline8() {
145
102
  const ret = getStderr();
146
- return toUint32(ret);
103
+ if (!(ret instanceof OutputStream)) {
104
+ throw new Error('Not a valid "OutputStream" resource.');
105
+ }
106
+ const handle0 = handleCnt2++;
107
+ handleTable2.set(handle0, { rep: ret, own: true });
108
+ return handle0;
147
109
  }
148
110
 
149
111
  function trampoline9(arg0) {
@@ -169,195 +131,226 @@ function trampoline9(arg0) {
169
131
  }
170
132
  exit(variant0);
171
133
  }
134
+
135
+ function trampoline10() {
136
+ const ret = getStdin();
137
+ if (!(ret instanceof InputStream)) {
138
+ throw new Error('Not a valid "InputStream" resource.');
139
+ }
140
+ const handle0 = handleCnt0++;
141
+ handleTable0.set(handle0, { rep: ret, own: true });
142
+ return handle0;
143
+ }
144
+
145
+ function trampoline11() {
146
+ const ret = getStdout();
147
+ if (!(ret instanceof OutputStream)) {
148
+ throw new Error('Not a valid "OutputStream" resource.');
149
+ }
150
+ const handle0 = handleCnt2++;
151
+ handleTable2.set(handle0, { rep: ret, own: true });
152
+ return handle0;
153
+ }
172
154
  let exports2;
173
155
 
174
- function trampoline10(arg0) {
156
+ function trampoline12(arg0) {
175
157
  const ret = getDirectories();
176
- const vec2 = ret;
177
- const len2 = vec2.length;
178
- const result2 = realloc0(0, 0, 4, len2 * 12);
179
- for (let i = 0; i < vec2.length; i++) {
180
- const e = vec2[i];
181
- const base = result2 + i * 12;const [tuple0_0, tuple0_1] = e;
182
- dataView(memory0).setInt32(base + 0, toUint32(tuple0_0), true);
183
- const ptr1 = utf8Encode(tuple0_1, realloc0, memory0);
184
- const len1 = utf8EncodedLen;
185
- dataView(memory0).setInt32(base + 8, len1, true);
186
- dataView(memory0).setInt32(base + 4, ptr1, true);
158
+ const vec3 = ret;
159
+ const len3 = vec3.length;
160
+ const result3 = realloc0(0, 0, 4, len3 * 12);
161
+ for (let i = 0; i < vec3.length; i++) {
162
+ const e = vec3[i];
163
+ const base = result3 + i * 12;const [tuple0_0, tuple0_1] = e;
164
+ if (!(tuple0_0 instanceof Descriptor)) {
165
+ throw new Error('Not a valid "Descriptor" resource.');
166
+ }
167
+ const handle1 = handleCnt3++;
168
+ handleTable3.set(handle1, { rep: tuple0_0, own: true });
169
+ dataView(memory0).setInt32(base + 0, handle1, true);
170
+ const ptr2 = utf8Encode(tuple0_1, realloc0, memory0);
171
+ const len2 = utf8EncodedLen;
172
+ dataView(memory0).setInt32(base + 8, len2, true);
173
+ dataView(memory0).setInt32(base + 4, ptr2, true);
187
174
  }
188
- dataView(memory0).setInt32(arg0 + 4, len2, true);
189
- dataView(memory0).setInt32(arg0 + 0, result2, true);
175
+ dataView(memory0).setInt32(arg0 + 4, len3, true);
176
+ dataView(memory0).setInt32(arg0 + 0, result3, true);
190
177
  }
191
178
  let memory0;
192
179
  let realloc0;
193
180
 
194
- function trampoline11(arg0, arg1, arg2) {
181
+ function trampoline13(arg0, arg1, arg2) {
182
+ const rsc0 = handleTable3.get(arg0).rep;
195
183
  let ret;
196
184
  try {
197
- ret = { tag: 'ok', val: readViaStream(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
185
+ ret = { tag: 'ok', val: Descriptor.prototype.readViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
198
186
  } catch (e) {
199
187
  ret = { tag: 'err', val: getErrorPayload(e) };
200
188
  }
201
- const variant1 = ret;
202
- switch (variant1.tag) {
189
+ const variant3 = ret;
190
+ switch (variant3.tag) {
203
191
  case 'ok': {
204
- const e = variant1.val;
192
+ const e = variant3.val;
205
193
  dataView(memory0).setInt8(arg2 + 0, 0, true);
206
- dataView(memory0).setInt32(arg2 + 4, toUint32(e), true);
194
+ if (!(e instanceof InputStream)) {
195
+ throw new Error('Not a valid "InputStream" resource.');
196
+ }
197
+ const handle1 = handleCnt0++;
198
+ handleTable0.set(handle1, { rep: e, own: true });
199
+ dataView(memory0).setInt32(arg2 + 4, handle1, true);
207
200
  break;
208
201
  }
209
202
  case 'err': {
210
- const e = variant1.val;
203
+ const e = variant3.val;
211
204
  dataView(memory0).setInt8(arg2 + 0, 1, true);
212
- const val0 = e;
213
- let enum0;
214
- switch (val0) {
205
+ const val2 = e;
206
+ let enum2;
207
+ switch (val2) {
215
208
  case 'access': {
216
- enum0 = 0;
209
+ enum2 = 0;
217
210
  break;
218
211
  }
219
212
  case 'would-block': {
220
- enum0 = 1;
213
+ enum2 = 1;
221
214
  break;
222
215
  }
223
216
  case 'already': {
224
- enum0 = 2;
217
+ enum2 = 2;
225
218
  break;
226
219
  }
227
220
  case 'bad-descriptor': {
228
- enum0 = 3;
221
+ enum2 = 3;
229
222
  break;
230
223
  }
231
224
  case 'busy': {
232
- enum0 = 4;
225
+ enum2 = 4;
233
226
  break;
234
227
  }
235
228
  case 'deadlock': {
236
- enum0 = 5;
229
+ enum2 = 5;
237
230
  break;
238
231
  }
239
232
  case 'quota': {
240
- enum0 = 6;
233
+ enum2 = 6;
241
234
  break;
242
235
  }
243
236
  case 'exist': {
244
- enum0 = 7;
237
+ enum2 = 7;
245
238
  break;
246
239
  }
247
240
  case 'file-too-large': {
248
- enum0 = 8;
241
+ enum2 = 8;
249
242
  break;
250
243
  }
251
244
  case 'illegal-byte-sequence': {
252
- enum0 = 9;
245
+ enum2 = 9;
253
246
  break;
254
247
  }
255
248
  case 'in-progress': {
256
- enum0 = 10;
249
+ enum2 = 10;
257
250
  break;
258
251
  }
259
252
  case 'interrupted': {
260
- enum0 = 11;
253
+ enum2 = 11;
261
254
  break;
262
255
  }
263
256
  case 'invalid': {
264
- enum0 = 12;
257
+ enum2 = 12;
265
258
  break;
266
259
  }
267
260
  case 'io': {
268
- enum0 = 13;
261
+ enum2 = 13;
269
262
  break;
270
263
  }
271
264
  case 'is-directory': {
272
- enum0 = 14;
265
+ enum2 = 14;
273
266
  break;
274
267
  }
275
268
  case 'loop': {
276
- enum0 = 15;
269
+ enum2 = 15;
277
270
  break;
278
271
  }
279
272
  case 'too-many-links': {
280
- enum0 = 16;
273
+ enum2 = 16;
281
274
  break;
282
275
  }
283
276
  case 'message-size': {
284
- enum0 = 17;
277
+ enum2 = 17;
285
278
  break;
286
279
  }
287
280
  case 'name-too-long': {
288
- enum0 = 18;
281
+ enum2 = 18;
289
282
  break;
290
283
  }
291
284
  case 'no-device': {
292
- enum0 = 19;
285
+ enum2 = 19;
293
286
  break;
294
287
  }
295
288
  case 'no-entry': {
296
- enum0 = 20;
289
+ enum2 = 20;
297
290
  break;
298
291
  }
299
292
  case 'no-lock': {
300
- enum0 = 21;
293
+ enum2 = 21;
301
294
  break;
302
295
  }
303
296
  case 'insufficient-memory': {
304
- enum0 = 22;
297
+ enum2 = 22;
305
298
  break;
306
299
  }
307
300
  case 'insufficient-space': {
308
- enum0 = 23;
301
+ enum2 = 23;
309
302
  break;
310
303
  }
311
304
  case 'not-directory': {
312
- enum0 = 24;
305
+ enum2 = 24;
313
306
  break;
314
307
  }
315
308
  case 'not-empty': {
316
- enum0 = 25;
309
+ enum2 = 25;
317
310
  break;
318
311
  }
319
312
  case 'not-recoverable': {
320
- enum0 = 26;
313
+ enum2 = 26;
321
314
  break;
322
315
  }
323
316
  case 'unsupported': {
324
- enum0 = 27;
317
+ enum2 = 27;
325
318
  break;
326
319
  }
327
320
  case 'no-tty': {
328
- enum0 = 28;
321
+ enum2 = 28;
329
322
  break;
330
323
  }
331
324
  case 'no-such-device': {
332
- enum0 = 29;
325
+ enum2 = 29;
333
326
  break;
334
327
  }
335
328
  case 'overflow': {
336
- enum0 = 30;
329
+ enum2 = 30;
337
330
  break;
338
331
  }
339
332
  case 'not-permitted': {
340
- enum0 = 31;
333
+ enum2 = 31;
341
334
  break;
342
335
  }
343
336
  case 'pipe': {
344
- enum0 = 32;
337
+ enum2 = 32;
345
338
  break;
346
339
  }
347
340
  case 'read-only': {
348
- enum0 = 33;
341
+ enum2 = 33;
349
342
  break;
350
343
  }
351
344
  case 'invalid-seek': {
352
- enum0 = 34;
345
+ enum2 = 34;
353
346
  break;
354
347
  }
355
348
  case 'text-file-busy': {
356
- enum0 = 35;
349
+ enum2 = 35;
357
350
  break;
358
351
  }
359
352
  case 'cross-device': {
360
- enum0 = 36;
353
+ enum2 = 36;
361
354
  break;
362
355
  }
363
356
  default: {
@@ -365,10 +358,10 @@ function trampoline11(arg0, arg1, arg2) {
365
358
  console.error(e);
366
359
  }
367
360
 
368
- throw new TypeError(`"${val0}" is not one of the cases of error-code`);
361
+ throw new TypeError(`"${val2}" is not one of the cases of error-code`);
369
362
  }
370
363
  }
371
- dataView(memory0).setInt8(arg2 + 4, enum0, true);
364
+ dataView(memory0).setInt8(arg2 + 4, enum2, true);
372
365
  break;
373
366
  }
374
367
  default: {
@@ -377,173 +370,179 @@ function trampoline11(arg0, arg1, arg2) {
377
370
  }
378
371
  }
379
372
 
380
- function trampoline12(arg0, arg1, arg2) {
373
+ function trampoline14(arg0, arg1, arg2) {
374
+ const rsc0 = handleTable3.get(arg0).rep;
381
375
  let ret;
382
376
  try {
383
- ret = { tag: 'ok', val: writeViaStream(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
377
+ ret = { tag: 'ok', val: Descriptor.prototype.writeViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
384
378
  } catch (e) {
385
379
  ret = { tag: 'err', val: getErrorPayload(e) };
386
380
  }
387
- const variant1 = ret;
388
- switch (variant1.tag) {
381
+ const variant3 = ret;
382
+ switch (variant3.tag) {
389
383
  case 'ok': {
390
- const e = variant1.val;
384
+ const e = variant3.val;
391
385
  dataView(memory0).setInt8(arg2 + 0, 0, true);
392
- dataView(memory0).setInt32(arg2 + 4, toUint32(e), true);
386
+ if (!(e instanceof OutputStream)) {
387
+ throw new Error('Not a valid "OutputStream" resource.');
388
+ }
389
+ const handle1 = handleCnt2++;
390
+ handleTable2.set(handle1, { rep: e, own: true });
391
+ dataView(memory0).setInt32(arg2 + 4, handle1, true);
393
392
  break;
394
393
  }
395
394
  case 'err': {
396
- const e = variant1.val;
395
+ const e = variant3.val;
397
396
  dataView(memory0).setInt8(arg2 + 0, 1, true);
398
- const val0 = e;
399
- let enum0;
400
- switch (val0) {
397
+ const val2 = e;
398
+ let enum2;
399
+ switch (val2) {
401
400
  case 'access': {
402
- enum0 = 0;
401
+ enum2 = 0;
403
402
  break;
404
403
  }
405
404
  case 'would-block': {
406
- enum0 = 1;
405
+ enum2 = 1;
407
406
  break;
408
407
  }
409
408
  case 'already': {
410
- enum0 = 2;
409
+ enum2 = 2;
411
410
  break;
412
411
  }
413
412
  case 'bad-descriptor': {
414
- enum0 = 3;
413
+ enum2 = 3;
415
414
  break;
416
415
  }
417
416
  case 'busy': {
418
- enum0 = 4;
417
+ enum2 = 4;
419
418
  break;
420
419
  }
421
420
  case 'deadlock': {
422
- enum0 = 5;
421
+ enum2 = 5;
423
422
  break;
424
423
  }
425
424
  case 'quota': {
426
- enum0 = 6;
425
+ enum2 = 6;
427
426
  break;
428
427
  }
429
428
  case 'exist': {
430
- enum0 = 7;
429
+ enum2 = 7;
431
430
  break;
432
431
  }
433
432
  case 'file-too-large': {
434
- enum0 = 8;
433
+ enum2 = 8;
435
434
  break;
436
435
  }
437
436
  case 'illegal-byte-sequence': {
438
- enum0 = 9;
437
+ enum2 = 9;
439
438
  break;
440
439
  }
441
440
  case 'in-progress': {
442
- enum0 = 10;
441
+ enum2 = 10;
443
442
  break;
444
443
  }
445
444
  case 'interrupted': {
446
- enum0 = 11;
445
+ enum2 = 11;
447
446
  break;
448
447
  }
449
448
  case 'invalid': {
450
- enum0 = 12;
449
+ enum2 = 12;
451
450
  break;
452
451
  }
453
452
  case 'io': {
454
- enum0 = 13;
453
+ enum2 = 13;
455
454
  break;
456
455
  }
457
456
  case 'is-directory': {
458
- enum0 = 14;
457
+ enum2 = 14;
459
458
  break;
460
459
  }
461
460
  case 'loop': {
462
- enum0 = 15;
461
+ enum2 = 15;
463
462
  break;
464
463
  }
465
464
  case 'too-many-links': {
466
- enum0 = 16;
465
+ enum2 = 16;
467
466
  break;
468
467
  }
469
468
  case 'message-size': {
470
- enum0 = 17;
469
+ enum2 = 17;
471
470
  break;
472
471
  }
473
472
  case 'name-too-long': {
474
- enum0 = 18;
473
+ enum2 = 18;
475
474
  break;
476
475
  }
477
476
  case 'no-device': {
478
- enum0 = 19;
477
+ enum2 = 19;
479
478
  break;
480
479
  }
481
480
  case 'no-entry': {
482
- enum0 = 20;
481
+ enum2 = 20;
483
482
  break;
484
483
  }
485
484
  case 'no-lock': {
486
- enum0 = 21;
485
+ enum2 = 21;
487
486
  break;
488
487
  }
489
488
  case 'insufficient-memory': {
490
- enum0 = 22;
489
+ enum2 = 22;
491
490
  break;
492
491
  }
493
492
  case 'insufficient-space': {
494
- enum0 = 23;
493
+ enum2 = 23;
495
494
  break;
496
495
  }
497
496
  case 'not-directory': {
498
- enum0 = 24;
497
+ enum2 = 24;
499
498
  break;
500
499
  }
501
500
  case 'not-empty': {
502
- enum0 = 25;
501
+ enum2 = 25;
503
502
  break;
504
503
  }
505
504
  case 'not-recoverable': {
506
- enum0 = 26;
505
+ enum2 = 26;
507
506
  break;
508
507
  }
509
508
  case 'unsupported': {
510
- enum0 = 27;
509
+ enum2 = 27;
511
510
  break;
512
511
  }
513
512
  case 'no-tty': {
514
- enum0 = 28;
513
+ enum2 = 28;
515
514
  break;
516
515
  }
517
516
  case 'no-such-device': {
518
- enum0 = 29;
517
+ enum2 = 29;
519
518
  break;
520
519
  }
521
520
  case 'overflow': {
522
- enum0 = 30;
521
+ enum2 = 30;
523
522
  break;
524
523
  }
525
524
  case 'not-permitted': {
526
- enum0 = 31;
525
+ enum2 = 31;
527
526
  break;
528
527
  }
529
528
  case 'pipe': {
530
- enum0 = 32;
529
+ enum2 = 32;
531
530
  break;
532
531
  }
533
532
  case 'read-only': {
534
- enum0 = 33;
533
+ enum2 = 33;
535
534
  break;
536
535
  }
537
536
  case 'invalid-seek': {
538
- enum0 = 34;
537
+ enum2 = 34;
539
538
  break;
540
539
  }
541
540
  case 'text-file-busy': {
542
- enum0 = 35;
541
+ enum2 = 35;
543
542
  break;
544
543
  }
545
544
  case 'cross-device': {
546
- enum0 = 36;
545
+ enum2 = 36;
547
546
  break;
548
547
  }
549
548
  default: {
@@ -551,10 +550,10 @@ function trampoline12(arg0, arg1, arg2) {
551
550
  console.error(e);
552
551
  }
553
552
 
554
- throw new TypeError(`"${val0}" is not one of the cases of error-code`);
553
+ throw new TypeError(`"${val2}" is not one of the cases of error-code`);
555
554
  }
556
555
  }
557
- dataView(memory0).setInt8(arg2 + 4, enum0, true);
556
+ dataView(memory0).setInt8(arg2 + 4, enum2, true);
558
557
  break;
559
558
  }
560
559
  default: {
@@ -563,173 +562,179 @@ function trampoline12(arg0, arg1, arg2) {
563
562
  }
564
563
  }
565
564
 
566
- function trampoline13(arg0, arg1) {
565
+ function trampoline15(arg0, arg1) {
566
+ const rsc0 = handleTable3.get(arg0).rep;
567
567
  let ret;
568
568
  try {
569
- ret = { tag: 'ok', val: appendViaStream(arg0 >>> 0) };
569
+ ret = { tag: 'ok', val: Descriptor.prototype.appendViaStream.call(rsc0) };
570
570
  } catch (e) {
571
571
  ret = { tag: 'err', val: getErrorPayload(e) };
572
572
  }
573
- const variant1 = ret;
574
- switch (variant1.tag) {
573
+ const variant3 = ret;
574
+ switch (variant3.tag) {
575
575
  case 'ok': {
576
- const e = variant1.val;
576
+ const e = variant3.val;
577
577
  dataView(memory0).setInt8(arg1 + 0, 0, true);
578
- dataView(memory0).setInt32(arg1 + 4, toUint32(e), true);
578
+ if (!(e instanceof OutputStream)) {
579
+ throw new Error('Not a valid "OutputStream" resource.');
580
+ }
581
+ const handle1 = handleCnt2++;
582
+ handleTable2.set(handle1, { rep: e, own: true });
583
+ dataView(memory0).setInt32(arg1 + 4, handle1, true);
579
584
  break;
580
585
  }
581
586
  case 'err': {
582
- const e = variant1.val;
587
+ const e = variant3.val;
583
588
  dataView(memory0).setInt8(arg1 + 0, 1, true);
584
- const val0 = e;
585
- let enum0;
586
- switch (val0) {
589
+ const val2 = e;
590
+ let enum2;
591
+ switch (val2) {
587
592
  case 'access': {
588
- enum0 = 0;
593
+ enum2 = 0;
589
594
  break;
590
595
  }
591
596
  case 'would-block': {
592
- enum0 = 1;
597
+ enum2 = 1;
593
598
  break;
594
599
  }
595
600
  case 'already': {
596
- enum0 = 2;
601
+ enum2 = 2;
597
602
  break;
598
603
  }
599
604
  case 'bad-descriptor': {
600
- enum0 = 3;
605
+ enum2 = 3;
601
606
  break;
602
607
  }
603
608
  case 'busy': {
604
- enum0 = 4;
609
+ enum2 = 4;
605
610
  break;
606
611
  }
607
612
  case 'deadlock': {
608
- enum0 = 5;
613
+ enum2 = 5;
609
614
  break;
610
615
  }
611
616
  case 'quota': {
612
- enum0 = 6;
617
+ enum2 = 6;
613
618
  break;
614
619
  }
615
620
  case 'exist': {
616
- enum0 = 7;
621
+ enum2 = 7;
617
622
  break;
618
623
  }
619
624
  case 'file-too-large': {
620
- enum0 = 8;
625
+ enum2 = 8;
621
626
  break;
622
627
  }
623
628
  case 'illegal-byte-sequence': {
624
- enum0 = 9;
629
+ enum2 = 9;
625
630
  break;
626
631
  }
627
632
  case 'in-progress': {
628
- enum0 = 10;
633
+ enum2 = 10;
629
634
  break;
630
635
  }
631
636
  case 'interrupted': {
632
- enum0 = 11;
637
+ enum2 = 11;
633
638
  break;
634
639
  }
635
640
  case 'invalid': {
636
- enum0 = 12;
641
+ enum2 = 12;
637
642
  break;
638
643
  }
639
644
  case 'io': {
640
- enum0 = 13;
645
+ enum2 = 13;
641
646
  break;
642
647
  }
643
648
  case 'is-directory': {
644
- enum0 = 14;
649
+ enum2 = 14;
645
650
  break;
646
651
  }
647
652
  case 'loop': {
648
- enum0 = 15;
653
+ enum2 = 15;
649
654
  break;
650
655
  }
651
656
  case 'too-many-links': {
652
- enum0 = 16;
657
+ enum2 = 16;
653
658
  break;
654
659
  }
655
660
  case 'message-size': {
656
- enum0 = 17;
661
+ enum2 = 17;
657
662
  break;
658
663
  }
659
664
  case 'name-too-long': {
660
- enum0 = 18;
665
+ enum2 = 18;
661
666
  break;
662
667
  }
663
668
  case 'no-device': {
664
- enum0 = 19;
669
+ enum2 = 19;
665
670
  break;
666
671
  }
667
672
  case 'no-entry': {
668
- enum0 = 20;
673
+ enum2 = 20;
669
674
  break;
670
675
  }
671
676
  case 'no-lock': {
672
- enum0 = 21;
677
+ enum2 = 21;
673
678
  break;
674
679
  }
675
680
  case 'insufficient-memory': {
676
- enum0 = 22;
681
+ enum2 = 22;
677
682
  break;
678
683
  }
679
684
  case 'insufficient-space': {
680
- enum0 = 23;
685
+ enum2 = 23;
681
686
  break;
682
687
  }
683
688
  case 'not-directory': {
684
- enum0 = 24;
689
+ enum2 = 24;
685
690
  break;
686
691
  }
687
692
  case 'not-empty': {
688
- enum0 = 25;
693
+ enum2 = 25;
689
694
  break;
690
695
  }
691
696
  case 'not-recoverable': {
692
- enum0 = 26;
697
+ enum2 = 26;
693
698
  break;
694
699
  }
695
700
  case 'unsupported': {
696
- enum0 = 27;
701
+ enum2 = 27;
697
702
  break;
698
703
  }
699
704
  case 'no-tty': {
700
- enum0 = 28;
705
+ enum2 = 28;
701
706
  break;
702
707
  }
703
708
  case 'no-such-device': {
704
- enum0 = 29;
709
+ enum2 = 29;
705
710
  break;
706
711
  }
707
712
  case 'overflow': {
708
- enum0 = 30;
713
+ enum2 = 30;
709
714
  break;
710
715
  }
711
716
  case 'not-permitted': {
712
- enum0 = 31;
717
+ enum2 = 31;
713
718
  break;
714
719
  }
715
720
  case 'pipe': {
716
- enum0 = 32;
721
+ enum2 = 32;
717
722
  break;
718
723
  }
719
724
  case 'read-only': {
720
- enum0 = 33;
725
+ enum2 = 33;
721
726
  break;
722
727
  }
723
728
  case 'invalid-seek': {
724
- enum0 = 34;
729
+ enum2 = 34;
725
730
  break;
726
731
  }
727
732
  case 'text-file-busy': {
728
- enum0 = 35;
733
+ enum2 = 35;
729
734
  break;
730
735
  }
731
736
  case 'cross-device': {
732
- enum0 = 36;
737
+ enum2 = 36;
733
738
  break;
734
739
  }
735
740
  default: {
@@ -737,10 +742,10 @@ function trampoline13(arg0, arg1) {
737
742
  console.error(e);
738
743
  }
739
744
 
740
- throw new TypeError(`"${val0}" is not one of the cases of error-code`);
745
+ throw new TypeError(`"${val2}" is not one of the cases of error-code`);
741
746
  }
742
747
  }
743
- dataView(memory0).setInt8(arg1 + 4, enum0, true);
748
+ dataView(memory0).setInt8(arg1 + 4, enum2, true);
744
749
  break;
745
750
  }
746
751
  default: {
@@ -749,51 +754,52 @@ function trampoline13(arg0, arg1) {
749
754
  }
750
755
  }
751
756
 
752
- function trampoline14(arg0, arg1) {
757
+ function trampoline16(arg0, arg1) {
758
+ const rsc0 = handleTable3.get(arg0).rep;
753
759
  let ret;
754
760
  try {
755
- ret = { tag: 'ok', val: getType(arg0 >>> 0) };
761
+ ret = { tag: 'ok', val: Descriptor.prototype.getType.call(rsc0) };
756
762
  } catch (e) {
757
763
  ret = { tag: 'err', val: getErrorPayload(e) };
758
764
  }
759
- const variant2 = ret;
760
- switch (variant2.tag) {
765
+ const variant3 = ret;
766
+ switch (variant3.tag) {
761
767
  case 'ok': {
762
- const e = variant2.val;
768
+ const e = variant3.val;
763
769
  dataView(memory0).setInt8(arg1 + 0, 0, true);
764
- const val0 = e;
765
- let enum0;
766
- switch (val0) {
770
+ const val1 = e;
771
+ let enum1;
772
+ switch (val1) {
767
773
  case 'unknown': {
768
- enum0 = 0;
774
+ enum1 = 0;
769
775
  break;
770
776
  }
771
777
  case 'block-device': {
772
- enum0 = 1;
778
+ enum1 = 1;
773
779
  break;
774
780
  }
775
781
  case 'character-device': {
776
- enum0 = 2;
782
+ enum1 = 2;
777
783
  break;
778
784
  }
779
785
  case 'directory': {
780
- enum0 = 3;
786
+ enum1 = 3;
781
787
  break;
782
788
  }
783
789
  case 'fifo': {
784
- enum0 = 4;
790
+ enum1 = 4;
785
791
  break;
786
792
  }
787
793
  case 'symbolic-link': {
788
- enum0 = 5;
794
+ enum1 = 5;
789
795
  break;
790
796
  }
791
797
  case 'regular-file': {
792
- enum0 = 6;
798
+ enum1 = 6;
793
799
  break;
794
800
  }
795
801
  case 'socket': {
796
- enum0 = 7;
802
+ enum1 = 7;
797
803
  break;
798
804
  }
799
805
  default: {
@@ -801,164 +807,164 @@ function trampoline14(arg0, arg1) {
801
807
  console.error(e);
802
808
  }
803
809
 
804
- throw new TypeError(`"${val0}" is not one of the cases of descriptor-type`);
810
+ throw new TypeError(`"${val1}" is not one of the cases of descriptor-type`);
805
811
  }
806
812
  }
807
- dataView(memory0).setInt8(arg1 + 1, enum0, true);
813
+ dataView(memory0).setInt8(arg1 + 1, enum1, true);
808
814
  break;
809
815
  }
810
816
  case 'err': {
811
- const e = variant2.val;
817
+ const e = variant3.val;
812
818
  dataView(memory0).setInt8(arg1 + 0, 1, true);
813
- const val1 = e;
814
- let enum1;
815
- switch (val1) {
819
+ const val2 = e;
820
+ let enum2;
821
+ switch (val2) {
816
822
  case 'access': {
817
- enum1 = 0;
823
+ enum2 = 0;
818
824
  break;
819
825
  }
820
826
  case 'would-block': {
821
- enum1 = 1;
827
+ enum2 = 1;
822
828
  break;
823
829
  }
824
830
  case 'already': {
825
- enum1 = 2;
831
+ enum2 = 2;
826
832
  break;
827
833
  }
828
834
  case 'bad-descriptor': {
829
- enum1 = 3;
835
+ enum2 = 3;
830
836
  break;
831
837
  }
832
838
  case 'busy': {
833
- enum1 = 4;
839
+ enum2 = 4;
834
840
  break;
835
841
  }
836
842
  case 'deadlock': {
837
- enum1 = 5;
843
+ enum2 = 5;
838
844
  break;
839
845
  }
840
846
  case 'quota': {
841
- enum1 = 6;
847
+ enum2 = 6;
842
848
  break;
843
849
  }
844
850
  case 'exist': {
845
- enum1 = 7;
851
+ enum2 = 7;
846
852
  break;
847
853
  }
848
854
  case 'file-too-large': {
849
- enum1 = 8;
855
+ enum2 = 8;
850
856
  break;
851
857
  }
852
858
  case 'illegal-byte-sequence': {
853
- enum1 = 9;
859
+ enum2 = 9;
854
860
  break;
855
861
  }
856
862
  case 'in-progress': {
857
- enum1 = 10;
863
+ enum2 = 10;
858
864
  break;
859
865
  }
860
866
  case 'interrupted': {
861
- enum1 = 11;
867
+ enum2 = 11;
862
868
  break;
863
869
  }
864
870
  case 'invalid': {
865
- enum1 = 12;
871
+ enum2 = 12;
866
872
  break;
867
873
  }
868
874
  case 'io': {
869
- enum1 = 13;
875
+ enum2 = 13;
870
876
  break;
871
877
  }
872
878
  case 'is-directory': {
873
- enum1 = 14;
879
+ enum2 = 14;
874
880
  break;
875
881
  }
876
882
  case 'loop': {
877
- enum1 = 15;
883
+ enum2 = 15;
878
884
  break;
879
885
  }
880
886
  case 'too-many-links': {
881
- enum1 = 16;
887
+ enum2 = 16;
882
888
  break;
883
889
  }
884
890
  case 'message-size': {
885
- enum1 = 17;
891
+ enum2 = 17;
886
892
  break;
887
893
  }
888
894
  case 'name-too-long': {
889
- enum1 = 18;
895
+ enum2 = 18;
890
896
  break;
891
897
  }
892
898
  case 'no-device': {
893
- enum1 = 19;
899
+ enum2 = 19;
894
900
  break;
895
901
  }
896
902
  case 'no-entry': {
897
- enum1 = 20;
903
+ enum2 = 20;
898
904
  break;
899
905
  }
900
906
  case 'no-lock': {
901
- enum1 = 21;
907
+ enum2 = 21;
902
908
  break;
903
909
  }
904
910
  case 'insufficient-memory': {
905
- enum1 = 22;
911
+ enum2 = 22;
906
912
  break;
907
913
  }
908
914
  case 'insufficient-space': {
909
- enum1 = 23;
915
+ enum2 = 23;
910
916
  break;
911
917
  }
912
918
  case 'not-directory': {
913
- enum1 = 24;
919
+ enum2 = 24;
914
920
  break;
915
921
  }
916
922
  case 'not-empty': {
917
- enum1 = 25;
923
+ enum2 = 25;
918
924
  break;
919
925
  }
920
926
  case 'not-recoverable': {
921
- enum1 = 26;
927
+ enum2 = 26;
922
928
  break;
923
929
  }
924
930
  case 'unsupported': {
925
- enum1 = 27;
931
+ enum2 = 27;
926
932
  break;
927
933
  }
928
934
  case 'no-tty': {
929
- enum1 = 28;
935
+ enum2 = 28;
930
936
  break;
931
937
  }
932
938
  case 'no-such-device': {
933
- enum1 = 29;
939
+ enum2 = 29;
934
940
  break;
935
941
  }
936
942
  case 'overflow': {
937
- enum1 = 30;
943
+ enum2 = 30;
938
944
  break;
939
945
  }
940
946
  case 'not-permitted': {
941
- enum1 = 31;
947
+ enum2 = 31;
942
948
  break;
943
949
  }
944
950
  case 'pipe': {
945
- enum1 = 32;
951
+ enum2 = 32;
946
952
  break;
947
953
  }
948
954
  case 'read-only': {
949
- enum1 = 33;
955
+ enum2 = 33;
950
956
  break;
951
957
  }
952
958
  case 'invalid-seek': {
953
- enum1 = 34;
959
+ enum2 = 34;
954
960
  break;
955
961
  }
956
962
  case 'text-file-busy': {
957
- enum1 = 35;
963
+ enum2 = 35;
958
964
  break;
959
965
  }
960
966
  case 'cross-device': {
961
- enum1 = 36;
967
+ enum2 = 36;
962
968
  break;
963
969
  }
964
970
  default: {
@@ -966,10 +972,10 @@ function trampoline14(arg0, arg1) {
966
972
  console.error(e);
967
973
  }
968
974
 
969
- throw new TypeError(`"${val1}" is not one of the cases of error-code`);
975
+ throw new TypeError(`"${val2}" is not one of the cases of error-code`);
970
976
  }
971
977
  }
972
- dataView(memory0).setInt8(arg1 + 1, enum1, true);
978
+ dataView(memory0).setInt8(arg1 + 1, enum2, true);
973
979
  break;
974
980
  }
975
981
  default: {
@@ -978,228 +984,250 @@ function trampoline14(arg0, arg1) {
978
984
  }
979
985
  }
980
986
 
981
- function trampoline15(arg0, arg1) {
987
+ function trampoline17(arg0, arg1) {
988
+ const rsc0 = handleTable3.get(arg0).rep;
982
989
  let ret;
983
990
  try {
984
- ret = { tag: 'ok', val: stat(arg0 >>> 0) };
991
+ ret = { tag: 'ok', val: Descriptor.prototype.stat.call(rsc0) };
985
992
  } catch (e) {
986
993
  ret = { tag: 'err', val: getErrorPayload(e) };
987
994
  }
988
- const variant6 = ret;
989
- switch (variant6.tag) {
995
+ const variant10 = ret;
996
+ switch (variant10.tag) {
990
997
  case 'ok': {
991
- const e = variant6.val;
998
+ const e = variant10.val;
992
999
  dataView(memory0).setInt8(arg1 + 0, 0, true);
993
- const {type: v0_0, linkCount: v0_1, size: v0_2, dataAccessTimestamp: v0_3, dataModificationTimestamp: v0_4, statusChangeTimestamp: v0_5 } = e;
994
- const val1 = v0_0;
995
- let enum1;
996
- switch (val1) {
1000
+ const {type: v1_0, linkCount: v1_1, size: v1_2, dataAccessTimestamp: v1_3, dataModificationTimestamp: v1_4, statusChangeTimestamp: v1_5 } = e;
1001
+ const val2 = v1_0;
1002
+ let enum2;
1003
+ switch (val2) {
997
1004
  case 'unknown': {
998
- enum1 = 0;
1005
+ enum2 = 0;
999
1006
  break;
1000
1007
  }
1001
1008
  case 'block-device': {
1002
- enum1 = 1;
1009
+ enum2 = 1;
1003
1010
  break;
1004
1011
  }
1005
1012
  case 'character-device': {
1006
- enum1 = 2;
1013
+ enum2 = 2;
1007
1014
  break;
1008
1015
  }
1009
1016
  case 'directory': {
1010
- enum1 = 3;
1017
+ enum2 = 3;
1011
1018
  break;
1012
1019
  }
1013
1020
  case 'fifo': {
1014
- enum1 = 4;
1021
+ enum2 = 4;
1015
1022
  break;
1016
1023
  }
1017
1024
  case 'symbolic-link': {
1018
- enum1 = 5;
1025
+ enum2 = 5;
1019
1026
  break;
1020
1027
  }
1021
1028
  case 'regular-file': {
1022
- enum1 = 6;
1029
+ enum2 = 6;
1023
1030
  break;
1024
1031
  }
1025
1032
  case 'socket': {
1026
- enum1 = 7;
1033
+ enum2 = 7;
1027
1034
  break;
1028
1035
  }
1029
1036
  default: {
1030
- if ((v0_0) instanceof Error) {
1031
- console.error(v0_0);
1037
+ if ((v1_0) instanceof Error) {
1038
+ console.error(v1_0);
1032
1039
  }
1033
1040
 
1034
- throw new TypeError(`"${val1}" is not one of the cases of descriptor-type`);
1041
+ throw new TypeError(`"${val2}" is not one of the cases of descriptor-type`);
1035
1042
  }
1036
1043
  }
1037
- dataView(memory0).setInt8(arg1 + 8, enum1, true);
1038
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v0_1), true);
1039
- dataView(memory0).setBigInt64(arg1 + 24, toUint64(v0_2), true);
1040
- const {seconds: v2_0, nanoseconds: v2_1 } = v0_3;
1041
- dataView(memory0).setBigInt64(arg1 + 32, toUint64(v2_0), true);
1042
- dataView(memory0).setInt32(arg1 + 40, toUint32(v2_1), true);
1043
- const {seconds: v3_0, nanoseconds: v3_1 } = v0_4;
1044
- dataView(memory0).setBigInt64(arg1 + 48, toUint64(v3_0), true);
1045
- dataView(memory0).setInt32(arg1 + 56, toUint32(v3_1), true);
1046
- const {seconds: v4_0, nanoseconds: v4_1 } = v0_5;
1047
- dataView(memory0).setBigInt64(arg1 + 64, toUint64(v4_0), true);
1048
- dataView(memory0).setInt32(arg1 + 72, toUint32(v4_1), true);
1044
+ dataView(memory0).setInt8(arg1 + 8, enum2, true);
1045
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v1_1), true);
1046
+ dataView(memory0).setBigInt64(arg1 + 24, toUint64(v1_2), true);
1047
+ const variant4 = v1_3;
1048
+ if (variant4 === null || variant4=== undefined) {
1049
+ dataView(memory0).setInt8(arg1 + 32, 0, true);
1050
+ } else {
1051
+ const e = variant4;
1052
+ dataView(memory0).setInt8(arg1 + 32, 1, true);
1053
+ const {seconds: v3_0, nanoseconds: v3_1 } = e;
1054
+ dataView(memory0).setBigInt64(arg1 + 40, toUint64(v3_0), true);
1055
+ dataView(memory0).setInt32(arg1 + 48, toUint32(v3_1), true);
1056
+ }
1057
+ const variant6 = v1_4;
1058
+ if (variant6 === null || variant6=== undefined) {
1059
+ dataView(memory0).setInt8(arg1 + 56, 0, true);
1060
+ } else {
1061
+ const e = variant6;
1062
+ dataView(memory0).setInt8(arg1 + 56, 1, true);
1063
+ const {seconds: v5_0, nanoseconds: v5_1 } = e;
1064
+ dataView(memory0).setBigInt64(arg1 + 64, toUint64(v5_0), true);
1065
+ dataView(memory0).setInt32(arg1 + 72, toUint32(v5_1), true);
1066
+ }
1067
+ const variant8 = v1_5;
1068
+ if (variant8 === null || variant8=== undefined) {
1069
+ dataView(memory0).setInt8(arg1 + 80, 0, true);
1070
+ } else {
1071
+ const e = variant8;
1072
+ dataView(memory0).setInt8(arg1 + 80, 1, true);
1073
+ const {seconds: v7_0, nanoseconds: v7_1 } = e;
1074
+ dataView(memory0).setBigInt64(arg1 + 88, toUint64(v7_0), true);
1075
+ dataView(memory0).setInt32(arg1 + 96, toUint32(v7_1), true);
1076
+ }
1049
1077
  break;
1050
1078
  }
1051
1079
  case 'err': {
1052
- const e = variant6.val;
1080
+ const e = variant10.val;
1053
1081
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1054
- const val5 = e;
1055
- let enum5;
1056
- switch (val5) {
1082
+ const val9 = e;
1083
+ let enum9;
1084
+ switch (val9) {
1057
1085
  case 'access': {
1058
- enum5 = 0;
1086
+ enum9 = 0;
1059
1087
  break;
1060
1088
  }
1061
1089
  case 'would-block': {
1062
- enum5 = 1;
1090
+ enum9 = 1;
1063
1091
  break;
1064
1092
  }
1065
1093
  case 'already': {
1066
- enum5 = 2;
1094
+ enum9 = 2;
1067
1095
  break;
1068
1096
  }
1069
1097
  case 'bad-descriptor': {
1070
- enum5 = 3;
1098
+ enum9 = 3;
1071
1099
  break;
1072
1100
  }
1073
1101
  case 'busy': {
1074
- enum5 = 4;
1102
+ enum9 = 4;
1075
1103
  break;
1076
1104
  }
1077
1105
  case 'deadlock': {
1078
- enum5 = 5;
1106
+ enum9 = 5;
1079
1107
  break;
1080
1108
  }
1081
1109
  case 'quota': {
1082
- enum5 = 6;
1110
+ enum9 = 6;
1083
1111
  break;
1084
1112
  }
1085
1113
  case 'exist': {
1086
- enum5 = 7;
1114
+ enum9 = 7;
1087
1115
  break;
1088
1116
  }
1089
1117
  case 'file-too-large': {
1090
- enum5 = 8;
1118
+ enum9 = 8;
1091
1119
  break;
1092
1120
  }
1093
1121
  case 'illegal-byte-sequence': {
1094
- enum5 = 9;
1122
+ enum9 = 9;
1095
1123
  break;
1096
1124
  }
1097
1125
  case 'in-progress': {
1098
- enum5 = 10;
1126
+ enum9 = 10;
1099
1127
  break;
1100
1128
  }
1101
1129
  case 'interrupted': {
1102
- enum5 = 11;
1130
+ enum9 = 11;
1103
1131
  break;
1104
1132
  }
1105
1133
  case 'invalid': {
1106
- enum5 = 12;
1134
+ enum9 = 12;
1107
1135
  break;
1108
1136
  }
1109
1137
  case 'io': {
1110
- enum5 = 13;
1138
+ enum9 = 13;
1111
1139
  break;
1112
1140
  }
1113
1141
  case 'is-directory': {
1114
- enum5 = 14;
1142
+ enum9 = 14;
1115
1143
  break;
1116
1144
  }
1117
1145
  case 'loop': {
1118
- enum5 = 15;
1146
+ enum9 = 15;
1119
1147
  break;
1120
1148
  }
1121
1149
  case 'too-many-links': {
1122
- enum5 = 16;
1150
+ enum9 = 16;
1123
1151
  break;
1124
1152
  }
1125
1153
  case 'message-size': {
1126
- enum5 = 17;
1154
+ enum9 = 17;
1127
1155
  break;
1128
1156
  }
1129
1157
  case 'name-too-long': {
1130
- enum5 = 18;
1158
+ enum9 = 18;
1131
1159
  break;
1132
1160
  }
1133
1161
  case 'no-device': {
1134
- enum5 = 19;
1162
+ enum9 = 19;
1135
1163
  break;
1136
1164
  }
1137
1165
  case 'no-entry': {
1138
- enum5 = 20;
1166
+ enum9 = 20;
1139
1167
  break;
1140
1168
  }
1141
1169
  case 'no-lock': {
1142
- enum5 = 21;
1170
+ enum9 = 21;
1143
1171
  break;
1144
1172
  }
1145
1173
  case 'insufficient-memory': {
1146
- enum5 = 22;
1174
+ enum9 = 22;
1147
1175
  break;
1148
1176
  }
1149
1177
  case 'insufficient-space': {
1150
- enum5 = 23;
1178
+ enum9 = 23;
1151
1179
  break;
1152
1180
  }
1153
1181
  case 'not-directory': {
1154
- enum5 = 24;
1182
+ enum9 = 24;
1155
1183
  break;
1156
1184
  }
1157
1185
  case 'not-empty': {
1158
- enum5 = 25;
1186
+ enum9 = 25;
1159
1187
  break;
1160
1188
  }
1161
1189
  case 'not-recoverable': {
1162
- enum5 = 26;
1190
+ enum9 = 26;
1163
1191
  break;
1164
1192
  }
1165
1193
  case 'unsupported': {
1166
- enum5 = 27;
1194
+ enum9 = 27;
1167
1195
  break;
1168
1196
  }
1169
1197
  case 'no-tty': {
1170
- enum5 = 28;
1198
+ enum9 = 28;
1171
1199
  break;
1172
1200
  }
1173
1201
  case 'no-such-device': {
1174
- enum5 = 29;
1202
+ enum9 = 29;
1175
1203
  break;
1176
1204
  }
1177
1205
  case 'overflow': {
1178
- enum5 = 30;
1206
+ enum9 = 30;
1179
1207
  break;
1180
1208
  }
1181
1209
  case 'not-permitted': {
1182
- enum5 = 31;
1210
+ enum9 = 31;
1183
1211
  break;
1184
1212
  }
1185
1213
  case 'pipe': {
1186
- enum5 = 32;
1214
+ enum9 = 32;
1187
1215
  break;
1188
1216
  }
1189
1217
  case 'read-only': {
1190
- enum5 = 33;
1218
+ enum9 = 33;
1191
1219
  break;
1192
1220
  }
1193
1221
  case 'invalid-seek': {
1194
- enum5 = 34;
1222
+ enum9 = 34;
1195
1223
  break;
1196
1224
  }
1197
1225
  case 'text-file-busy': {
1198
- enum5 = 35;
1226
+ enum9 = 35;
1199
1227
  break;
1200
1228
  }
1201
1229
  case 'cross-device': {
1202
- enum5 = 36;
1230
+ enum9 = 36;
1203
1231
  break;
1204
1232
  }
1205
1233
  default: {
@@ -1207,10 +1235,10 @@ function trampoline15(arg0, arg1) {
1207
1235
  console.error(e);
1208
1236
  }
1209
1237
 
1210
- throw new TypeError(`"${val5}" is not one of the cases of error-code`);
1238
+ throw new TypeError(`"${val9}" is not one of the cases of error-code`);
1211
1239
  }
1212
1240
  }
1213
- dataView(memory0).setInt8(arg1 + 8, enum5, true);
1241
+ dataView(memory0).setInt8(arg1 + 8, enum9, true);
1214
1242
  break;
1215
1243
  }
1216
1244
  default: {
@@ -1219,20 +1247,21 @@ function trampoline15(arg0, arg1) {
1219
1247
  }
1220
1248
  }
1221
1249
 
1222
- function trampoline16(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1250
+ function trampoline18(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1251
+ const rsc0 = handleTable3.get(arg0).rep;
1223
1252
  if ((arg1 & 4294967294) !== 0) {
1224
1253
  throw new TypeError('flags have extraneous bits set');
1225
1254
  }
1226
- const flags0 = {
1255
+ const flags1 = {
1227
1256
  symlinkFollow: Boolean(arg1 & 1),
1228
1257
  };
1229
- const ptr1 = arg2;
1230
- const len1 = arg3;
1231
- const result1 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr1, len1));
1258
+ const ptr2 = arg2;
1259
+ const len2 = arg3;
1260
+ const result2 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr2, len2));
1232
1261
  if ((arg4 & 4294967280) !== 0) {
1233
1262
  throw new TypeError('flags have extraneous bits set');
1234
1263
  }
1235
- const flags2 = {
1264
+ const flags3 = {
1236
1265
  create: Boolean(arg4 & 1),
1237
1266
  directory: Boolean(arg4 & 2),
1238
1267
  exclusive: Boolean(arg4 & 4),
@@ -1241,7 +1270,7 @@ function trampoline16(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1241
1270
  if ((arg5 & 4294967232) !== 0) {
1242
1271
  throw new TypeError('flags have extraneous bits set');
1243
1272
  }
1244
- const flags3 = {
1273
+ const flags4 = {
1245
1274
  read: Boolean(arg5 & 1),
1246
1275
  write: Boolean(arg5 & 2),
1247
1276
  fileIntegritySync: Boolean(arg5 & 4),
@@ -1252,177 +1281,182 @@ function trampoline16(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1252
1281
  if ((arg6 & 4294967288) !== 0) {
1253
1282
  throw new TypeError('flags have extraneous bits set');
1254
1283
  }
1255
- const flags4 = {
1284
+ const flags5 = {
1256
1285
  readable: Boolean(arg6 & 1),
1257
1286
  writable: Boolean(arg6 & 2),
1258
1287
  executable: Boolean(arg6 & 4),
1259
1288
  };
1260
1289
  let ret;
1261
1290
  try {
1262
- ret = { tag: 'ok', val: openAt(arg0 >>> 0, flags0, result1, flags2, flags3, flags4) };
1291
+ ret = { tag: 'ok', val: Descriptor.prototype.openAt.call(rsc0, flags1, result2, flags3, flags4, flags5) };
1263
1292
  } catch (e) {
1264
1293
  ret = { tag: 'err', val: getErrorPayload(e) };
1265
1294
  }
1266
- const variant6 = ret;
1267
- switch (variant6.tag) {
1295
+ const variant8 = ret;
1296
+ switch (variant8.tag) {
1268
1297
  case 'ok': {
1269
- const e = variant6.val;
1298
+ const e = variant8.val;
1270
1299
  dataView(memory0).setInt8(arg7 + 0, 0, true);
1271
- dataView(memory0).setInt32(arg7 + 4, toUint32(e), true);
1300
+ if (!(e instanceof Descriptor)) {
1301
+ throw new Error('Not a valid "Descriptor" resource.');
1302
+ }
1303
+ const handle6 = handleCnt3++;
1304
+ handleTable3.set(handle6, { rep: e, own: true });
1305
+ dataView(memory0).setInt32(arg7 + 4, handle6, true);
1272
1306
  break;
1273
1307
  }
1274
1308
  case 'err': {
1275
- const e = variant6.val;
1309
+ const e = variant8.val;
1276
1310
  dataView(memory0).setInt8(arg7 + 0, 1, true);
1277
- const val5 = e;
1278
- let enum5;
1279
- switch (val5) {
1311
+ const val7 = e;
1312
+ let enum7;
1313
+ switch (val7) {
1280
1314
  case 'access': {
1281
- enum5 = 0;
1315
+ enum7 = 0;
1282
1316
  break;
1283
1317
  }
1284
1318
  case 'would-block': {
1285
- enum5 = 1;
1319
+ enum7 = 1;
1286
1320
  break;
1287
1321
  }
1288
1322
  case 'already': {
1289
- enum5 = 2;
1323
+ enum7 = 2;
1290
1324
  break;
1291
1325
  }
1292
1326
  case 'bad-descriptor': {
1293
- enum5 = 3;
1327
+ enum7 = 3;
1294
1328
  break;
1295
1329
  }
1296
1330
  case 'busy': {
1297
- enum5 = 4;
1331
+ enum7 = 4;
1298
1332
  break;
1299
1333
  }
1300
1334
  case 'deadlock': {
1301
- enum5 = 5;
1335
+ enum7 = 5;
1302
1336
  break;
1303
1337
  }
1304
1338
  case 'quota': {
1305
- enum5 = 6;
1339
+ enum7 = 6;
1306
1340
  break;
1307
1341
  }
1308
1342
  case 'exist': {
1309
- enum5 = 7;
1343
+ enum7 = 7;
1310
1344
  break;
1311
1345
  }
1312
1346
  case 'file-too-large': {
1313
- enum5 = 8;
1347
+ enum7 = 8;
1314
1348
  break;
1315
1349
  }
1316
1350
  case 'illegal-byte-sequence': {
1317
- enum5 = 9;
1351
+ enum7 = 9;
1318
1352
  break;
1319
1353
  }
1320
1354
  case 'in-progress': {
1321
- enum5 = 10;
1355
+ enum7 = 10;
1322
1356
  break;
1323
1357
  }
1324
1358
  case 'interrupted': {
1325
- enum5 = 11;
1359
+ enum7 = 11;
1326
1360
  break;
1327
1361
  }
1328
1362
  case 'invalid': {
1329
- enum5 = 12;
1363
+ enum7 = 12;
1330
1364
  break;
1331
1365
  }
1332
1366
  case 'io': {
1333
- enum5 = 13;
1367
+ enum7 = 13;
1334
1368
  break;
1335
1369
  }
1336
1370
  case 'is-directory': {
1337
- enum5 = 14;
1371
+ enum7 = 14;
1338
1372
  break;
1339
1373
  }
1340
1374
  case 'loop': {
1341
- enum5 = 15;
1375
+ enum7 = 15;
1342
1376
  break;
1343
1377
  }
1344
1378
  case 'too-many-links': {
1345
- enum5 = 16;
1379
+ enum7 = 16;
1346
1380
  break;
1347
1381
  }
1348
1382
  case 'message-size': {
1349
- enum5 = 17;
1383
+ enum7 = 17;
1350
1384
  break;
1351
1385
  }
1352
1386
  case 'name-too-long': {
1353
- enum5 = 18;
1387
+ enum7 = 18;
1354
1388
  break;
1355
1389
  }
1356
1390
  case 'no-device': {
1357
- enum5 = 19;
1391
+ enum7 = 19;
1358
1392
  break;
1359
1393
  }
1360
1394
  case 'no-entry': {
1361
- enum5 = 20;
1395
+ enum7 = 20;
1362
1396
  break;
1363
1397
  }
1364
1398
  case 'no-lock': {
1365
- enum5 = 21;
1399
+ enum7 = 21;
1366
1400
  break;
1367
1401
  }
1368
1402
  case 'insufficient-memory': {
1369
- enum5 = 22;
1403
+ enum7 = 22;
1370
1404
  break;
1371
1405
  }
1372
1406
  case 'insufficient-space': {
1373
- enum5 = 23;
1407
+ enum7 = 23;
1374
1408
  break;
1375
1409
  }
1376
1410
  case 'not-directory': {
1377
- enum5 = 24;
1411
+ enum7 = 24;
1378
1412
  break;
1379
1413
  }
1380
1414
  case 'not-empty': {
1381
- enum5 = 25;
1415
+ enum7 = 25;
1382
1416
  break;
1383
1417
  }
1384
1418
  case 'not-recoverable': {
1385
- enum5 = 26;
1419
+ enum7 = 26;
1386
1420
  break;
1387
1421
  }
1388
1422
  case 'unsupported': {
1389
- enum5 = 27;
1423
+ enum7 = 27;
1390
1424
  break;
1391
1425
  }
1392
1426
  case 'no-tty': {
1393
- enum5 = 28;
1427
+ enum7 = 28;
1394
1428
  break;
1395
1429
  }
1396
1430
  case 'no-such-device': {
1397
- enum5 = 29;
1431
+ enum7 = 29;
1398
1432
  break;
1399
1433
  }
1400
1434
  case 'overflow': {
1401
- enum5 = 30;
1435
+ enum7 = 30;
1402
1436
  break;
1403
1437
  }
1404
1438
  case 'not-permitted': {
1405
- enum5 = 31;
1439
+ enum7 = 31;
1406
1440
  break;
1407
1441
  }
1408
1442
  case 'pipe': {
1409
- enum5 = 32;
1443
+ enum7 = 32;
1410
1444
  break;
1411
1445
  }
1412
1446
  case 'read-only': {
1413
- enum5 = 33;
1447
+ enum7 = 33;
1414
1448
  break;
1415
1449
  }
1416
1450
  case 'invalid-seek': {
1417
- enum5 = 34;
1451
+ enum7 = 34;
1418
1452
  break;
1419
1453
  }
1420
1454
  case 'text-file-busy': {
1421
- enum5 = 35;
1455
+ enum7 = 35;
1422
1456
  break;
1423
1457
  }
1424
1458
  case 'cross-device': {
1425
- enum5 = 36;
1459
+ enum7 = 36;
1426
1460
  break;
1427
1461
  }
1428
1462
  default: {
@@ -1430,10 +1464,10 @@ function trampoline16(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1430
1464
  console.error(e);
1431
1465
  }
1432
1466
 
1433
- throw new TypeError(`"${val5}" is not one of the cases of error-code`);
1467
+ throw new TypeError(`"${val7}" is not one of the cases of error-code`);
1434
1468
  }
1435
1469
  }
1436
- dataView(memory0).setInt8(arg7 + 4, enum5, true);
1470
+ dataView(memory0).setInt8(arg7 + 4, enum7, true);
1437
1471
  break;
1438
1472
  }
1439
1473
  default: {
@@ -1442,175 +1476,176 @@ function trampoline16(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
1442
1476
  }
1443
1477
  }
1444
1478
 
1445
- function trampoline17(arg0, arg1) {
1479
+ function trampoline19(arg0, arg1) {
1480
+ const rsc0 = handleTable3.get(arg0).rep;
1446
1481
  let ret;
1447
1482
  try {
1448
- ret = { tag: 'ok', val: metadataHash(arg0 >>> 0) };
1483
+ ret = { tag: 'ok', val: Descriptor.prototype.metadataHash.call(rsc0) };
1449
1484
  } catch (e) {
1450
1485
  ret = { tag: 'err', val: getErrorPayload(e) };
1451
1486
  }
1452
- const variant2 = ret;
1453
- switch (variant2.tag) {
1487
+ const variant3 = ret;
1488
+ switch (variant3.tag) {
1454
1489
  case 'ok': {
1455
- const e = variant2.val;
1490
+ const e = variant3.val;
1456
1491
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1457
- const {lower: v0_0, upper: v0_1 } = e;
1458
- dataView(memory0).setBigInt64(arg1 + 8, toUint64(v0_0), true);
1459
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v0_1), true);
1492
+ const {lower: v1_0, upper: v1_1 } = e;
1493
+ dataView(memory0).setBigInt64(arg1 + 8, toUint64(v1_0), true);
1494
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v1_1), true);
1460
1495
  break;
1461
1496
  }
1462
1497
  case 'err': {
1463
- const e = variant2.val;
1498
+ const e = variant3.val;
1464
1499
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1465
- const val1 = e;
1466
- let enum1;
1467
- switch (val1) {
1500
+ const val2 = e;
1501
+ let enum2;
1502
+ switch (val2) {
1468
1503
  case 'access': {
1469
- enum1 = 0;
1504
+ enum2 = 0;
1470
1505
  break;
1471
1506
  }
1472
1507
  case 'would-block': {
1473
- enum1 = 1;
1508
+ enum2 = 1;
1474
1509
  break;
1475
1510
  }
1476
1511
  case 'already': {
1477
- enum1 = 2;
1512
+ enum2 = 2;
1478
1513
  break;
1479
1514
  }
1480
1515
  case 'bad-descriptor': {
1481
- enum1 = 3;
1516
+ enum2 = 3;
1482
1517
  break;
1483
1518
  }
1484
1519
  case 'busy': {
1485
- enum1 = 4;
1520
+ enum2 = 4;
1486
1521
  break;
1487
1522
  }
1488
1523
  case 'deadlock': {
1489
- enum1 = 5;
1524
+ enum2 = 5;
1490
1525
  break;
1491
1526
  }
1492
1527
  case 'quota': {
1493
- enum1 = 6;
1528
+ enum2 = 6;
1494
1529
  break;
1495
1530
  }
1496
1531
  case 'exist': {
1497
- enum1 = 7;
1532
+ enum2 = 7;
1498
1533
  break;
1499
1534
  }
1500
1535
  case 'file-too-large': {
1501
- enum1 = 8;
1536
+ enum2 = 8;
1502
1537
  break;
1503
1538
  }
1504
1539
  case 'illegal-byte-sequence': {
1505
- enum1 = 9;
1540
+ enum2 = 9;
1506
1541
  break;
1507
1542
  }
1508
1543
  case 'in-progress': {
1509
- enum1 = 10;
1544
+ enum2 = 10;
1510
1545
  break;
1511
1546
  }
1512
1547
  case 'interrupted': {
1513
- enum1 = 11;
1548
+ enum2 = 11;
1514
1549
  break;
1515
1550
  }
1516
1551
  case 'invalid': {
1517
- enum1 = 12;
1552
+ enum2 = 12;
1518
1553
  break;
1519
1554
  }
1520
1555
  case 'io': {
1521
- enum1 = 13;
1556
+ enum2 = 13;
1522
1557
  break;
1523
1558
  }
1524
1559
  case 'is-directory': {
1525
- enum1 = 14;
1560
+ enum2 = 14;
1526
1561
  break;
1527
1562
  }
1528
1563
  case 'loop': {
1529
- enum1 = 15;
1564
+ enum2 = 15;
1530
1565
  break;
1531
1566
  }
1532
1567
  case 'too-many-links': {
1533
- enum1 = 16;
1568
+ enum2 = 16;
1534
1569
  break;
1535
1570
  }
1536
1571
  case 'message-size': {
1537
- enum1 = 17;
1572
+ enum2 = 17;
1538
1573
  break;
1539
1574
  }
1540
1575
  case 'name-too-long': {
1541
- enum1 = 18;
1576
+ enum2 = 18;
1542
1577
  break;
1543
1578
  }
1544
1579
  case 'no-device': {
1545
- enum1 = 19;
1580
+ enum2 = 19;
1546
1581
  break;
1547
1582
  }
1548
1583
  case 'no-entry': {
1549
- enum1 = 20;
1584
+ enum2 = 20;
1550
1585
  break;
1551
1586
  }
1552
1587
  case 'no-lock': {
1553
- enum1 = 21;
1588
+ enum2 = 21;
1554
1589
  break;
1555
1590
  }
1556
1591
  case 'insufficient-memory': {
1557
- enum1 = 22;
1592
+ enum2 = 22;
1558
1593
  break;
1559
1594
  }
1560
1595
  case 'insufficient-space': {
1561
- enum1 = 23;
1596
+ enum2 = 23;
1562
1597
  break;
1563
1598
  }
1564
1599
  case 'not-directory': {
1565
- enum1 = 24;
1600
+ enum2 = 24;
1566
1601
  break;
1567
1602
  }
1568
1603
  case 'not-empty': {
1569
- enum1 = 25;
1604
+ enum2 = 25;
1570
1605
  break;
1571
1606
  }
1572
1607
  case 'not-recoverable': {
1573
- enum1 = 26;
1608
+ enum2 = 26;
1574
1609
  break;
1575
1610
  }
1576
1611
  case 'unsupported': {
1577
- enum1 = 27;
1612
+ enum2 = 27;
1578
1613
  break;
1579
1614
  }
1580
1615
  case 'no-tty': {
1581
- enum1 = 28;
1616
+ enum2 = 28;
1582
1617
  break;
1583
1618
  }
1584
1619
  case 'no-such-device': {
1585
- enum1 = 29;
1620
+ enum2 = 29;
1586
1621
  break;
1587
1622
  }
1588
1623
  case 'overflow': {
1589
- enum1 = 30;
1624
+ enum2 = 30;
1590
1625
  break;
1591
1626
  }
1592
1627
  case 'not-permitted': {
1593
- enum1 = 31;
1628
+ enum2 = 31;
1594
1629
  break;
1595
1630
  }
1596
1631
  case 'pipe': {
1597
- enum1 = 32;
1632
+ enum2 = 32;
1598
1633
  break;
1599
1634
  }
1600
1635
  case 'read-only': {
1601
- enum1 = 33;
1636
+ enum2 = 33;
1602
1637
  break;
1603
1638
  }
1604
1639
  case 'invalid-seek': {
1605
- enum1 = 34;
1640
+ enum2 = 34;
1606
1641
  break;
1607
1642
  }
1608
1643
  case 'text-file-busy': {
1609
- enum1 = 35;
1644
+ enum2 = 35;
1610
1645
  break;
1611
1646
  }
1612
1647
  case 'cross-device': {
1613
- enum1 = 36;
1648
+ enum2 = 36;
1614
1649
  break;
1615
1650
  }
1616
1651
  default: {
@@ -1618,10 +1653,10 @@ function trampoline17(arg0, arg1) {
1618
1653
  console.error(e);
1619
1654
  }
1620
1655
 
1621
- throw new TypeError(`"${val1}" is not one of the cases of error-code`);
1656
+ throw new TypeError(`"${val2}" is not one of the cases of error-code`);
1622
1657
  }
1623
1658
  }
1624
- dataView(memory0).setInt8(arg1 + 8, enum1, true);
1659
+ dataView(memory0).setInt8(arg1 + 8, enum2, true);
1625
1660
  break;
1626
1661
  }
1627
1662
  default: {
@@ -1630,51 +1665,224 @@ function trampoline17(arg0, arg1) {
1630
1665
  }
1631
1666
  }
1632
1667
 
1633
- function trampoline18(arg0, arg1, arg2) {
1668
+ function trampoline20(arg0, arg1) {
1669
+ const rsc0 = handleTable1.get(arg0).rep;
1670
+ const ret = filesystemErrorCode(rsc0);
1671
+ const variant2 = ret;
1672
+ if (variant2 === null || variant2=== undefined) {
1673
+ dataView(memory0).setInt8(arg1 + 0, 0, true);
1674
+ } else {
1675
+ const e = variant2;
1676
+ dataView(memory0).setInt8(arg1 + 0, 1, true);
1677
+ const val1 = e;
1678
+ let enum1;
1679
+ switch (val1) {
1680
+ case 'access': {
1681
+ enum1 = 0;
1682
+ break;
1683
+ }
1684
+ case 'would-block': {
1685
+ enum1 = 1;
1686
+ break;
1687
+ }
1688
+ case 'already': {
1689
+ enum1 = 2;
1690
+ break;
1691
+ }
1692
+ case 'bad-descriptor': {
1693
+ enum1 = 3;
1694
+ break;
1695
+ }
1696
+ case 'busy': {
1697
+ enum1 = 4;
1698
+ break;
1699
+ }
1700
+ case 'deadlock': {
1701
+ enum1 = 5;
1702
+ break;
1703
+ }
1704
+ case 'quota': {
1705
+ enum1 = 6;
1706
+ break;
1707
+ }
1708
+ case 'exist': {
1709
+ enum1 = 7;
1710
+ break;
1711
+ }
1712
+ case 'file-too-large': {
1713
+ enum1 = 8;
1714
+ break;
1715
+ }
1716
+ case 'illegal-byte-sequence': {
1717
+ enum1 = 9;
1718
+ break;
1719
+ }
1720
+ case 'in-progress': {
1721
+ enum1 = 10;
1722
+ break;
1723
+ }
1724
+ case 'interrupted': {
1725
+ enum1 = 11;
1726
+ break;
1727
+ }
1728
+ case 'invalid': {
1729
+ enum1 = 12;
1730
+ break;
1731
+ }
1732
+ case 'io': {
1733
+ enum1 = 13;
1734
+ break;
1735
+ }
1736
+ case 'is-directory': {
1737
+ enum1 = 14;
1738
+ break;
1739
+ }
1740
+ case 'loop': {
1741
+ enum1 = 15;
1742
+ break;
1743
+ }
1744
+ case 'too-many-links': {
1745
+ enum1 = 16;
1746
+ break;
1747
+ }
1748
+ case 'message-size': {
1749
+ enum1 = 17;
1750
+ break;
1751
+ }
1752
+ case 'name-too-long': {
1753
+ enum1 = 18;
1754
+ break;
1755
+ }
1756
+ case 'no-device': {
1757
+ enum1 = 19;
1758
+ break;
1759
+ }
1760
+ case 'no-entry': {
1761
+ enum1 = 20;
1762
+ break;
1763
+ }
1764
+ case 'no-lock': {
1765
+ enum1 = 21;
1766
+ break;
1767
+ }
1768
+ case 'insufficient-memory': {
1769
+ enum1 = 22;
1770
+ break;
1771
+ }
1772
+ case 'insufficient-space': {
1773
+ enum1 = 23;
1774
+ break;
1775
+ }
1776
+ case 'not-directory': {
1777
+ enum1 = 24;
1778
+ break;
1779
+ }
1780
+ case 'not-empty': {
1781
+ enum1 = 25;
1782
+ break;
1783
+ }
1784
+ case 'not-recoverable': {
1785
+ enum1 = 26;
1786
+ break;
1787
+ }
1788
+ case 'unsupported': {
1789
+ enum1 = 27;
1790
+ break;
1791
+ }
1792
+ case 'no-tty': {
1793
+ enum1 = 28;
1794
+ break;
1795
+ }
1796
+ case 'no-such-device': {
1797
+ enum1 = 29;
1798
+ break;
1799
+ }
1800
+ case 'overflow': {
1801
+ enum1 = 30;
1802
+ break;
1803
+ }
1804
+ case 'not-permitted': {
1805
+ enum1 = 31;
1806
+ break;
1807
+ }
1808
+ case 'pipe': {
1809
+ enum1 = 32;
1810
+ break;
1811
+ }
1812
+ case 'read-only': {
1813
+ enum1 = 33;
1814
+ break;
1815
+ }
1816
+ case 'invalid-seek': {
1817
+ enum1 = 34;
1818
+ break;
1819
+ }
1820
+ case 'text-file-busy': {
1821
+ enum1 = 35;
1822
+ break;
1823
+ }
1824
+ case 'cross-device': {
1825
+ enum1 = 36;
1826
+ break;
1827
+ }
1828
+ default: {
1829
+ if ((e) instanceof Error) {
1830
+ console.error(e);
1831
+ }
1832
+
1833
+ throw new TypeError(`"${val1}" is not one of the cases of error-code`);
1834
+ }
1835
+ }
1836
+ dataView(memory0).setInt8(arg1 + 1, enum1, true);
1837
+ }
1838
+ }
1839
+
1840
+ function trampoline21(arg0, arg1, arg2) {
1841
+ const rsc0 = handleTable0.get(arg0).rep;
1634
1842
  let ret;
1635
1843
  try {
1636
- ret = { tag: 'ok', val: read(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
1844
+ ret = { tag: 'ok', val: InputStream.prototype.read.call(rsc0, BigInt.asUintN(64, arg1)) };
1637
1845
  } catch (e) {
1638
1846
  ret = { tag: 'err', val: getErrorPayload(e) };
1639
1847
  }
1640
- const variant3 = ret;
1641
- switch (variant3.tag) {
1848
+ const variant4 = ret;
1849
+ switch (variant4.tag) {
1642
1850
  case 'ok': {
1643
- const e = variant3.val;
1851
+ const e = variant4.val;
1644
1852
  dataView(memory0).setInt8(arg2 + 0, 0, true);
1645
- const [tuple0_0, tuple0_1] = e;
1646
- const val1 = tuple0_0;
1853
+ const val1 = e;
1647
1854
  const len1 = val1.byteLength;
1648
1855
  const ptr1 = realloc0(0, 0, 1, len1 * 1);
1649
1856
  const src1 = new Uint8Array(val1.buffer || val1, val1.byteOffset, len1 * 1);
1650
1857
  (new Uint8Array(memory0.buffer, ptr1, len1 * 1)).set(src1);
1651
1858
  dataView(memory0).setInt32(arg2 + 8, len1, true);
1652
1859
  dataView(memory0).setInt32(arg2 + 4, ptr1, true);
1653
- const val2 = tuple0_1;
1654
- let enum2;
1655
- switch (val2) {
1656
- case 'open': {
1657
- enum2 = 0;
1860
+ break;
1861
+ }
1862
+ case 'err': {
1863
+ const e = variant4.val;
1864
+ dataView(memory0).setInt8(arg2 + 0, 1, true);
1865
+ const variant3 = e;
1866
+ switch (variant3.tag) {
1867
+ case 'last-operation-failed': {
1868
+ const e = variant3.val;
1869
+ dataView(memory0).setInt8(arg2 + 4, 0, true);
1870
+ if (!(e instanceof Error$1)) {
1871
+ throw new Error('Not a valid "Error" resource.');
1872
+ }
1873
+ const handle2 = handleCnt1++;
1874
+ handleTable1.set(handle2, { rep: e, own: true });
1875
+ dataView(memory0).setInt32(arg2 + 8, handle2, true);
1658
1876
  break;
1659
1877
  }
1660
- case 'ended': {
1661
- enum2 = 1;
1878
+ case 'closed': {
1879
+ dataView(memory0).setInt8(arg2 + 4, 1, true);
1662
1880
  break;
1663
1881
  }
1664
1882
  default: {
1665
- if ((tuple0_1) instanceof Error) {
1666
- console.error(tuple0_1);
1667
- }
1668
-
1669
- throw new TypeError(`"${val2}" is not one of the cases of stream-status`);
1883
+ throw new TypeError('invalid variant specified for StreamError');
1670
1884
  }
1671
1885
  }
1672
- dataView(memory0).setInt8(arg2 + 12, enum2, true);
1673
- break;
1674
- }
1675
- case 'err': {
1676
- const e = variant3.val;
1677
- dataView(memory0).setInt8(arg2 + 0, 1, true);
1678
1886
  break;
1679
1887
  }
1680
1888
  default: {
@@ -1683,51 +1891,52 @@ function trampoline18(arg0, arg1, arg2) {
1683
1891
  }
1684
1892
  }
1685
1893
 
1686
- function trampoline19(arg0, arg1, arg2) {
1894
+ function trampoline22(arg0, arg1, arg2) {
1895
+ const rsc0 = handleTable0.get(arg0).rep;
1687
1896
  let ret;
1688
1897
  try {
1689
- ret = { tag: 'ok', val: blockingRead(arg0 >>> 0, BigInt.asUintN(64, arg1)) };
1898
+ ret = { tag: 'ok', val: InputStream.prototype.blockingRead.call(rsc0, BigInt.asUintN(64, arg1)) };
1690
1899
  } catch (e) {
1691
1900
  ret = { tag: 'err', val: getErrorPayload(e) };
1692
1901
  }
1693
- const variant3 = ret;
1694
- switch (variant3.tag) {
1902
+ const variant4 = ret;
1903
+ switch (variant4.tag) {
1695
1904
  case 'ok': {
1696
- const e = variant3.val;
1905
+ const e = variant4.val;
1697
1906
  dataView(memory0).setInt8(arg2 + 0, 0, true);
1698
- const [tuple0_0, tuple0_1] = e;
1699
- const val1 = tuple0_0;
1907
+ const val1 = e;
1700
1908
  const len1 = val1.byteLength;
1701
1909
  const ptr1 = realloc0(0, 0, 1, len1 * 1);
1702
1910
  const src1 = new Uint8Array(val1.buffer || val1, val1.byteOffset, len1 * 1);
1703
1911
  (new Uint8Array(memory0.buffer, ptr1, len1 * 1)).set(src1);
1704
1912
  dataView(memory0).setInt32(arg2 + 8, len1, true);
1705
1913
  dataView(memory0).setInt32(arg2 + 4, ptr1, true);
1706
- const val2 = tuple0_1;
1707
- let enum2;
1708
- switch (val2) {
1709
- case 'open': {
1710
- enum2 = 0;
1914
+ break;
1915
+ }
1916
+ case 'err': {
1917
+ const e = variant4.val;
1918
+ dataView(memory0).setInt8(arg2 + 0, 1, true);
1919
+ const variant3 = e;
1920
+ switch (variant3.tag) {
1921
+ case 'last-operation-failed': {
1922
+ const e = variant3.val;
1923
+ dataView(memory0).setInt8(arg2 + 4, 0, true);
1924
+ if (!(e instanceof Error$1)) {
1925
+ throw new Error('Not a valid "Error" resource.');
1926
+ }
1927
+ const handle2 = handleCnt1++;
1928
+ handleTable1.set(handle2, { rep: e, own: true });
1929
+ dataView(memory0).setInt32(arg2 + 8, handle2, true);
1711
1930
  break;
1712
1931
  }
1713
- case 'ended': {
1714
- enum2 = 1;
1932
+ case 'closed': {
1933
+ dataView(memory0).setInt8(arg2 + 4, 1, true);
1715
1934
  break;
1716
1935
  }
1717
1936
  default: {
1718
- if ((tuple0_1) instanceof Error) {
1719
- console.error(tuple0_1);
1720
- }
1721
-
1722
- throw new TypeError(`"${val2}" is not one of the cases of stream-status`);
1937
+ throw new TypeError('invalid variant specified for StreamError');
1723
1938
  }
1724
1939
  }
1725
- dataView(memory0).setInt8(arg2 + 12, enum2, true);
1726
- break;
1727
- }
1728
- case 'err': {
1729
- const e = variant3.val;
1730
- dataView(memory0).setInt8(arg2 + 0, 1, true);
1731
1940
  break;
1732
1941
  }
1733
1942
  default: {
@@ -1736,44 +1945,46 @@ function trampoline19(arg0, arg1, arg2) {
1736
1945
  }
1737
1946
  }
1738
1947
 
1739
- function trampoline20(arg0, arg1) {
1948
+ function trampoline23(arg0, arg1) {
1949
+ const rsc0 = handleTable2.get(arg0).rep;
1740
1950
  let ret;
1741
1951
  try {
1742
- ret = { tag: 'ok', val: checkWrite(arg0 >>> 0) };
1952
+ ret = { tag: 'ok', val: OutputStream.prototype.checkWrite.call(rsc0) };
1743
1953
  } catch (e) {
1744
1954
  ret = { tag: 'err', val: getErrorPayload(e) };
1745
1955
  }
1746
- const variant1 = ret;
1747
- switch (variant1.tag) {
1956
+ const variant3 = ret;
1957
+ switch (variant3.tag) {
1748
1958
  case 'ok': {
1749
- const e = variant1.val;
1959
+ const e = variant3.val;
1750
1960
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1751
1961
  dataView(memory0).setBigInt64(arg1 + 8, toUint64(e), true);
1752
1962
  break;
1753
1963
  }
1754
1964
  case 'err': {
1755
- const e = variant1.val;
1965
+ const e = variant3.val;
1756
1966
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1757
- const val0 = e;
1758
- let enum0;
1759
- switch (val0) {
1967
+ const variant2 = e;
1968
+ switch (variant2.tag) {
1760
1969
  case 'last-operation-failed': {
1761
- enum0 = 0;
1970
+ const e = variant2.val;
1971
+ dataView(memory0).setInt8(arg1 + 8, 0, true);
1972
+ if (!(e instanceof Error$1)) {
1973
+ throw new Error('Not a valid "Error" resource.');
1974
+ }
1975
+ const handle1 = handleCnt1++;
1976
+ handleTable1.set(handle1, { rep: e, own: true });
1977
+ dataView(memory0).setInt32(arg1 + 12, handle1, true);
1762
1978
  break;
1763
1979
  }
1764
1980
  case 'closed': {
1765
- enum0 = 1;
1981
+ dataView(memory0).setInt8(arg1 + 8, 1, true);
1766
1982
  break;
1767
1983
  }
1768
1984
  default: {
1769
- if ((e) instanceof Error) {
1770
- console.error(e);
1771
- }
1772
-
1773
- throw new TypeError(`"${val0}" is not one of the cases of write-error`);
1985
+ throw new TypeError('invalid variant specified for StreamError');
1774
1986
  }
1775
1987
  }
1776
- dataView(memory0).setInt8(arg1 + 8, enum0, true);
1777
1988
  break;
1778
1989
  }
1779
1990
  default: {
@@ -1782,46 +1993,48 @@ function trampoline20(arg0, arg1) {
1782
1993
  }
1783
1994
  }
1784
1995
 
1785
- function trampoline21(arg0, arg1, arg2, arg3) {
1786
- const ptr0 = arg1;
1787
- const len0 = arg2;
1788
- const result0 = new Uint8Array(memory0.buffer.slice(ptr0, ptr0 + len0 * 1));
1996
+ function trampoline24(arg0, arg1, arg2, arg3) {
1997
+ const rsc0 = handleTable2.get(arg0).rep;
1998
+ const ptr1 = arg1;
1999
+ const len1 = arg2;
2000
+ const result1 = new Uint8Array(memory0.buffer.slice(ptr1, ptr1 + len1 * 1));
1789
2001
  let ret;
1790
2002
  try {
1791
- ret = { tag: 'ok', val: write(arg0 >>> 0, result0) };
2003
+ ret = { tag: 'ok', val: OutputStream.prototype.write.call(rsc0, result1) };
1792
2004
  } catch (e) {
1793
2005
  ret = { tag: 'err', val: getErrorPayload(e) };
1794
2006
  }
1795
- const variant2 = ret;
1796
- switch (variant2.tag) {
2007
+ const variant4 = ret;
2008
+ switch (variant4.tag) {
1797
2009
  case 'ok': {
1798
- const e = variant2.val;
2010
+ const e = variant4.val;
1799
2011
  dataView(memory0).setInt8(arg3 + 0, 0, true);
1800
2012
  break;
1801
2013
  }
1802
2014
  case 'err': {
1803
- const e = variant2.val;
2015
+ const e = variant4.val;
1804
2016
  dataView(memory0).setInt8(arg3 + 0, 1, true);
1805
- const val1 = e;
1806
- let enum1;
1807
- switch (val1) {
2017
+ const variant3 = e;
2018
+ switch (variant3.tag) {
1808
2019
  case 'last-operation-failed': {
1809
- enum1 = 0;
2020
+ const e = variant3.val;
2021
+ dataView(memory0).setInt8(arg3 + 4, 0, true);
2022
+ if (!(e instanceof Error$1)) {
2023
+ throw new Error('Not a valid "Error" resource.');
2024
+ }
2025
+ const handle2 = handleCnt1++;
2026
+ handleTable1.set(handle2, { rep: e, own: true });
2027
+ dataView(memory0).setInt32(arg3 + 8, handle2, true);
1810
2028
  break;
1811
2029
  }
1812
2030
  case 'closed': {
1813
- enum1 = 1;
2031
+ dataView(memory0).setInt8(arg3 + 4, 1, true);
1814
2032
  break;
1815
2033
  }
1816
2034
  default: {
1817
- if ((e) instanceof Error) {
1818
- console.error(e);
1819
- }
1820
-
1821
- throw new TypeError(`"${val1}" is not one of the cases of write-error`);
2035
+ throw new TypeError('invalid variant specified for StreamError');
1822
2036
  }
1823
2037
  }
1824
- dataView(memory0).setInt8(arg3 + 1, enum1, true);
1825
2038
  break;
1826
2039
  }
1827
2040
  default: {
@@ -1830,46 +2043,48 @@ function trampoline21(arg0, arg1, arg2, arg3) {
1830
2043
  }
1831
2044
  }
1832
2045
 
1833
- function trampoline22(arg0, arg1, arg2, arg3) {
1834
- const ptr0 = arg1;
1835
- const len0 = arg2;
1836
- const result0 = new Uint8Array(memory0.buffer.slice(ptr0, ptr0 + len0 * 1));
2046
+ function trampoline25(arg0, arg1, arg2, arg3) {
2047
+ const rsc0 = handleTable2.get(arg0).rep;
2048
+ const ptr1 = arg1;
2049
+ const len1 = arg2;
2050
+ const result1 = new Uint8Array(memory0.buffer.slice(ptr1, ptr1 + len1 * 1));
1837
2051
  let ret;
1838
2052
  try {
1839
- ret = { tag: 'ok', val: blockingWriteAndFlush(arg0 >>> 0, result0) };
2053
+ ret = { tag: 'ok', val: OutputStream.prototype.blockingWriteAndFlush.call(rsc0, result1) };
1840
2054
  } catch (e) {
1841
2055
  ret = { tag: 'err', val: getErrorPayload(e) };
1842
2056
  }
1843
- const variant2 = ret;
1844
- switch (variant2.tag) {
2057
+ const variant4 = ret;
2058
+ switch (variant4.tag) {
1845
2059
  case 'ok': {
1846
- const e = variant2.val;
2060
+ const e = variant4.val;
1847
2061
  dataView(memory0).setInt8(arg3 + 0, 0, true);
1848
2062
  break;
1849
2063
  }
1850
2064
  case 'err': {
1851
- const e = variant2.val;
2065
+ const e = variant4.val;
1852
2066
  dataView(memory0).setInt8(arg3 + 0, 1, true);
1853
- const val1 = e;
1854
- let enum1;
1855
- switch (val1) {
2067
+ const variant3 = e;
2068
+ switch (variant3.tag) {
1856
2069
  case 'last-operation-failed': {
1857
- enum1 = 0;
2070
+ const e = variant3.val;
2071
+ dataView(memory0).setInt8(arg3 + 4, 0, true);
2072
+ if (!(e instanceof Error$1)) {
2073
+ throw new Error('Not a valid "Error" resource.');
2074
+ }
2075
+ const handle2 = handleCnt1++;
2076
+ handleTable1.set(handle2, { rep: e, own: true });
2077
+ dataView(memory0).setInt32(arg3 + 8, handle2, true);
1858
2078
  break;
1859
2079
  }
1860
2080
  case 'closed': {
1861
- enum1 = 1;
2081
+ dataView(memory0).setInt8(arg3 + 4, 1, true);
1862
2082
  break;
1863
2083
  }
1864
2084
  default: {
1865
- if ((e) instanceof Error) {
1866
- console.error(e);
1867
- }
1868
-
1869
- throw new TypeError(`"${val1}" is not one of the cases of write-error`);
2085
+ throw new TypeError('invalid variant specified for StreamError');
1870
2086
  }
1871
2087
  }
1872
- dataView(memory0).setInt8(arg3 + 1, enum1, true);
1873
2088
  break;
1874
2089
  }
1875
2090
  default: {
@@ -1878,43 +2093,45 @@ function trampoline22(arg0, arg1, arg2, arg3) {
1878
2093
  }
1879
2094
  }
1880
2095
 
1881
- function trampoline23(arg0, arg1) {
2096
+ function trampoline26(arg0, arg1) {
2097
+ const rsc0 = handleTable2.get(arg0).rep;
1882
2098
  let ret;
1883
2099
  try {
1884
- ret = { tag: 'ok', val: blockingFlush(arg0 >>> 0) };
2100
+ ret = { tag: 'ok', val: OutputStream.prototype.blockingFlush.call(rsc0) };
1885
2101
  } catch (e) {
1886
2102
  ret = { tag: 'err', val: getErrorPayload(e) };
1887
2103
  }
1888
- const variant1 = ret;
1889
- switch (variant1.tag) {
2104
+ const variant3 = ret;
2105
+ switch (variant3.tag) {
1890
2106
  case 'ok': {
1891
- const e = variant1.val;
2107
+ const e = variant3.val;
1892
2108
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1893
2109
  break;
1894
2110
  }
1895
2111
  case 'err': {
1896
- const e = variant1.val;
2112
+ const e = variant3.val;
1897
2113
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1898
- const val0 = e;
1899
- let enum0;
1900
- switch (val0) {
2114
+ const variant2 = e;
2115
+ switch (variant2.tag) {
1901
2116
  case 'last-operation-failed': {
1902
- enum0 = 0;
2117
+ const e = variant2.val;
2118
+ dataView(memory0).setInt8(arg1 + 4, 0, true);
2119
+ if (!(e instanceof Error$1)) {
2120
+ throw new Error('Not a valid "Error" resource.');
2121
+ }
2122
+ const handle1 = handleCnt1++;
2123
+ handleTable1.set(handle1, { rep: e, own: true });
2124
+ dataView(memory0).setInt32(arg1 + 8, handle1, true);
1903
2125
  break;
1904
2126
  }
1905
2127
  case 'closed': {
1906
- enum0 = 1;
2128
+ dataView(memory0).setInt8(arg1 + 4, 1, true);
1907
2129
  break;
1908
2130
  }
1909
2131
  default: {
1910
- if ((e) instanceof Error) {
1911
- console.error(e);
1912
- }
1913
-
1914
- throw new TypeError(`"${val0}" is not one of the cases of write-error`);
2132
+ throw new TypeError('invalid variant specified for StreamError');
1915
2133
  }
1916
2134
  }
1917
- dataView(memory0).setInt8(arg1 + 1, enum0, true);
1918
2135
  break;
1919
2136
  }
1920
2137
  default: {
@@ -1923,7 +2140,7 @@ function trampoline23(arg0, arg1) {
1923
2140
  }
1924
2141
  }
1925
2142
 
1926
- function trampoline24(arg0, arg1) {
2143
+ function trampoline27(arg0, arg1) {
1927
2144
  const ret = getRandomBytes(BigInt.asUintN(64, arg0));
1928
2145
  const val0 = ret;
1929
2146
  const len0 = val0.byteLength;
@@ -1934,7 +2151,7 @@ function trampoline24(arg0, arg1) {
1934
2151
  dataView(memory0).setInt32(arg1 + 0, ptr0, true);
1935
2152
  }
1936
2153
 
1937
- function trampoline25(arg0) {
2154
+ function trampoline28(arg0) {
1938
2155
  const ret = getEnvironment();
1939
2156
  const vec3 = ret;
1940
2157
  const len3 = vec3.length;
@@ -1955,45 +2172,132 @@ function trampoline25(arg0) {
1955
2172
  dataView(memory0).setInt32(arg0 + 0, result3, true);
1956
2173
  }
1957
2174
 
1958
- function trampoline26(arg0) {
2175
+ function trampoline29(arg0) {
1959
2176
  const ret = getTerminalStdin();
1960
- const variant0 = ret;
1961
- if (variant0 === null || variant0=== undefined) {
2177
+ const variant1 = ret;
2178
+ if (variant1 === null || variant1=== undefined) {
1962
2179
  dataView(memory0).setInt8(arg0 + 0, 0, true);
1963
2180
  } else {
1964
- const e = variant0;
2181
+ const e = variant1;
1965
2182
  dataView(memory0).setInt8(arg0 + 0, 1, true);
1966
- dataView(memory0).setInt32(arg0 + 4, toUint32(e), true);
2183
+ if (!(e instanceof TerminalInput)) {
2184
+ throw new Error('Not a valid "TerminalInput" resource.');
2185
+ }
2186
+ const handle0 = handleCnt6++;
2187
+ handleTable6.set(handle0, { rep: e, own: true });
2188
+ dataView(memory0).setInt32(arg0 + 4, handle0, true);
1967
2189
  }
1968
2190
  }
1969
2191
 
1970
- function trampoline27(arg0) {
2192
+ function trampoline30(arg0) {
1971
2193
  const ret = getTerminalStdout();
1972
- const variant0 = ret;
1973
- if (variant0 === null || variant0=== undefined) {
2194
+ const variant1 = ret;
2195
+ if (variant1 === null || variant1=== undefined) {
1974
2196
  dataView(memory0).setInt8(arg0 + 0, 0, true);
1975
2197
  } else {
1976
- const e = variant0;
2198
+ const e = variant1;
1977
2199
  dataView(memory0).setInt8(arg0 + 0, 1, true);
1978
- dataView(memory0).setInt32(arg0 + 4, toUint32(e), true);
2200
+ if (!(e instanceof TerminalOutput)) {
2201
+ throw new Error('Not a valid "TerminalOutput" resource.');
2202
+ }
2203
+ const handle0 = handleCnt7++;
2204
+ handleTable7.set(handle0, { rep: e, own: true });
2205
+ dataView(memory0).setInt32(arg0 + 4, handle0, true);
1979
2206
  }
1980
2207
  }
1981
2208
 
1982
- function trampoline28(arg0) {
2209
+ function trampoline31(arg0) {
1983
2210
  const ret = getTerminalStderr();
1984
- const variant0 = ret;
1985
- if (variant0 === null || variant0=== undefined) {
2211
+ const variant1 = ret;
2212
+ if (variant1 === null || variant1=== undefined) {
1986
2213
  dataView(memory0).setInt8(arg0 + 0, 0, true);
1987
2214
  } else {
1988
- const e = variant0;
2215
+ const e = variant1;
1989
2216
  dataView(memory0).setInt8(arg0 + 0, 1, true);
1990
- dataView(memory0).setInt32(arg0 + 4, toUint32(e), true);
2217
+ if (!(e instanceof TerminalOutput)) {
2218
+ throw new Error('Not a valid "TerminalOutput" resource.');
2219
+ }
2220
+ const handle0 = handleCnt7++;
2221
+ handleTable7.set(handle0, { rep: e, own: true });
2222
+ dataView(memory0).setInt32(arg0 + 4, handle0, true);
1991
2223
  }
1992
2224
  }
1993
2225
  let exports3;
1994
2226
  let realloc1;
1995
2227
  let postReturn0;
1996
2228
  let postReturn1;
2229
+ const handleTable4= new Map();
2230
+ let handleCnt4 = 0;
2231
+ function trampoline0(handle) {
2232
+ const handleEntry = handleTable4.get(handle);
2233
+ if (!handleEntry) {
2234
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2235
+ }
2236
+ handleTable4.delete(handle);
2237
+ }
2238
+ const handleTable1= new Map();
2239
+ let handleCnt1 = 0;
2240
+ function trampoline1(handle) {
2241
+ const handleEntry = handleTable1.get(handle);
2242
+ if (!handleEntry) {
2243
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2244
+ }
2245
+ handleTable1.delete(handle);
2246
+ }
2247
+ const handleTable0= new Map();
2248
+ let handleCnt0 = 0;
2249
+ function trampoline2(handle) {
2250
+ const handleEntry = handleTable0.get(handle);
2251
+ if (!handleEntry) {
2252
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2253
+ }
2254
+ handleTable0.delete(handle);
2255
+ }
2256
+ const handleTable2= new Map();
2257
+ let handleCnt2 = 0;
2258
+ function trampoline3(handle) {
2259
+ const handleEntry = handleTable2.get(handle);
2260
+ if (!handleEntry) {
2261
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2262
+ }
2263
+ handleTable2.delete(handle);
2264
+ }
2265
+ const handleTable3= new Map();
2266
+ let handleCnt3 = 0;
2267
+ function trampoline4(handle) {
2268
+ const handleEntry = handleTable3.get(handle);
2269
+ if (!handleEntry) {
2270
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2271
+ }
2272
+ handleTable3.delete(handle);
2273
+ }
2274
+ const handleTable5= new Map();
2275
+ let handleCnt5 = 0;
2276
+ function trampoline5(handle) {
2277
+ const handleEntry = handleTable5.get(handle);
2278
+ if (!handleEntry) {
2279
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2280
+ }
2281
+ handleTable5.delete(handle);
2282
+ }
2283
+ const handleTable6= new Map();
2284
+ let handleCnt6 = 0;
2285
+ function trampoline6(handle) {
2286
+ const handleEntry = handleTable6.get(handle);
2287
+ if (!handleEntry) {
2288
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2289
+ }
2290
+ handleTable6.delete(handle);
2291
+ }
2292
+ const handleTable7= new Map();
2293
+ let handleCnt7 = 0;
2294
+ function trampoline7(handle) {
2295
+ const handleEntry = handleTable7.get(handle);
2296
+ if (!handleEntry) {
2297
+ throw new Error(`Resource error: Invalid handle ${handle}`);
2298
+ }
2299
+ handleTable7.delete(handle);
2300
+ }
1997
2301
 
1998
2302
  function parse(arg0) {
1999
2303
  if (!_initialized) throwUninitialized();
@@ -2531,25 +2835,25 @@ let _initialized = false;
2531
2835
  export const $init = (async() => {
2532
2836
  const module0 = fetchCompile(new URL('./wasm-tools.core.wasm', import.meta.url));
2533
2837
  const module1 = fetchCompile(new URL('./wasm-tools.core2.wasm', import.meta.url));
2534
- const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADHx4AAQECAgIDAgEBAgQEAgUAAAAABgcHCAYGBgkGCgsEBQFwAR4eB5gBHwEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdCCRpbXBvcnRzAQAKjwMeCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsNACAAIAEgAkEIEQEACw0AIAAgASACQQkRAQALCwAgACABQQoRAgALDwAgACABIAIgA0ELEQQACw8AIAAgASACIANBDBEEAAsLACAAIAFBDRECAAsLACAAIAFBDhEFAAsJACAAQQ8RAAALCQAgAEEQEQAACwkAIABBEREAAAsJACAAQRIRAAALCwAgACABQRMRBgALDwAgACABIAIgA0EUEQcACw8AIAAgASACIANBFREHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEWEQgACwsAIAAgAUEXEQYACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwkAIABBGhEJAAsLACAAIAFBGxEGAAsNACAAIAEgAkEcEQoACwkAIABBHRELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE1LjAAxQoEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQGoCh4AMWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVucy1nZXQtZGlyZWN0b3JpZXMBLmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1yZWFkLXZpYS1zdHJlYW0CL2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy13cml0ZS12aWEtc3RyZWFtAzBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtYXBwZW5kLXZpYS1zdHJlYW0EJ2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1nZXQtdHlwZQUjaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzLXN0YXQGJmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlcy1vcGVuLWF0ByxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXMtbWV0YWRhdGEtaGFzaAgdaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLXJlYWQJJmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy1ibG9ja2luZy1yZWFkCiRpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXMtY2hlY2std3JpdGULHmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtcy13cml0ZQwxaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLXdyaXRlLWFuZC1mbHVzaA0naW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zLWJsb2NraW5nLWZsdXNoDixpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb20tZ2V0LXJhbmRvbS1ieXRlcw8taW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnQtZ2V0LWVudmlyb25tZW50EDNpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbi1nZXQtdGVybWluYWwtc3RkaW4RNWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dC1nZXQtdGVybWluYWwtc3Rkb3V0EjVpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnItZ2V0LXRlcm1pbmFsLXN0ZGVychMsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQUJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBUlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRYmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4XJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBgoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBkuYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBolYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRsrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldBwwYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHSZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2535
- const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACugEfAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAABAAE5AAEAAjEwAAIAAjExAAQAAjEyAAQAAjEzAAIAAjE0AAUAAjE1AAAAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAYAAjIwAAcAAjIxAAcAAjIyAAgAAjIzAAYAAjI0AAYAAjI1AAYAAjI2AAkAAjI3AAYAAjI4AAoAAjI5AAsACCRpbXBvcnRzAXABHh4JJAEAQQALHgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHQAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMTUuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2838
+ const module2 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwADIB8AAQECAgIDAgIBAQIEBAIFAAAAAAYHBwgGBgYJBgoLBAUBcAEfHwedASABMAAAATEAAQEyAAIBMwADATQABAE1AAUBNgAGATcABwE4AAgBOQAJAjEwAAoCMTEACwIxMgAMAjEzAA0CMTQADgIxNQAPAjE2ABACMTcAEQIxOAASAjE5ABMCMjAAFAIyMQAVAjIyABYCMjMAFwIyNAAYAjI1ABkCMjYAGgIyNwAbAjI4ABwCMjkAHQIzMAAeCCRpbXBvcnRzAQAKmwMfCQAgAEEAEQAACw0AIAAgASACQQERAQALDQAgACABIAJBAhEBAAsLACAAIAFBAxECAAsLACAAIAFBBBECAAsLACAAIAFBBRECAAsXACAAIAEgAiADIAQgBSAGIAdBBhEDAAsLACAAIAFBBxECAAsLACAAIAFBCBECAAsNACAAIAEgAkEJEQEACw0AIAAgASACQQoRAQALCwAgACABQQsRAgALDwAgACABIAIgA0EMEQQACw8AIAAgASACIANBDREEAAsLACAAIAFBDhECAAsLACAAIAFBDxEFAAsJACAAQRARAAALCQAgAEEREQAACwkAIABBEhEAAAsJACAAQRMRAAALCwAgACABQRQRBgALDwAgACABIAIgA0EVEQcACw8AIAAgASACIANBFhEHAAsZACAAIAEgAiADIAQgBSAGIAcgCEEXEQgACwsAIAAgAUEYEQYACwsAIAAgAUEZEQYACwsAIAAgAUEaEQYACwkAIABBGxEJAAsLACAAIAFBHBEGAAsNACAAIAEgAkEdEQoACwkAIABBHhELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE2LjAAkhAEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQH1Dx8ARWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVuc0AwLjIuMC1yYy0yMDIzLTExLTA1LWdldC1kaXJlY3RvcmllcwFVaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLXJjLTIwMjMtMTEtMDUtW21ldGhvZF1kZXNjcmlwdG9yLnJlYWQtdmlhLXN0cmVhbQJWaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLXJjLTIwMjMtMTEtMDUtW21ldGhvZF1kZXNjcmlwdG9yLndyaXRlLXZpYS1zdHJlYW0DV2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1yYy0yMDIzLTExLTA1LVttZXRob2RdZGVzY3JpcHRvci5hcHBlbmQtdmlhLXN0cmVhbQROaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLXJjLTIwMjMtMTEtMDUtW21ldGhvZF1kZXNjcmlwdG9yLmdldC10eXBlBUppbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtcmMtMjAyMy0xMS0wNS1bbWV0aG9kXWRlc2NyaXB0b3Iuc3RhdAZNaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLXJjLTIwMjMtMTEtMDUtW21ldGhvZF1kZXNjcmlwdG9yLm9wZW4tYXQHU2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1yYy0yMDIzLTExLTA1LVttZXRob2RdZGVzY3JpcHRvci5tZXRhZGF0YS1oYXNoCEhpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtcmMtMjAyMy0xMS0wNS1maWxlc3lzdGVtLWVycm9yLWNvZGUJRmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1yYy0yMDIzLTExLTA1LVttZXRob2RdaW5wdXQtc3RyZWFtLnJlYWQKT2luZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1yYy0yMDIzLTExLTA1LVttZXRob2RdaW5wdXQtc3RyZWFtLmJsb2NraW5nLXJlYWQLTmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1yYy0yMDIzLTExLTA1LVttZXRob2Rdb3V0cHV0LXN0cmVhbS5jaGVjay13cml0ZQxIaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLXJjLTIwMjMtMTEtMDUtW21ldGhvZF1vdXRwdXQtc3RyZWFtLndyaXRlDVtpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtcmMtMjAyMy0xMS0wNS1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctd3JpdGUtYW5kLWZsdXNoDlFpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtcmMtMjAyMy0xMS0wNS1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctZmx1c2gPQGluZGlyZWN0LXdhc2k6cmFuZG9tL3JhbmRvbUAwLjIuMC1yYy0yMDIzLTExLTA1LWdldC1yYW5kb20tYnl0ZXMQQWluZGlyZWN0LXdhc2k6Y2xpL2Vudmlyb25tZW50QDAuMi4wLXJjLTIwMjMtMTEtMDUtZ2V0LWVudmlyb25tZW50EUdpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbkAwLjIuMC1yYy0yMDIzLTExLTA1LWdldC10ZXJtaW5hbC1zdGRpbhJJaW5kaXJlY3Qtd2FzaTpjbGkvdGVybWluYWwtc3Rkb3V0QDAuMi4wLXJjLTIwMjMtMTEtMDUtZ2V0LXRlcm1pbmFsLXN0ZG91dBNJaW5kaXJlY3Qtd2FzaTpjbGkvdGVybWluYWwtc3RkZXJyQDAuMi4wLXJjLTIwMjMtMTEtMDUtZ2V0LXRlcm1pbmFsLXN0ZGVychQsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQVJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBYlYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRcmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4YJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBkoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBouYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBslYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRwrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldB0wYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHiZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2839
+ const module3 = base64Compile('AGFzbQEAAAABUgxgAX8AYAN/fn8AYAJ/fwBgCH9/f39/f39/AGAEf39/fwBgAn5/AGACf38Bf2AEf39/fwF/YAl/f39/f35+f38Bf2ABfwF/YAN/f38Bf2ABfwACwAEgAAEwAAAAATEAAQABMgABAAEzAAIAATQAAgABNQACAAE2AAMAATcAAgABOAACAAE5AAEAAjEwAAEAAjExAAIAAjEyAAQAAjEzAAQAAjE0AAIAAjE1AAUAAjE2AAAAAjE3AAAAAjE4AAAAAjE5AAAAAjIwAAYAAjIxAAcAAjIyAAcAAjIzAAgAAjI0AAYAAjI1AAYAAjI2AAYAAjI3AAkAAjI4AAYAAjI5AAoAAjMwAAsACCRpbXBvcnRzAXABHx8JJQEAQQALHwABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4ALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjE2LjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM');
2536
2840
  const instanceFlags0 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
2537
2841
  const instanceFlags1 = new WebAssembly.Global({ value: "i32", mutable: true }, 3);
2538
2842
  Promise.all([module0, module1, module2, module3]).catch(() => {});
2539
2843
  ({ exports: exports0 } = await instantiateCore(await module2));
2540
2844
  ({ exports: exports1 } = await instantiateCore(await module0, {
2541
2845
  wasi_snapshot_preview1: {
2542
- environ_get: exports0['24'],
2543
- environ_sizes_get: exports0['25'],
2544
- fd_close: exports0['26'],
2545
- fd_filestat_get: exports0['19'],
2546
- fd_prestat_dir_name: exports0['28'],
2547
- fd_prestat_get: exports0['27'],
2548
- fd_read: exports0['20'],
2549
- fd_write: exports0['21'],
2550
- path_open: exports0['22'],
2551
- proc_exit: exports0['29'],
2552
- random_get: exports0['23'],
2846
+ environ_get: exports0['25'],
2847
+ environ_sizes_get: exports0['26'],
2848
+ fd_close: exports0['27'],
2849
+ fd_filestat_get: exports0['20'],
2850
+ fd_prestat_dir_name: exports0['29'],
2851
+ fd_prestat_get: exports0['28'],
2852
+ fd_read: exports0['21'],
2853
+ fd_write: exports0['22'],
2854
+ path_open: exports0['23'],
2855
+ proc_exit: exports0['30'],
2856
+ random_get: exports0['24'],
2553
2857
  },
2554
2858
  }));
2555
2859
  ({ exports: exports2 } = await instantiateCore(await module1, {
@@ -2559,62 +2863,67 @@ export const $init = (async() => {
2559
2863
  env: {
2560
2864
  memory: exports1.memory,
2561
2865
  },
2562
- 'wasi:cli/environment': {
2563
- 'get-environment': exports0['15'],
2866
+ 'wasi:cli/environment@0.2.0-rc-2023-11-05': {
2867
+ 'get-environment': exports0['16'],
2564
2868
  },
2565
- 'wasi:cli/exit': {
2869
+ 'wasi:cli/exit@0.2.0-rc-2023-11-05': {
2566
2870
  exit: trampoline9,
2567
2871
  },
2568
- 'wasi:cli/stderr': {
2872
+ 'wasi:cli/stderr@0.2.0-rc-2023-11-05': {
2569
2873
  'get-stderr': trampoline8,
2570
2874
  },
2571
- 'wasi:cli/stdin': {
2572
- 'get-stdin': trampoline4,
2875
+ 'wasi:cli/stdin@0.2.0-rc-2023-11-05': {
2876
+ 'get-stdin': trampoline10,
2573
2877
  },
2574
- 'wasi:cli/stdout': {
2575
- 'get-stdout': trampoline6,
2878
+ 'wasi:cli/stdout@0.2.0-rc-2023-11-05': {
2879
+ 'get-stdout': trampoline11,
2576
2880
  },
2577
- 'wasi:cli/terminal-input': {
2578
- 'drop-terminal-input': trampoline5,
2881
+ 'wasi:cli/terminal-input@0.2.0-rc-2023-11-05': {
2882
+ '[resource-drop]terminal-input': trampoline6,
2579
2883
  },
2580
- 'wasi:cli/terminal-output': {
2581
- 'drop-terminal-output': trampoline7,
2884
+ 'wasi:cli/terminal-output@0.2.0-rc-2023-11-05': {
2885
+ '[resource-drop]terminal-output': trampoline7,
2582
2886
  },
2583
- 'wasi:cli/terminal-stderr': {
2584
- 'get-terminal-stderr': exports0['18'],
2887
+ 'wasi:cli/terminal-stderr@0.2.0-rc-2023-11-05': {
2888
+ 'get-terminal-stderr': exports0['19'],
2585
2889
  },
2586
- 'wasi:cli/terminal-stdin': {
2587
- 'get-terminal-stdin': exports0['16'],
2890
+ 'wasi:cli/terminal-stdin@0.2.0-rc-2023-11-05': {
2891
+ 'get-terminal-stdin': exports0['17'],
2588
2892
  },
2589
- 'wasi:cli/terminal-stdout': {
2590
- 'get-terminal-stdout': exports0['17'],
2893
+ 'wasi:cli/terminal-stdout@0.2.0-rc-2023-11-05': {
2894
+ 'get-terminal-stdout': exports0['18'],
2591
2895
  },
2592
- 'wasi:filesystem/preopens': {
2896
+ 'wasi:filesystem/preopens@0.2.0-rc-2023-11-05': {
2593
2897
  'get-directories': exports0['0'],
2594
2898
  },
2595
- 'wasi:filesystem/types': {
2596
- 'append-via-stream': exports0['3'],
2597
- 'drop-descriptor': trampoline3,
2598
- 'drop-directory-entry-stream': trampoline0,
2599
- 'get-type': exports0['4'],
2600
- 'metadata-hash': exports0['7'],
2601
- 'open-at': exports0['6'],
2602
- 'read-via-stream': exports0['1'],
2603
- stat: exports0['5'],
2604
- 'write-via-stream': exports0['2'],
2899
+ 'wasi:filesystem/types@0.2.0-rc-2023-11-05': {
2900
+ '[method]descriptor.append-via-stream': exports0['3'],
2901
+ '[method]descriptor.get-type': exports0['4'],
2902
+ '[method]descriptor.metadata-hash': exports0['7'],
2903
+ '[method]descriptor.open-at': exports0['6'],
2904
+ '[method]descriptor.read-via-stream': exports0['1'],
2905
+ '[method]descriptor.stat': exports0['5'],
2906
+ '[method]descriptor.write-via-stream': exports0['2'],
2907
+ '[resource-drop]descriptor': trampoline4,
2908
+ '[resource-drop]directory-entry-stream': trampoline0,
2909
+ 'filesystem-error-code': exports0['8'],
2910
+ },
2911
+ 'wasi:io/streams@0.2.0-rc-2023-11-05': {
2912
+ '[method]input-stream.blocking-read': exports0['10'],
2913
+ '[method]input-stream.read': exports0['9'],
2914
+ '[method]output-stream.blocking-flush': exports0['14'],
2915
+ '[method]output-stream.blocking-write-and-flush': exports0['13'],
2916
+ '[method]output-stream.check-write': exports0['11'],
2917
+ '[method]output-stream.write': exports0['12'],
2918
+ '[resource-drop]error': trampoline1,
2919
+ '[resource-drop]input-stream': trampoline2,
2920
+ '[resource-drop]output-stream': trampoline3,
2605
2921
  },
2606
- 'wasi:io/streams': {
2607
- 'blocking-flush': exports0['13'],
2608
- 'blocking-read': exports0['9'],
2609
- 'blocking-write-and-flush': exports0['12'],
2610
- 'check-write': exports0['10'],
2611
- 'drop-input-stream': trampoline1,
2612
- 'drop-output-stream': trampoline2,
2613
- read: exports0['8'],
2614
- write: exports0['11'],
2922
+ 'wasi:random/random@0.2.0-rc-2023-11-05': {
2923
+ 'get-random-bytes': exports0['15'],
2615
2924
  },
2616
- 'wasi:random/random': {
2617
- 'get-random-bytes': exports0['14'],
2925
+ 'wasi:sockets/tcp@0.2.0-rc-2023-11-05': {
2926
+ '[resource-drop]tcp-socket': trampoline5,
2618
2927
  },
2619
2928
  }));
2620
2929
  memory0 = exports1.memory;
@@ -2622,36 +2931,37 @@ export const $init = (async() => {
2622
2931
  ({ exports: exports3 } = await instantiateCore(await module3, {
2623
2932
  '': {
2624
2933
  $imports: exports0.$imports,
2625
- '0': trampoline10,
2626
- '1': trampoline11,
2627
- '10': trampoline20,
2628
- '11': trampoline21,
2629
- '12': trampoline22,
2630
- '13': trampoline23,
2631
- '14': trampoline24,
2632
- '15': trampoline25,
2633
- '16': trampoline26,
2634
- '17': trampoline27,
2635
- '18': trampoline28,
2636
- '19': exports2.fd_filestat_get,
2637
- '2': trampoline12,
2638
- '20': exports2.fd_read,
2639
- '21': exports2.fd_write,
2640
- '22': exports2.path_open,
2641
- '23': exports2.random_get,
2642
- '24': exports2.environ_get,
2643
- '25': exports2.environ_sizes_get,
2644
- '26': exports2.fd_close,
2645
- '27': exports2.fd_prestat_get,
2646
- '28': exports2.fd_prestat_dir_name,
2647
- '29': exports2.proc_exit,
2648
- '3': trampoline13,
2649
- '4': trampoline14,
2650
- '5': trampoline15,
2651
- '6': trampoline16,
2652
- '7': trampoline17,
2653
- '8': trampoline18,
2654
- '9': trampoline19,
2934
+ '0': trampoline12,
2935
+ '1': trampoline13,
2936
+ '10': trampoline22,
2937
+ '11': trampoline23,
2938
+ '12': trampoline24,
2939
+ '13': trampoline25,
2940
+ '14': trampoline26,
2941
+ '15': trampoline27,
2942
+ '16': trampoline28,
2943
+ '17': trampoline29,
2944
+ '18': trampoline30,
2945
+ '19': trampoline31,
2946
+ '2': trampoline14,
2947
+ '20': exports2.fd_filestat_get,
2948
+ '21': exports2.fd_read,
2949
+ '22': exports2.fd_write,
2950
+ '23': exports2.path_open,
2951
+ '24': exports2.random_get,
2952
+ '25': exports2.environ_get,
2953
+ '26': exports2.environ_sizes_get,
2954
+ '27': exports2.fd_close,
2955
+ '28': exports2.fd_prestat_get,
2956
+ '29': exports2.fd_prestat_dir_name,
2957
+ '3': trampoline15,
2958
+ '30': exports2.proc_exit,
2959
+ '4': trampoline16,
2960
+ '5': trampoline17,
2961
+ '6': trampoline18,
2962
+ '7': trampoline19,
2963
+ '8': trampoline20,
2964
+ '9': trampoline21,
2655
2965
  },
2656
2966
  }));
2657
2967
  realloc1 = exports1.cabi_realloc;