@bytecodealliance/jco 1.0.1 → 1.0.3

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.
package/obj/wasm-tools.js CHANGED
@@ -49,16 +49,49 @@ function getErrorPayload(e) {
49
49
  return e;
50
50
  }
51
51
 
52
+ const handleTables = [];
53
+
52
54
  const hasOwnProperty = Object.prototype.hasOwnProperty;
53
55
 
54
56
  const instantiateCore = WebAssembly.instantiate;
55
57
 
56
- const resourceHandleSymbol = Symbol('resource');
58
+ const T_FLAG = 1 << 30;
59
+
60
+ function rscTableCreateOwn (table, rep) {
61
+ if (rep === 0) throw new Error('Invalid rep');
62
+ const free = table[0] & ~T_FLAG;
63
+ if (free === 0) {
64
+ table.push(0);
65
+ table.push(rep | T_FLAG);
66
+ return (table.length >> 1) - 1;
67
+ }
68
+ table[0] = table[free << 1];
69
+ table[free << 1] = 0;
70
+ table[(free << 1) + 1] = rep | T_FLAG;
71
+ return free;
72
+ }
73
+
74
+ function rscTableRemove (table, handle) {
75
+ const scope = table[handle << 1];
76
+ const val = table[(handle << 1) + 1];
77
+ const own = (val & T_FLAG) !== 0;
78
+ const rep = val & ~T_FLAG;
79
+ if (val === 0 || (scope & T_FLAG) !== 0) throw new Error('Invalid handle');
80
+ table[handle << 1] = table[0] | T_FLAG;
81
+ table[0] = handle | T_FLAG;
82
+ return { rep, scope, own };
83
+ }
84
+
85
+ const symbolCabiDispose = Symbol.for('cabiDispose');
86
+
87
+ const symbolRscHandle = Symbol('handle');
88
+
89
+ const symbolRscRep = Symbol.for('cabiRep');
57
90
 
58
91
  const symbolDispose = Symbol.dispose || Symbol.for('dispose');
59
92
 
60
93
  function throwUninitialized() {
61
- throw new TypeError('Wasm uninitialized use `await $init` first');
94
+ throw new Error('Wasm uninitialized use `await $init` first');
62
95
  }
63
96
 
64
97
  const toUint64 = val => BigInt.asUintN(64, BigInt(val));
@@ -97,17 +130,22 @@ function utf8Encode(s, realloc, memory) {
97
130
  let exports0;
98
131
  let exports1;
99
132
 
100
- function trampoline7() {
133
+ function trampoline5() {
101
134
  const ret = getStderr();
102
135
  if (!(ret instanceof OutputStream)) {
103
136
  throw new Error('Resource error: Not a valid "OutputStream" resource.');
104
137
  }
105
- var handle0 = handleCnt2++;
106
- handleTable2.set(handle0, { rep: ret, own: true });
138
+ var handle0 = ret[symbolRscHandle];
139
+
140
+ if (!handle0) {
141
+ const rep = ret[symbolRscRep] || ++captureCnt2;
142
+ captureTable2.set(rep, ret);
143
+ handle0 = rscTableCreateOwn(handleTable2, rep);
144
+ }
107
145
  return handle0;
108
146
  }
109
147
 
110
- function trampoline8(arg0) {
148
+ function trampoline6(arg0) {
111
149
  let variant0;
112
150
  switch (arg0) {
113
151
  case 0: {
@@ -131,26 +169,38 @@ function trampoline8(arg0) {
131
169
  exit(variant0);
132
170
  }
133
171
 
134
- function trampoline9() {
172
+ function trampoline7() {
135
173
  const ret = getStdin();
136
174
  if (!(ret instanceof InputStream)) {
137
175
  throw new Error('Resource error: Not a valid "InputStream" resource.');
138
176
  }
139
- var handle0 = handleCnt1++;
140
- handleTable1.set(handle0, { rep: ret, own: true });
177
+ var handle0 = ret[symbolRscHandle];
178
+
179
+ if (!handle0) {
180
+ const rep = ret[symbolRscRep] || ++captureCnt1;
181
+ captureTable1.set(rep, ret);
182
+ handle0 = rscTableCreateOwn(handleTable1, rep);
183
+ }
141
184
  return handle0;
142
185
  }
143
186
 
144
- function trampoline10() {
187
+ function trampoline8() {
145
188
  const ret = getStdout();
146
189
  if (!(ret instanceof OutputStream)) {
147
190
  throw new Error('Resource error: Not a valid "OutputStream" resource.');
148
191
  }
149
- var handle0 = handleCnt2++;
150
- handleTable2.set(handle0, { rep: ret, own: true });
192
+ var handle0 = ret[symbolRscHandle];
193
+
194
+ if (!handle0) {
195
+ const rep = ret[symbolRscRep] || ++captureCnt2;
196
+ captureTable2.set(rep, ret);
197
+ handle0 = rscTableCreateOwn(handleTable2, rep);
198
+ }
151
199
  return handle0;
152
200
  }
153
201
  let exports2;
202
+ let memory0;
203
+ let realloc0;
154
204
 
155
205
  function trampoline11(arg0) {
156
206
  const ret = getDirectories();
@@ -163,8 +213,13 @@ function trampoline11(arg0) {
163
213
  if (!(tuple0_0 instanceof Descriptor)) {
164
214
  throw new Error('Resource error: Not a valid "Descriptor" resource.');
165
215
  }
166
- var handle1 = handleCnt5++;
167
- handleTable5.set(handle1, { rep: tuple0_0, own: true });
216
+ var handle1 = tuple0_0[symbolRscHandle];
217
+
218
+ if (!handle1) {
219
+ const rep = tuple0_0[symbolRscRep] || ++captureCnt5;
220
+ captureTable5.set(rep, tuple0_0);
221
+ handle1 = rscTableCreateOwn(handleTable5, rep);
222
+ }
168
223
  dataView(memory0).setInt32(base + 0, handle1, true);
169
224
  var ptr2 = utf8Encode(tuple0_1, realloc0, memory0);
170
225
  var len2 = utf8EncodedLen;
@@ -174,183 +229,193 @@ function trampoline11(arg0) {
174
229
  dataView(memory0).setInt32(arg0 + 4, len3, true);
175
230
  dataView(memory0).setInt32(arg0 + 0, result3, true);
176
231
  }
177
- let memory0;
178
- let realloc0;
179
232
 
180
233
  function trampoline12(arg0, arg1, arg2) {
181
234
  var handle1 = arg0;
182
- var rsc0 = handleTable5.get(handle1).rep;
235
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
236
+ var rsc0 = captureTable5.get(rep2);
237
+ if (!rsc0) {
238
+ rsc0 = Object.create(Descriptor.prototype);
239
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
240
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
241
+ }
183
242
  let ret;
184
243
  try {
185
- ret = { tag: 'ok', val: Descriptor.prototype.readViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
244
+ ret = { tag: 'ok', val: rsc0.readViaStream(BigInt.asUintN(64, arg1))};
186
245
  } catch (e) {
187
246
  ret = { tag: 'err', val: getErrorPayload(e) };
188
247
  }
189
- var variant4 = ret;
190
- switch (variant4.tag) {
248
+ rsc0[symbolRscHandle] = null;
249
+ var variant5 = ret;
250
+ switch (variant5.tag) {
191
251
  case 'ok': {
192
- const e = variant4.val;
252
+ const e = variant5.val;
193
253
  dataView(memory0).setInt8(arg2 + 0, 0, true);
194
254
  if (!(e instanceof InputStream)) {
195
255
  throw new Error('Resource error: Not a valid "InputStream" resource.');
196
256
  }
197
- var handle2 = handleCnt1++;
198
- handleTable1.set(handle2, { rep: e, own: true });
199
- dataView(memory0).setInt32(arg2 + 4, handle2, true);
257
+ var handle3 = e[symbolRscHandle];
258
+
259
+ if (!handle3) {
260
+ const rep = e[symbolRscRep] || ++captureCnt1;
261
+ captureTable1.set(rep, e);
262
+ handle3 = rscTableCreateOwn(handleTable1, rep);
263
+ }
264
+ dataView(memory0).setInt32(arg2 + 4, handle3, true);
200
265
  break;
201
266
  }
202
267
  case 'err': {
203
- const e = variant4.val;
268
+ const e = variant5.val;
204
269
  dataView(memory0).setInt8(arg2 + 0, 1, true);
205
- var val3 = e;
206
- let enum3;
207
- switch (val3) {
270
+ var val4 = e;
271
+ let enum4;
272
+ switch (val4) {
208
273
  case 'access': {
209
- enum3 = 0;
274
+ enum4 = 0;
210
275
  break;
211
276
  }
212
277
  case 'would-block': {
213
- enum3 = 1;
278
+ enum4 = 1;
214
279
  break;
215
280
  }
216
281
  case 'already': {
217
- enum3 = 2;
282
+ enum4 = 2;
218
283
  break;
219
284
  }
220
285
  case 'bad-descriptor': {
221
- enum3 = 3;
286
+ enum4 = 3;
222
287
  break;
223
288
  }
224
289
  case 'busy': {
225
- enum3 = 4;
290
+ enum4 = 4;
226
291
  break;
227
292
  }
228
293
  case 'deadlock': {
229
- enum3 = 5;
294
+ enum4 = 5;
230
295
  break;
231
296
  }
232
297
  case 'quota': {
233
- enum3 = 6;
298
+ enum4 = 6;
234
299
  break;
235
300
  }
236
301
  case 'exist': {
237
- enum3 = 7;
302
+ enum4 = 7;
238
303
  break;
239
304
  }
240
305
  case 'file-too-large': {
241
- enum3 = 8;
306
+ enum4 = 8;
242
307
  break;
243
308
  }
244
309
  case 'illegal-byte-sequence': {
245
- enum3 = 9;
310
+ enum4 = 9;
246
311
  break;
247
312
  }
248
313
  case 'in-progress': {
249
- enum3 = 10;
314
+ enum4 = 10;
250
315
  break;
251
316
  }
252
317
  case 'interrupted': {
253
- enum3 = 11;
318
+ enum4 = 11;
254
319
  break;
255
320
  }
256
321
  case 'invalid': {
257
- enum3 = 12;
322
+ enum4 = 12;
258
323
  break;
259
324
  }
260
325
  case 'io': {
261
- enum3 = 13;
326
+ enum4 = 13;
262
327
  break;
263
328
  }
264
329
  case 'is-directory': {
265
- enum3 = 14;
330
+ enum4 = 14;
266
331
  break;
267
332
  }
268
333
  case 'loop': {
269
- enum3 = 15;
334
+ enum4 = 15;
270
335
  break;
271
336
  }
272
337
  case 'too-many-links': {
273
- enum3 = 16;
338
+ enum4 = 16;
274
339
  break;
275
340
  }
276
341
  case 'message-size': {
277
- enum3 = 17;
342
+ enum4 = 17;
278
343
  break;
279
344
  }
280
345
  case 'name-too-long': {
281
- enum3 = 18;
346
+ enum4 = 18;
282
347
  break;
283
348
  }
284
349
  case 'no-device': {
285
- enum3 = 19;
350
+ enum4 = 19;
286
351
  break;
287
352
  }
288
353
  case 'no-entry': {
289
- enum3 = 20;
354
+ enum4 = 20;
290
355
  break;
291
356
  }
292
357
  case 'no-lock': {
293
- enum3 = 21;
358
+ enum4 = 21;
294
359
  break;
295
360
  }
296
361
  case 'insufficient-memory': {
297
- enum3 = 22;
362
+ enum4 = 22;
298
363
  break;
299
364
  }
300
365
  case 'insufficient-space': {
301
- enum3 = 23;
366
+ enum4 = 23;
302
367
  break;
303
368
  }
304
369
  case 'not-directory': {
305
- enum3 = 24;
370
+ enum4 = 24;
306
371
  break;
307
372
  }
308
373
  case 'not-empty': {
309
- enum3 = 25;
374
+ enum4 = 25;
310
375
  break;
311
376
  }
312
377
  case 'not-recoverable': {
313
- enum3 = 26;
378
+ enum4 = 26;
314
379
  break;
315
380
  }
316
381
  case 'unsupported': {
317
- enum3 = 27;
382
+ enum4 = 27;
318
383
  break;
319
384
  }
320
385
  case 'no-tty': {
321
- enum3 = 28;
386
+ enum4 = 28;
322
387
  break;
323
388
  }
324
389
  case 'no-such-device': {
325
- enum3 = 29;
390
+ enum4 = 29;
326
391
  break;
327
392
  }
328
393
  case 'overflow': {
329
- enum3 = 30;
394
+ enum4 = 30;
330
395
  break;
331
396
  }
332
397
  case 'not-permitted': {
333
- enum3 = 31;
398
+ enum4 = 31;
334
399
  break;
335
400
  }
336
401
  case 'pipe': {
337
- enum3 = 32;
402
+ enum4 = 32;
338
403
  break;
339
404
  }
340
405
  case 'read-only': {
341
- enum3 = 33;
406
+ enum4 = 33;
342
407
  break;
343
408
  }
344
409
  case 'invalid-seek': {
345
- enum3 = 34;
410
+ enum4 = 34;
346
411
  break;
347
412
  }
348
413
  case 'text-file-busy': {
349
- enum3 = 35;
414
+ enum4 = 35;
350
415
  break;
351
416
  }
352
417
  case 'cross-device': {
353
- enum3 = 36;
418
+ enum4 = 36;
354
419
  break;
355
420
  }
356
421
  default: {
@@ -358,10 +423,10 @@ function trampoline12(arg0, arg1, arg2) {
358
423
  console.error(e);
359
424
  }
360
425
 
361
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
426
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
362
427
  }
363
428
  }
364
- dataView(memory0).setInt8(arg2 + 4, enum3, true);
429
+ dataView(memory0).setInt8(arg2 + 4, enum4, true);
365
430
  break;
366
431
  }
367
432
  default: {
@@ -372,178 +437,190 @@ function trampoline12(arg0, arg1, arg2) {
372
437
 
373
438
  function trampoline13(arg0, arg1, arg2) {
374
439
  var handle1 = arg0;
375
- var rsc0 = handleTable5.get(handle1).rep;
440
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
441
+ var rsc0 = captureTable5.get(rep2);
442
+ if (!rsc0) {
443
+ rsc0 = Object.create(Descriptor.prototype);
444
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
445
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
446
+ }
376
447
  let ret;
377
448
  try {
378
- ret = { tag: 'ok', val: Descriptor.prototype.writeViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
449
+ ret = { tag: 'ok', val: rsc0.writeViaStream(BigInt.asUintN(64, arg1))};
379
450
  } catch (e) {
380
451
  ret = { tag: 'err', val: getErrorPayload(e) };
381
452
  }
382
- var variant4 = ret;
383
- switch (variant4.tag) {
453
+ rsc0[symbolRscHandle] = null;
454
+ var variant5 = ret;
455
+ switch (variant5.tag) {
384
456
  case 'ok': {
385
- const e = variant4.val;
457
+ const e = variant5.val;
386
458
  dataView(memory0).setInt8(arg2 + 0, 0, true);
387
459
  if (!(e instanceof OutputStream)) {
388
460
  throw new Error('Resource error: Not a valid "OutputStream" resource.');
389
461
  }
390
- var handle2 = handleCnt2++;
391
- handleTable2.set(handle2, { rep: e, own: true });
392
- dataView(memory0).setInt32(arg2 + 4, handle2, true);
462
+ var handle3 = e[symbolRscHandle];
463
+
464
+ if (!handle3) {
465
+ const rep = e[symbolRscRep] || ++captureCnt2;
466
+ captureTable2.set(rep, e);
467
+ handle3 = rscTableCreateOwn(handleTable2, rep);
468
+ }
469
+ dataView(memory0).setInt32(arg2 + 4, handle3, true);
393
470
  break;
394
471
  }
395
472
  case 'err': {
396
- const e = variant4.val;
473
+ const e = variant5.val;
397
474
  dataView(memory0).setInt8(arg2 + 0, 1, true);
398
- var val3 = e;
399
- let enum3;
400
- switch (val3) {
475
+ var val4 = e;
476
+ let enum4;
477
+ switch (val4) {
401
478
  case 'access': {
402
- enum3 = 0;
479
+ enum4 = 0;
403
480
  break;
404
481
  }
405
482
  case 'would-block': {
406
- enum3 = 1;
483
+ enum4 = 1;
407
484
  break;
408
485
  }
409
486
  case 'already': {
410
- enum3 = 2;
487
+ enum4 = 2;
411
488
  break;
412
489
  }
413
490
  case 'bad-descriptor': {
414
- enum3 = 3;
491
+ enum4 = 3;
415
492
  break;
416
493
  }
417
494
  case 'busy': {
418
- enum3 = 4;
495
+ enum4 = 4;
419
496
  break;
420
497
  }
421
498
  case 'deadlock': {
422
- enum3 = 5;
499
+ enum4 = 5;
423
500
  break;
424
501
  }
425
502
  case 'quota': {
426
- enum3 = 6;
503
+ enum4 = 6;
427
504
  break;
428
505
  }
429
506
  case 'exist': {
430
- enum3 = 7;
507
+ enum4 = 7;
431
508
  break;
432
509
  }
433
510
  case 'file-too-large': {
434
- enum3 = 8;
511
+ enum4 = 8;
435
512
  break;
436
513
  }
437
514
  case 'illegal-byte-sequence': {
438
- enum3 = 9;
515
+ enum4 = 9;
439
516
  break;
440
517
  }
441
518
  case 'in-progress': {
442
- enum3 = 10;
519
+ enum4 = 10;
443
520
  break;
444
521
  }
445
522
  case 'interrupted': {
446
- enum3 = 11;
523
+ enum4 = 11;
447
524
  break;
448
525
  }
449
526
  case 'invalid': {
450
- enum3 = 12;
527
+ enum4 = 12;
451
528
  break;
452
529
  }
453
530
  case 'io': {
454
- enum3 = 13;
531
+ enum4 = 13;
455
532
  break;
456
533
  }
457
534
  case 'is-directory': {
458
- enum3 = 14;
535
+ enum4 = 14;
459
536
  break;
460
537
  }
461
538
  case 'loop': {
462
- enum3 = 15;
539
+ enum4 = 15;
463
540
  break;
464
541
  }
465
542
  case 'too-many-links': {
466
- enum3 = 16;
543
+ enum4 = 16;
467
544
  break;
468
545
  }
469
546
  case 'message-size': {
470
- enum3 = 17;
547
+ enum4 = 17;
471
548
  break;
472
549
  }
473
550
  case 'name-too-long': {
474
- enum3 = 18;
551
+ enum4 = 18;
475
552
  break;
476
553
  }
477
554
  case 'no-device': {
478
- enum3 = 19;
555
+ enum4 = 19;
479
556
  break;
480
557
  }
481
558
  case 'no-entry': {
482
- enum3 = 20;
559
+ enum4 = 20;
483
560
  break;
484
561
  }
485
562
  case 'no-lock': {
486
- enum3 = 21;
563
+ enum4 = 21;
487
564
  break;
488
565
  }
489
566
  case 'insufficient-memory': {
490
- enum3 = 22;
567
+ enum4 = 22;
491
568
  break;
492
569
  }
493
570
  case 'insufficient-space': {
494
- enum3 = 23;
571
+ enum4 = 23;
495
572
  break;
496
573
  }
497
574
  case 'not-directory': {
498
- enum3 = 24;
575
+ enum4 = 24;
499
576
  break;
500
577
  }
501
578
  case 'not-empty': {
502
- enum3 = 25;
579
+ enum4 = 25;
503
580
  break;
504
581
  }
505
582
  case 'not-recoverable': {
506
- enum3 = 26;
583
+ enum4 = 26;
507
584
  break;
508
585
  }
509
586
  case 'unsupported': {
510
- enum3 = 27;
587
+ enum4 = 27;
511
588
  break;
512
589
  }
513
590
  case 'no-tty': {
514
- enum3 = 28;
591
+ enum4 = 28;
515
592
  break;
516
593
  }
517
594
  case 'no-such-device': {
518
- enum3 = 29;
595
+ enum4 = 29;
519
596
  break;
520
597
  }
521
598
  case 'overflow': {
522
- enum3 = 30;
599
+ enum4 = 30;
523
600
  break;
524
601
  }
525
602
  case 'not-permitted': {
526
- enum3 = 31;
603
+ enum4 = 31;
527
604
  break;
528
605
  }
529
606
  case 'pipe': {
530
- enum3 = 32;
607
+ enum4 = 32;
531
608
  break;
532
609
  }
533
610
  case 'read-only': {
534
- enum3 = 33;
611
+ enum4 = 33;
535
612
  break;
536
613
  }
537
614
  case 'invalid-seek': {
538
- enum3 = 34;
615
+ enum4 = 34;
539
616
  break;
540
617
  }
541
618
  case 'text-file-busy': {
542
- enum3 = 35;
619
+ enum4 = 35;
543
620
  break;
544
621
  }
545
622
  case 'cross-device': {
546
- enum3 = 36;
623
+ enum4 = 36;
547
624
  break;
548
625
  }
549
626
  default: {
@@ -551,10 +628,10 @@ function trampoline13(arg0, arg1, arg2) {
551
628
  console.error(e);
552
629
  }
553
630
 
554
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
631
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
555
632
  }
556
633
  }
557
- dataView(memory0).setInt8(arg2 + 4, enum3, true);
634
+ dataView(memory0).setInt8(arg2 + 4, enum4, true);
558
635
  break;
559
636
  }
560
637
  default: {
@@ -565,178 +642,190 @@ function trampoline13(arg0, arg1, arg2) {
565
642
 
566
643
  function trampoline14(arg0, arg1) {
567
644
  var handle1 = arg0;
568
- var rsc0 = handleTable5.get(handle1).rep;
645
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
646
+ var rsc0 = captureTable5.get(rep2);
647
+ if (!rsc0) {
648
+ rsc0 = Object.create(Descriptor.prototype);
649
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
650
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
651
+ }
569
652
  let ret;
570
653
  try {
571
- ret = { tag: 'ok', val: Descriptor.prototype.appendViaStream.call(rsc0) };
654
+ ret = { tag: 'ok', val: rsc0.appendViaStream()};
572
655
  } catch (e) {
573
656
  ret = { tag: 'err', val: getErrorPayload(e) };
574
657
  }
575
- var variant4 = ret;
576
- switch (variant4.tag) {
658
+ rsc0[symbolRscHandle] = null;
659
+ var variant5 = ret;
660
+ switch (variant5.tag) {
577
661
  case 'ok': {
578
- const e = variant4.val;
662
+ const e = variant5.val;
579
663
  dataView(memory0).setInt8(arg1 + 0, 0, true);
580
664
  if (!(e instanceof OutputStream)) {
581
665
  throw new Error('Resource error: Not a valid "OutputStream" resource.');
582
666
  }
583
- var handle2 = handleCnt2++;
584
- handleTable2.set(handle2, { rep: e, own: true });
585
- dataView(memory0).setInt32(arg1 + 4, handle2, true);
667
+ var handle3 = e[symbolRscHandle];
668
+
669
+ if (!handle3) {
670
+ const rep = e[symbolRscRep] || ++captureCnt2;
671
+ captureTable2.set(rep, e);
672
+ handle3 = rscTableCreateOwn(handleTable2, rep);
673
+ }
674
+ dataView(memory0).setInt32(arg1 + 4, handle3, true);
586
675
  break;
587
676
  }
588
677
  case 'err': {
589
- const e = variant4.val;
678
+ const e = variant5.val;
590
679
  dataView(memory0).setInt8(arg1 + 0, 1, true);
591
- var val3 = e;
592
- let enum3;
593
- switch (val3) {
680
+ var val4 = e;
681
+ let enum4;
682
+ switch (val4) {
594
683
  case 'access': {
595
- enum3 = 0;
684
+ enum4 = 0;
596
685
  break;
597
686
  }
598
687
  case 'would-block': {
599
- enum3 = 1;
688
+ enum4 = 1;
600
689
  break;
601
690
  }
602
691
  case 'already': {
603
- enum3 = 2;
692
+ enum4 = 2;
604
693
  break;
605
694
  }
606
695
  case 'bad-descriptor': {
607
- enum3 = 3;
696
+ enum4 = 3;
608
697
  break;
609
698
  }
610
699
  case 'busy': {
611
- enum3 = 4;
700
+ enum4 = 4;
612
701
  break;
613
702
  }
614
703
  case 'deadlock': {
615
- enum3 = 5;
704
+ enum4 = 5;
616
705
  break;
617
706
  }
618
707
  case 'quota': {
619
- enum3 = 6;
708
+ enum4 = 6;
620
709
  break;
621
710
  }
622
711
  case 'exist': {
623
- enum3 = 7;
712
+ enum4 = 7;
624
713
  break;
625
714
  }
626
715
  case 'file-too-large': {
627
- enum3 = 8;
716
+ enum4 = 8;
628
717
  break;
629
718
  }
630
719
  case 'illegal-byte-sequence': {
631
- enum3 = 9;
720
+ enum4 = 9;
632
721
  break;
633
722
  }
634
723
  case 'in-progress': {
635
- enum3 = 10;
724
+ enum4 = 10;
636
725
  break;
637
726
  }
638
727
  case 'interrupted': {
639
- enum3 = 11;
728
+ enum4 = 11;
640
729
  break;
641
730
  }
642
731
  case 'invalid': {
643
- enum3 = 12;
732
+ enum4 = 12;
644
733
  break;
645
734
  }
646
735
  case 'io': {
647
- enum3 = 13;
736
+ enum4 = 13;
648
737
  break;
649
738
  }
650
739
  case 'is-directory': {
651
- enum3 = 14;
740
+ enum4 = 14;
652
741
  break;
653
742
  }
654
743
  case 'loop': {
655
- enum3 = 15;
744
+ enum4 = 15;
656
745
  break;
657
746
  }
658
747
  case 'too-many-links': {
659
- enum3 = 16;
748
+ enum4 = 16;
660
749
  break;
661
750
  }
662
751
  case 'message-size': {
663
- enum3 = 17;
752
+ enum4 = 17;
664
753
  break;
665
754
  }
666
755
  case 'name-too-long': {
667
- enum3 = 18;
756
+ enum4 = 18;
668
757
  break;
669
758
  }
670
759
  case 'no-device': {
671
- enum3 = 19;
760
+ enum4 = 19;
672
761
  break;
673
762
  }
674
763
  case 'no-entry': {
675
- enum3 = 20;
764
+ enum4 = 20;
676
765
  break;
677
766
  }
678
767
  case 'no-lock': {
679
- enum3 = 21;
768
+ enum4 = 21;
680
769
  break;
681
770
  }
682
771
  case 'insufficient-memory': {
683
- enum3 = 22;
772
+ enum4 = 22;
684
773
  break;
685
774
  }
686
775
  case 'insufficient-space': {
687
- enum3 = 23;
776
+ enum4 = 23;
688
777
  break;
689
778
  }
690
779
  case 'not-directory': {
691
- enum3 = 24;
780
+ enum4 = 24;
692
781
  break;
693
782
  }
694
783
  case 'not-empty': {
695
- enum3 = 25;
784
+ enum4 = 25;
696
785
  break;
697
786
  }
698
787
  case 'not-recoverable': {
699
- enum3 = 26;
788
+ enum4 = 26;
700
789
  break;
701
790
  }
702
791
  case 'unsupported': {
703
- enum3 = 27;
792
+ enum4 = 27;
704
793
  break;
705
794
  }
706
795
  case 'no-tty': {
707
- enum3 = 28;
796
+ enum4 = 28;
708
797
  break;
709
798
  }
710
799
  case 'no-such-device': {
711
- enum3 = 29;
800
+ enum4 = 29;
712
801
  break;
713
802
  }
714
803
  case 'overflow': {
715
- enum3 = 30;
804
+ enum4 = 30;
716
805
  break;
717
806
  }
718
807
  case 'not-permitted': {
719
- enum3 = 31;
808
+ enum4 = 31;
720
809
  break;
721
810
  }
722
811
  case 'pipe': {
723
- enum3 = 32;
812
+ enum4 = 32;
724
813
  break;
725
814
  }
726
815
  case 'read-only': {
727
- enum3 = 33;
816
+ enum4 = 33;
728
817
  break;
729
818
  }
730
819
  case 'invalid-seek': {
731
- enum3 = 34;
820
+ enum4 = 34;
732
821
  break;
733
822
  }
734
823
  case 'text-file-busy': {
735
- enum3 = 35;
824
+ enum4 = 35;
736
825
  break;
737
826
  }
738
827
  case 'cross-device': {
739
- enum3 = 36;
828
+ enum4 = 36;
740
829
  break;
741
830
  }
742
831
  default: {
@@ -744,10 +833,10 @@ function trampoline14(arg0, arg1) {
744
833
  console.error(e);
745
834
  }
746
835
 
747
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
836
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
748
837
  }
749
838
  }
750
- dataView(memory0).setInt8(arg1 + 4, enum3, true);
839
+ dataView(memory0).setInt8(arg1 + 4, enum4, true);
751
840
  break;
752
841
  }
753
842
  default: {
@@ -758,51 +847,58 @@ function trampoline14(arg0, arg1) {
758
847
 
759
848
  function trampoline15(arg0, arg1) {
760
849
  var handle1 = arg0;
761
- var rsc0 = handleTable5.get(handle1).rep;
850
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
851
+ var rsc0 = captureTable5.get(rep2);
852
+ if (!rsc0) {
853
+ rsc0 = Object.create(Descriptor.prototype);
854
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
855
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
856
+ }
762
857
  let ret;
763
858
  try {
764
- ret = { tag: 'ok', val: Descriptor.prototype.getType.call(rsc0) };
859
+ ret = { tag: 'ok', val: rsc0.getType()};
765
860
  } catch (e) {
766
861
  ret = { tag: 'err', val: getErrorPayload(e) };
767
862
  }
768
- var variant4 = ret;
769
- switch (variant4.tag) {
863
+ rsc0[symbolRscHandle] = null;
864
+ var variant5 = ret;
865
+ switch (variant5.tag) {
770
866
  case 'ok': {
771
- const e = variant4.val;
867
+ const e = variant5.val;
772
868
  dataView(memory0).setInt8(arg1 + 0, 0, true);
773
- var val2 = e;
774
- let enum2;
775
- switch (val2) {
869
+ var val3 = e;
870
+ let enum3;
871
+ switch (val3) {
776
872
  case 'unknown': {
777
- enum2 = 0;
873
+ enum3 = 0;
778
874
  break;
779
875
  }
780
876
  case 'block-device': {
781
- enum2 = 1;
877
+ enum3 = 1;
782
878
  break;
783
879
  }
784
880
  case 'character-device': {
785
- enum2 = 2;
881
+ enum3 = 2;
786
882
  break;
787
883
  }
788
884
  case 'directory': {
789
- enum2 = 3;
885
+ enum3 = 3;
790
886
  break;
791
887
  }
792
888
  case 'fifo': {
793
- enum2 = 4;
889
+ enum3 = 4;
794
890
  break;
795
891
  }
796
892
  case 'symbolic-link': {
797
- enum2 = 5;
893
+ enum3 = 5;
798
894
  break;
799
895
  }
800
896
  case 'regular-file': {
801
- enum2 = 6;
897
+ enum3 = 6;
802
898
  break;
803
899
  }
804
900
  case 'socket': {
805
- enum2 = 7;
901
+ enum3 = 7;
806
902
  break;
807
903
  }
808
904
  default: {
@@ -810,164 +906,164 @@ function trampoline15(arg0, arg1) {
810
906
  console.error(e);
811
907
  }
812
908
 
813
- throw new TypeError(`"${val2}" is not one of the cases of descriptor-type`);
909
+ throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`);
814
910
  }
815
911
  }
816
- dataView(memory0).setInt8(arg1 + 1, enum2, true);
912
+ dataView(memory0).setInt8(arg1 + 1, enum3, true);
817
913
  break;
818
914
  }
819
915
  case 'err': {
820
- const e = variant4.val;
916
+ const e = variant5.val;
821
917
  dataView(memory0).setInt8(arg1 + 0, 1, true);
822
- var val3 = e;
823
- let enum3;
824
- switch (val3) {
918
+ var val4 = e;
919
+ let enum4;
920
+ switch (val4) {
825
921
  case 'access': {
826
- enum3 = 0;
922
+ enum4 = 0;
827
923
  break;
828
924
  }
829
925
  case 'would-block': {
830
- enum3 = 1;
926
+ enum4 = 1;
831
927
  break;
832
928
  }
833
929
  case 'already': {
834
- enum3 = 2;
930
+ enum4 = 2;
835
931
  break;
836
932
  }
837
933
  case 'bad-descriptor': {
838
- enum3 = 3;
934
+ enum4 = 3;
839
935
  break;
840
936
  }
841
937
  case 'busy': {
842
- enum3 = 4;
938
+ enum4 = 4;
843
939
  break;
844
940
  }
845
941
  case 'deadlock': {
846
- enum3 = 5;
942
+ enum4 = 5;
847
943
  break;
848
944
  }
849
945
  case 'quota': {
850
- enum3 = 6;
946
+ enum4 = 6;
851
947
  break;
852
948
  }
853
949
  case 'exist': {
854
- enum3 = 7;
950
+ enum4 = 7;
855
951
  break;
856
952
  }
857
953
  case 'file-too-large': {
858
- enum3 = 8;
954
+ enum4 = 8;
859
955
  break;
860
956
  }
861
957
  case 'illegal-byte-sequence': {
862
- enum3 = 9;
958
+ enum4 = 9;
863
959
  break;
864
960
  }
865
961
  case 'in-progress': {
866
- enum3 = 10;
962
+ enum4 = 10;
867
963
  break;
868
964
  }
869
965
  case 'interrupted': {
870
- enum3 = 11;
966
+ enum4 = 11;
871
967
  break;
872
968
  }
873
969
  case 'invalid': {
874
- enum3 = 12;
970
+ enum4 = 12;
875
971
  break;
876
972
  }
877
973
  case 'io': {
878
- enum3 = 13;
974
+ enum4 = 13;
879
975
  break;
880
976
  }
881
977
  case 'is-directory': {
882
- enum3 = 14;
978
+ enum4 = 14;
883
979
  break;
884
980
  }
885
981
  case 'loop': {
886
- enum3 = 15;
982
+ enum4 = 15;
887
983
  break;
888
984
  }
889
985
  case 'too-many-links': {
890
- enum3 = 16;
986
+ enum4 = 16;
891
987
  break;
892
988
  }
893
989
  case 'message-size': {
894
- enum3 = 17;
990
+ enum4 = 17;
895
991
  break;
896
992
  }
897
993
  case 'name-too-long': {
898
- enum3 = 18;
994
+ enum4 = 18;
899
995
  break;
900
996
  }
901
997
  case 'no-device': {
902
- enum3 = 19;
998
+ enum4 = 19;
903
999
  break;
904
1000
  }
905
1001
  case 'no-entry': {
906
- enum3 = 20;
1002
+ enum4 = 20;
907
1003
  break;
908
1004
  }
909
1005
  case 'no-lock': {
910
- enum3 = 21;
1006
+ enum4 = 21;
911
1007
  break;
912
1008
  }
913
1009
  case 'insufficient-memory': {
914
- enum3 = 22;
1010
+ enum4 = 22;
915
1011
  break;
916
1012
  }
917
1013
  case 'insufficient-space': {
918
- enum3 = 23;
1014
+ enum4 = 23;
919
1015
  break;
920
1016
  }
921
1017
  case 'not-directory': {
922
- enum3 = 24;
1018
+ enum4 = 24;
923
1019
  break;
924
1020
  }
925
1021
  case 'not-empty': {
926
- enum3 = 25;
1022
+ enum4 = 25;
927
1023
  break;
928
1024
  }
929
1025
  case 'not-recoverable': {
930
- enum3 = 26;
1026
+ enum4 = 26;
931
1027
  break;
932
1028
  }
933
1029
  case 'unsupported': {
934
- enum3 = 27;
1030
+ enum4 = 27;
935
1031
  break;
936
1032
  }
937
1033
  case 'no-tty': {
938
- enum3 = 28;
1034
+ enum4 = 28;
939
1035
  break;
940
1036
  }
941
1037
  case 'no-such-device': {
942
- enum3 = 29;
1038
+ enum4 = 29;
943
1039
  break;
944
1040
  }
945
1041
  case 'overflow': {
946
- enum3 = 30;
1042
+ enum4 = 30;
947
1043
  break;
948
1044
  }
949
1045
  case 'not-permitted': {
950
- enum3 = 31;
1046
+ enum4 = 31;
951
1047
  break;
952
1048
  }
953
1049
  case 'pipe': {
954
- enum3 = 32;
1050
+ enum4 = 32;
955
1051
  break;
956
1052
  }
957
1053
  case 'read-only': {
958
- enum3 = 33;
1054
+ enum4 = 33;
959
1055
  break;
960
1056
  }
961
1057
  case 'invalid-seek': {
962
- enum3 = 34;
1058
+ enum4 = 34;
963
1059
  break;
964
1060
  }
965
1061
  case 'text-file-busy': {
966
- enum3 = 35;
1062
+ enum4 = 35;
967
1063
  break;
968
1064
  }
969
1065
  case 'cross-device': {
970
- enum3 = 36;
1066
+ enum4 = 36;
971
1067
  break;
972
1068
  }
973
1069
  default: {
@@ -975,10 +1071,10 @@ function trampoline15(arg0, arg1) {
975
1071
  console.error(e);
976
1072
  }
977
1073
 
978
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
1074
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
979
1075
  }
980
1076
  }
981
- dataView(memory0).setInt8(arg1 + 1, enum3, true);
1077
+ dataView(memory0).setInt8(arg1 + 1, enum4, true);
982
1078
  break;
983
1079
  }
984
1080
  default: {
@@ -989,178 +1085,190 @@ function trampoline15(arg0, arg1) {
989
1085
 
990
1086
  function trampoline16(arg0, arg1) {
991
1087
  var handle1 = arg0;
992
- var rsc0 = handleTable5.get(handle1).rep;
1088
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1089
+ var rsc0 = captureTable5.get(rep2);
1090
+ if (!rsc0) {
1091
+ rsc0 = Object.create(Descriptor.prototype);
1092
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1093
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1094
+ }
993
1095
  let ret;
994
1096
  try {
995
- ret = { tag: 'ok', val: Descriptor.prototype.readDirectory.call(rsc0) };
1097
+ ret = { tag: 'ok', val: rsc0.readDirectory()};
996
1098
  } catch (e) {
997
1099
  ret = { tag: 'err', val: getErrorPayload(e) };
998
1100
  }
999
- var variant4 = ret;
1000
- switch (variant4.tag) {
1101
+ rsc0[symbolRscHandle] = null;
1102
+ var variant5 = ret;
1103
+ switch (variant5.tag) {
1001
1104
  case 'ok': {
1002
- const e = variant4.val;
1105
+ const e = variant5.val;
1003
1106
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1004
1107
  if (!(e instanceof DirectoryEntryStream)) {
1005
1108
  throw new Error('Resource error: Not a valid "DirectoryEntryStream" resource.');
1006
1109
  }
1007
- var handle2 = handleCnt6++;
1008
- handleTable6.set(handle2, { rep: e, own: true });
1009
- dataView(memory0).setInt32(arg1 + 4, handle2, true);
1110
+ var handle3 = e[symbolRscHandle];
1111
+
1112
+ if (!handle3) {
1113
+ const rep = e[symbolRscRep] || ++captureCnt6;
1114
+ captureTable6.set(rep, e);
1115
+ handle3 = rscTableCreateOwn(handleTable6, rep);
1116
+ }
1117
+ dataView(memory0).setInt32(arg1 + 4, handle3, true);
1010
1118
  break;
1011
1119
  }
1012
1120
  case 'err': {
1013
- const e = variant4.val;
1121
+ const e = variant5.val;
1014
1122
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1015
- var val3 = e;
1016
- let enum3;
1017
- switch (val3) {
1123
+ var val4 = e;
1124
+ let enum4;
1125
+ switch (val4) {
1018
1126
  case 'access': {
1019
- enum3 = 0;
1127
+ enum4 = 0;
1020
1128
  break;
1021
1129
  }
1022
1130
  case 'would-block': {
1023
- enum3 = 1;
1131
+ enum4 = 1;
1024
1132
  break;
1025
1133
  }
1026
1134
  case 'already': {
1027
- enum3 = 2;
1135
+ enum4 = 2;
1028
1136
  break;
1029
1137
  }
1030
1138
  case 'bad-descriptor': {
1031
- enum3 = 3;
1139
+ enum4 = 3;
1032
1140
  break;
1033
1141
  }
1034
1142
  case 'busy': {
1035
- enum3 = 4;
1143
+ enum4 = 4;
1036
1144
  break;
1037
1145
  }
1038
1146
  case 'deadlock': {
1039
- enum3 = 5;
1147
+ enum4 = 5;
1040
1148
  break;
1041
1149
  }
1042
1150
  case 'quota': {
1043
- enum3 = 6;
1151
+ enum4 = 6;
1044
1152
  break;
1045
1153
  }
1046
1154
  case 'exist': {
1047
- enum3 = 7;
1155
+ enum4 = 7;
1048
1156
  break;
1049
1157
  }
1050
1158
  case 'file-too-large': {
1051
- enum3 = 8;
1159
+ enum4 = 8;
1052
1160
  break;
1053
1161
  }
1054
1162
  case 'illegal-byte-sequence': {
1055
- enum3 = 9;
1163
+ enum4 = 9;
1056
1164
  break;
1057
1165
  }
1058
1166
  case 'in-progress': {
1059
- enum3 = 10;
1167
+ enum4 = 10;
1060
1168
  break;
1061
1169
  }
1062
1170
  case 'interrupted': {
1063
- enum3 = 11;
1171
+ enum4 = 11;
1064
1172
  break;
1065
1173
  }
1066
1174
  case 'invalid': {
1067
- enum3 = 12;
1175
+ enum4 = 12;
1068
1176
  break;
1069
1177
  }
1070
1178
  case 'io': {
1071
- enum3 = 13;
1179
+ enum4 = 13;
1072
1180
  break;
1073
1181
  }
1074
1182
  case 'is-directory': {
1075
- enum3 = 14;
1183
+ enum4 = 14;
1076
1184
  break;
1077
1185
  }
1078
1186
  case 'loop': {
1079
- enum3 = 15;
1187
+ enum4 = 15;
1080
1188
  break;
1081
1189
  }
1082
1190
  case 'too-many-links': {
1083
- enum3 = 16;
1191
+ enum4 = 16;
1084
1192
  break;
1085
1193
  }
1086
1194
  case 'message-size': {
1087
- enum3 = 17;
1195
+ enum4 = 17;
1088
1196
  break;
1089
1197
  }
1090
1198
  case 'name-too-long': {
1091
- enum3 = 18;
1199
+ enum4 = 18;
1092
1200
  break;
1093
1201
  }
1094
1202
  case 'no-device': {
1095
- enum3 = 19;
1203
+ enum4 = 19;
1096
1204
  break;
1097
1205
  }
1098
1206
  case 'no-entry': {
1099
- enum3 = 20;
1207
+ enum4 = 20;
1100
1208
  break;
1101
1209
  }
1102
1210
  case 'no-lock': {
1103
- enum3 = 21;
1211
+ enum4 = 21;
1104
1212
  break;
1105
1213
  }
1106
1214
  case 'insufficient-memory': {
1107
- enum3 = 22;
1215
+ enum4 = 22;
1108
1216
  break;
1109
1217
  }
1110
1218
  case 'insufficient-space': {
1111
- enum3 = 23;
1219
+ enum4 = 23;
1112
1220
  break;
1113
1221
  }
1114
1222
  case 'not-directory': {
1115
- enum3 = 24;
1223
+ enum4 = 24;
1116
1224
  break;
1117
1225
  }
1118
1226
  case 'not-empty': {
1119
- enum3 = 25;
1227
+ enum4 = 25;
1120
1228
  break;
1121
1229
  }
1122
1230
  case 'not-recoverable': {
1123
- enum3 = 26;
1231
+ enum4 = 26;
1124
1232
  break;
1125
1233
  }
1126
1234
  case 'unsupported': {
1127
- enum3 = 27;
1235
+ enum4 = 27;
1128
1236
  break;
1129
1237
  }
1130
1238
  case 'no-tty': {
1131
- enum3 = 28;
1239
+ enum4 = 28;
1132
1240
  break;
1133
1241
  }
1134
1242
  case 'no-such-device': {
1135
- enum3 = 29;
1243
+ enum4 = 29;
1136
1244
  break;
1137
1245
  }
1138
1246
  case 'overflow': {
1139
- enum3 = 30;
1247
+ enum4 = 30;
1140
1248
  break;
1141
1249
  }
1142
1250
  case 'not-permitted': {
1143
- enum3 = 31;
1251
+ enum4 = 31;
1144
1252
  break;
1145
1253
  }
1146
1254
  case 'pipe': {
1147
- enum3 = 32;
1255
+ enum4 = 32;
1148
1256
  break;
1149
1257
  }
1150
1258
  case 'read-only': {
1151
- enum3 = 33;
1259
+ enum4 = 33;
1152
1260
  break;
1153
1261
  }
1154
1262
  case 'invalid-seek': {
1155
- enum3 = 34;
1263
+ enum4 = 34;
1156
1264
  break;
1157
1265
  }
1158
1266
  case 'text-file-busy': {
1159
- enum3 = 35;
1267
+ enum4 = 35;
1160
1268
  break;
1161
1269
  }
1162
1270
  case 'cross-device': {
1163
- enum3 = 36;
1271
+ enum4 = 36;
1164
1272
  break;
1165
1273
  }
1166
1274
  default: {
@@ -1168,10 +1276,10 @@ function trampoline16(arg0, arg1) {
1168
1276
  console.error(e);
1169
1277
  }
1170
1278
 
1171
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
1279
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
1172
1280
  }
1173
1281
  }
1174
- dataView(memory0).setInt8(arg1 + 4, enum3, true);
1282
+ dataView(memory0).setInt8(arg1 + 4, enum4, true);
1175
1283
  break;
1176
1284
  }
1177
1285
  default: {
@@ -1182,249 +1290,256 @@ function trampoline16(arg0, arg1) {
1182
1290
 
1183
1291
  function trampoline17(arg0, arg1) {
1184
1292
  var handle1 = arg0;
1185
- var rsc0 = handleTable5.get(handle1).rep;
1293
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1294
+ var rsc0 = captureTable5.get(rep2);
1295
+ if (!rsc0) {
1296
+ rsc0 = Object.create(Descriptor.prototype);
1297
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1298
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1299
+ }
1186
1300
  let ret;
1187
1301
  try {
1188
- ret = { tag: 'ok', val: Descriptor.prototype.stat.call(rsc0) };
1302
+ ret = { tag: 'ok', val: rsc0.stat()};
1189
1303
  } catch (e) {
1190
1304
  ret = { tag: 'err', val: getErrorPayload(e) };
1191
1305
  }
1192
- var variant11 = ret;
1193
- switch (variant11.tag) {
1306
+ rsc0[symbolRscHandle] = null;
1307
+ var variant12 = ret;
1308
+ switch (variant12.tag) {
1194
1309
  case 'ok': {
1195
- const e = variant11.val;
1310
+ const e = variant12.val;
1196
1311
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1197
- var {type: v2_0, linkCount: v2_1, size: v2_2, dataAccessTimestamp: v2_3, dataModificationTimestamp: v2_4, statusChangeTimestamp: v2_5 } = e;
1198
- var val3 = v2_0;
1199
- let enum3;
1200
- switch (val3) {
1312
+ var {type: v3_0, linkCount: v3_1, size: v3_2, dataAccessTimestamp: v3_3, dataModificationTimestamp: v3_4, statusChangeTimestamp: v3_5 } = e;
1313
+ var val4 = v3_0;
1314
+ let enum4;
1315
+ switch (val4) {
1201
1316
  case 'unknown': {
1202
- enum3 = 0;
1317
+ enum4 = 0;
1203
1318
  break;
1204
1319
  }
1205
1320
  case 'block-device': {
1206
- enum3 = 1;
1321
+ enum4 = 1;
1207
1322
  break;
1208
1323
  }
1209
1324
  case 'character-device': {
1210
- enum3 = 2;
1325
+ enum4 = 2;
1211
1326
  break;
1212
1327
  }
1213
1328
  case 'directory': {
1214
- enum3 = 3;
1329
+ enum4 = 3;
1215
1330
  break;
1216
1331
  }
1217
1332
  case 'fifo': {
1218
- enum3 = 4;
1333
+ enum4 = 4;
1219
1334
  break;
1220
1335
  }
1221
1336
  case 'symbolic-link': {
1222
- enum3 = 5;
1337
+ enum4 = 5;
1223
1338
  break;
1224
1339
  }
1225
1340
  case 'regular-file': {
1226
- enum3 = 6;
1341
+ enum4 = 6;
1227
1342
  break;
1228
1343
  }
1229
1344
  case 'socket': {
1230
- enum3 = 7;
1345
+ enum4 = 7;
1231
1346
  break;
1232
1347
  }
1233
1348
  default: {
1234
- if ((v2_0) instanceof Error) {
1235
- console.error(v2_0);
1349
+ if ((v3_0) instanceof Error) {
1350
+ console.error(v3_0);
1236
1351
  }
1237
1352
 
1238
- throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`);
1353
+ throw new TypeError(`"${val4}" is not one of the cases of descriptor-type`);
1239
1354
  }
1240
1355
  }
1241
- dataView(memory0).setInt8(arg1 + 8, enum3, true);
1242
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v2_1), true);
1243
- dataView(memory0).setBigInt64(arg1 + 24, toUint64(v2_2), true);
1244
- var variant5 = v2_3;
1245
- if (variant5 === null || variant5=== undefined) {
1356
+ dataView(memory0).setInt8(arg1 + 8, enum4, true);
1357
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true);
1358
+ dataView(memory0).setBigInt64(arg1 + 24, toUint64(v3_2), true);
1359
+ var variant6 = v3_3;
1360
+ if (variant6 === null || variant6=== undefined) {
1246
1361
  dataView(memory0).setInt8(arg1 + 32, 0, true);
1247
1362
  } else {
1248
- const e = variant5;
1363
+ const e = variant6;
1249
1364
  dataView(memory0).setInt8(arg1 + 32, 1, true);
1250
- var {seconds: v4_0, nanoseconds: v4_1 } = e;
1251
- dataView(memory0).setBigInt64(arg1 + 40, toUint64(v4_0), true);
1252
- dataView(memory0).setInt32(arg1 + 48, toUint32(v4_1), true);
1365
+ var {seconds: v5_0, nanoseconds: v5_1 } = e;
1366
+ dataView(memory0).setBigInt64(arg1 + 40, toUint64(v5_0), true);
1367
+ dataView(memory0).setInt32(arg1 + 48, toUint32(v5_1), true);
1253
1368
  }
1254
- var variant7 = v2_4;
1255
- if (variant7 === null || variant7=== undefined) {
1369
+ var variant8 = v3_4;
1370
+ if (variant8 === null || variant8=== undefined) {
1256
1371
  dataView(memory0).setInt8(arg1 + 56, 0, true);
1257
1372
  } else {
1258
- const e = variant7;
1373
+ const e = variant8;
1259
1374
  dataView(memory0).setInt8(arg1 + 56, 1, true);
1260
- var {seconds: v6_0, nanoseconds: v6_1 } = e;
1261
- dataView(memory0).setBigInt64(arg1 + 64, toUint64(v6_0), true);
1262
- dataView(memory0).setInt32(arg1 + 72, toUint32(v6_1), true);
1375
+ var {seconds: v7_0, nanoseconds: v7_1 } = e;
1376
+ dataView(memory0).setBigInt64(arg1 + 64, toUint64(v7_0), true);
1377
+ dataView(memory0).setInt32(arg1 + 72, toUint32(v7_1), true);
1263
1378
  }
1264
- var variant9 = v2_5;
1265
- if (variant9 === null || variant9=== undefined) {
1379
+ var variant10 = v3_5;
1380
+ if (variant10 === null || variant10=== undefined) {
1266
1381
  dataView(memory0).setInt8(arg1 + 80, 0, true);
1267
1382
  } else {
1268
- const e = variant9;
1383
+ const e = variant10;
1269
1384
  dataView(memory0).setInt8(arg1 + 80, 1, true);
1270
- var {seconds: v8_0, nanoseconds: v8_1 } = e;
1271
- dataView(memory0).setBigInt64(arg1 + 88, toUint64(v8_0), true);
1272
- dataView(memory0).setInt32(arg1 + 96, toUint32(v8_1), true);
1385
+ var {seconds: v9_0, nanoseconds: v9_1 } = e;
1386
+ dataView(memory0).setBigInt64(arg1 + 88, toUint64(v9_0), true);
1387
+ dataView(memory0).setInt32(arg1 + 96, toUint32(v9_1), true);
1273
1388
  }
1274
1389
  break;
1275
1390
  }
1276
1391
  case 'err': {
1277
- const e = variant11.val;
1392
+ const e = variant12.val;
1278
1393
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1279
- var val10 = e;
1280
- let enum10;
1281
- switch (val10) {
1394
+ var val11 = e;
1395
+ let enum11;
1396
+ switch (val11) {
1282
1397
  case 'access': {
1283
- enum10 = 0;
1398
+ enum11 = 0;
1284
1399
  break;
1285
1400
  }
1286
1401
  case 'would-block': {
1287
- enum10 = 1;
1402
+ enum11 = 1;
1288
1403
  break;
1289
1404
  }
1290
1405
  case 'already': {
1291
- enum10 = 2;
1406
+ enum11 = 2;
1292
1407
  break;
1293
1408
  }
1294
1409
  case 'bad-descriptor': {
1295
- enum10 = 3;
1410
+ enum11 = 3;
1296
1411
  break;
1297
1412
  }
1298
1413
  case 'busy': {
1299
- enum10 = 4;
1414
+ enum11 = 4;
1300
1415
  break;
1301
1416
  }
1302
1417
  case 'deadlock': {
1303
- enum10 = 5;
1418
+ enum11 = 5;
1304
1419
  break;
1305
1420
  }
1306
1421
  case 'quota': {
1307
- enum10 = 6;
1422
+ enum11 = 6;
1308
1423
  break;
1309
1424
  }
1310
1425
  case 'exist': {
1311
- enum10 = 7;
1426
+ enum11 = 7;
1312
1427
  break;
1313
1428
  }
1314
1429
  case 'file-too-large': {
1315
- enum10 = 8;
1430
+ enum11 = 8;
1316
1431
  break;
1317
1432
  }
1318
1433
  case 'illegal-byte-sequence': {
1319
- enum10 = 9;
1434
+ enum11 = 9;
1320
1435
  break;
1321
1436
  }
1322
1437
  case 'in-progress': {
1323
- enum10 = 10;
1438
+ enum11 = 10;
1324
1439
  break;
1325
1440
  }
1326
1441
  case 'interrupted': {
1327
- enum10 = 11;
1442
+ enum11 = 11;
1328
1443
  break;
1329
1444
  }
1330
1445
  case 'invalid': {
1331
- enum10 = 12;
1446
+ enum11 = 12;
1332
1447
  break;
1333
1448
  }
1334
1449
  case 'io': {
1335
- enum10 = 13;
1450
+ enum11 = 13;
1336
1451
  break;
1337
1452
  }
1338
1453
  case 'is-directory': {
1339
- enum10 = 14;
1454
+ enum11 = 14;
1340
1455
  break;
1341
1456
  }
1342
1457
  case 'loop': {
1343
- enum10 = 15;
1458
+ enum11 = 15;
1344
1459
  break;
1345
1460
  }
1346
1461
  case 'too-many-links': {
1347
- enum10 = 16;
1462
+ enum11 = 16;
1348
1463
  break;
1349
1464
  }
1350
1465
  case 'message-size': {
1351
- enum10 = 17;
1466
+ enum11 = 17;
1352
1467
  break;
1353
1468
  }
1354
1469
  case 'name-too-long': {
1355
- enum10 = 18;
1470
+ enum11 = 18;
1356
1471
  break;
1357
1472
  }
1358
1473
  case 'no-device': {
1359
- enum10 = 19;
1474
+ enum11 = 19;
1360
1475
  break;
1361
1476
  }
1362
1477
  case 'no-entry': {
1363
- enum10 = 20;
1478
+ enum11 = 20;
1364
1479
  break;
1365
1480
  }
1366
1481
  case 'no-lock': {
1367
- enum10 = 21;
1482
+ enum11 = 21;
1368
1483
  break;
1369
1484
  }
1370
1485
  case 'insufficient-memory': {
1371
- enum10 = 22;
1486
+ enum11 = 22;
1372
1487
  break;
1373
1488
  }
1374
1489
  case 'insufficient-space': {
1375
- enum10 = 23;
1490
+ enum11 = 23;
1376
1491
  break;
1377
1492
  }
1378
1493
  case 'not-directory': {
1379
- enum10 = 24;
1494
+ enum11 = 24;
1380
1495
  break;
1381
1496
  }
1382
1497
  case 'not-empty': {
1383
- enum10 = 25;
1498
+ enum11 = 25;
1384
1499
  break;
1385
1500
  }
1386
1501
  case 'not-recoverable': {
1387
- enum10 = 26;
1502
+ enum11 = 26;
1388
1503
  break;
1389
1504
  }
1390
1505
  case 'unsupported': {
1391
- enum10 = 27;
1506
+ enum11 = 27;
1392
1507
  break;
1393
1508
  }
1394
1509
  case 'no-tty': {
1395
- enum10 = 28;
1510
+ enum11 = 28;
1396
1511
  break;
1397
1512
  }
1398
1513
  case 'no-such-device': {
1399
- enum10 = 29;
1514
+ enum11 = 29;
1400
1515
  break;
1401
1516
  }
1402
1517
  case 'overflow': {
1403
- enum10 = 30;
1518
+ enum11 = 30;
1404
1519
  break;
1405
1520
  }
1406
1521
  case 'not-permitted': {
1407
- enum10 = 31;
1522
+ enum11 = 31;
1408
1523
  break;
1409
1524
  }
1410
1525
  case 'pipe': {
1411
- enum10 = 32;
1526
+ enum11 = 32;
1412
1527
  break;
1413
1528
  }
1414
1529
  case 'read-only': {
1415
- enum10 = 33;
1530
+ enum11 = 33;
1416
1531
  break;
1417
1532
  }
1418
1533
  case 'invalid-seek': {
1419
- enum10 = 34;
1534
+ enum11 = 34;
1420
1535
  break;
1421
1536
  }
1422
1537
  case 'text-file-busy': {
1423
- enum10 = 35;
1538
+ enum11 = 35;
1424
1539
  break;
1425
1540
  }
1426
1541
  case 'cross-device': {
1427
- enum10 = 36;
1542
+ enum11 = 36;
1428
1543
  break;
1429
1544
  }
1430
1545
  default: {
@@ -1432,10 +1547,10 @@ function trampoline17(arg0, arg1) {
1432
1547
  console.error(e);
1433
1548
  }
1434
1549
 
1435
- throw new TypeError(`"${val10}" is not one of the cases of error-code`);
1550
+ throw new TypeError(`"${val11}" is not one of the cases of error-code`);
1436
1551
  }
1437
1552
  }
1438
- dataView(memory0).setInt8(arg1 + 8, enum10, true);
1553
+ dataView(memory0).setInt8(arg1 + 8, enum11, true);
1439
1554
  break;
1440
1555
  }
1441
1556
  default: {
@@ -1446,258 +1561,265 @@ function trampoline17(arg0, arg1) {
1446
1561
 
1447
1562
  function trampoline18(arg0, arg1, arg2, arg3, arg4) {
1448
1563
  var handle1 = arg0;
1449
- var rsc0 = handleTable5.get(handle1).rep;
1564
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1565
+ var rsc0 = captureTable5.get(rep2);
1566
+ if (!rsc0) {
1567
+ rsc0 = Object.create(Descriptor.prototype);
1568
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1569
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1570
+ }
1450
1571
  if ((arg1 & 4294967294) !== 0) {
1451
1572
  throw new TypeError('flags have extraneous bits set');
1452
1573
  }
1453
- var flags2 = {
1574
+ var flags3 = {
1454
1575
  symlinkFollow: Boolean(arg1 & 1),
1455
1576
  };
1456
- var ptr3 = arg2;
1457
- var len3 = arg3;
1458
- var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
1577
+ var ptr4 = arg2;
1578
+ var len4 = arg3;
1579
+ var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4));
1459
1580
  let ret;
1460
1581
  try {
1461
- ret = { tag: 'ok', val: Descriptor.prototype.statAt.call(rsc0, flags2, result3) };
1582
+ ret = { tag: 'ok', val: rsc0.statAt(flags3, result4)};
1462
1583
  } catch (e) {
1463
1584
  ret = { tag: 'err', val: getErrorPayload(e) };
1464
1585
  }
1465
- var variant13 = ret;
1466
- switch (variant13.tag) {
1586
+ rsc0[symbolRscHandle] = null;
1587
+ var variant14 = ret;
1588
+ switch (variant14.tag) {
1467
1589
  case 'ok': {
1468
- const e = variant13.val;
1590
+ const e = variant14.val;
1469
1591
  dataView(memory0).setInt8(arg4 + 0, 0, true);
1470
- var {type: v4_0, linkCount: v4_1, size: v4_2, dataAccessTimestamp: v4_3, dataModificationTimestamp: v4_4, statusChangeTimestamp: v4_5 } = e;
1471
- var val5 = v4_0;
1472
- let enum5;
1473
- switch (val5) {
1592
+ var {type: v5_0, linkCount: v5_1, size: v5_2, dataAccessTimestamp: v5_3, dataModificationTimestamp: v5_4, statusChangeTimestamp: v5_5 } = e;
1593
+ var val6 = v5_0;
1594
+ let enum6;
1595
+ switch (val6) {
1474
1596
  case 'unknown': {
1475
- enum5 = 0;
1597
+ enum6 = 0;
1476
1598
  break;
1477
1599
  }
1478
1600
  case 'block-device': {
1479
- enum5 = 1;
1601
+ enum6 = 1;
1480
1602
  break;
1481
1603
  }
1482
1604
  case 'character-device': {
1483
- enum5 = 2;
1605
+ enum6 = 2;
1484
1606
  break;
1485
1607
  }
1486
1608
  case 'directory': {
1487
- enum5 = 3;
1609
+ enum6 = 3;
1488
1610
  break;
1489
1611
  }
1490
1612
  case 'fifo': {
1491
- enum5 = 4;
1613
+ enum6 = 4;
1492
1614
  break;
1493
1615
  }
1494
1616
  case 'symbolic-link': {
1495
- enum5 = 5;
1617
+ enum6 = 5;
1496
1618
  break;
1497
1619
  }
1498
1620
  case 'regular-file': {
1499
- enum5 = 6;
1621
+ enum6 = 6;
1500
1622
  break;
1501
1623
  }
1502
1624
  case 'socket': {
1503
- enum5 = 7;
1625
+ enum6 = 7;
1504
1626
  break;
1505
1627
  }
1506
1628
  default: {
1507
- if ((v4_0) instanceof Error) {
1508
- console.error(v4_0);
1629
+ if ((v5_0) instanceof Error) {
1630
+ console.error(v5_0);
1509
1631
  }
1510
1632
 
1511
- throw new TypeError(`"${val5}" is not one of the cases of descriptor-type`);
1633
+ throw new TypeError(`"${val6}" is not one of the cases of descriptor-type`);
1512
1634
  }
1513
1635
  }
1514
- dataView(memory0).setInt8(arg4 + 8, enum5, true);
1515
- dataView(memory0).setBigInt64(arg4 + 16, toUint64(v4_1), true);
1516
- dataView(memory0).setBigInt64(arg4 + 24, toUint64(v4_2), true);
1517
- var variant7 = v4_3;
1518
- if (variant7 === null || variant7=== undefined) {
1636
+ dataView(memory0).setInt8(arg4 + 8, enum6, true);
1637
+ dataView(memory0).setBigInt64(arg4 + 16, toUint64(v5_1), true);
1638
+ dataView(memory0).setBigInt64(arg4 + 24, toUint64(v5_2), true);
1639
+ var variant8 = v5_3;
1640
+ if (variant8 === null || variant8=== undefined) {
1519
1641
  dataView(memory0).setInt8(arg4 + 32, 0, true);
1520
1642
  } else {
1521
- const e = variant7;
1643
+ const e = variant8;
1522
1644
  dataView(memory0).setInt8(arg4 + 32, 1, true);
1523
- var {seconds: v6_0, nanoseconds: v6_1 } = e;
1524
- dataView(memory0).setBigInt64(arg4 + 40, toUint64(v6_0), true);
1525
- dataView(memory0).setInt32(arg4 + 48, toUint32(v6_1), true);
1645
+ var {seconds: v7_0, nanoseconds: v7_1 } = e;
1646
+ dataView(memory0).setBigInt64(arg4 + 40, toUint64(v7_0), true);
1647
+ dataView(memory0).setInt32(arg4 + 48, toUint32(v7_1), true);
1526
1648
  }
1527
- var variant9 = v4_4;
1528
- if (variant9 === null || variant9=== undefined) {
1649
+ var variant10 = v5_4;
1650
+ if (variant10 === null || variant10=== undefined) {
1529
1651
  dataView(memory0).setInt8(arg4 + 56, 0, true);
1530
1652
  } else {
1531
- const e = variant9;
1653
+ const e = variant10;
1532
1654
  dataView(memory0).setInt8(arg4 + 56, 1, true);
1533
- var {seconds: v8_0, nanoseconds: v8_1 } = e;
1534
- dataView(memory0).setBigInt64(arg4 + 64, toUint64(v8_0), true);
1535
- dataView(memory0).setInt32(arg4 + 72, toUint32(v8_1), true);
1655
+ var {seconds: v9_0, nanoseconds: v9_1 } = e;
1656
+ dataView(memory0).setBigInt64(arg4 + 64, toUint64(v9_0), true);
1657
+ dataView(memory0).setInt32(arg4 + 72, toUint32(v9_1), true);
1536
1658
  }
1537
- var variant11 = v4_5;
1538
- if (variant11 === null || variant11=== undefined) {
1659
+ var variant12 = v5_5;
1660
+ if (variant12 === null || variant12=== undefined) {
1539
1661
  dataView(memory0).setInt8(arg4 + 80, 0, true);
1540
1662
  } else {
1541
- const e = variant11;
1663
+ const e = variant12;
1542
1664
  dataView(memory0).setInt8(arg4 + 80, 1, true);
1543
- var {seconds: v10_0, nanoseconds: v10_1 } = e;
1544
- dataView(memory0).setBigInt64(arg4 + 88, toUint64(v10_0), true);
1545
- dataView(memory0).setInt32(arg4 + 96, toUint32(v10_1), true);
1665
+ var {seconds: v11_0, nanoseconds: v11_1 } = e;
1666
+ dataView(memory0).setBigInt64(arg4 + 88, toUint64(v11_0), true);
1667
+ dataView(memory0).setInt32(arg4 + 96, toUint32(v11_1), true);
1546
1668
  }
1547
1669
  break;
1548
1670
  }
1549
1671
  case 'err': {
1550
- const e = variant13.val;
1672
+ const e = variant14.val;
1551
1673
  dataView(memory0).setInt8(arg4 + 0, 1, true);
1552
- var val12 = e;
1553
- let enum12;
1554
- switch (val12) {
1674
+ var val13 = e;
1675
+ let enum13;
1676
+ switch (val13) {
1555
1677
  case 'access': {
1556
- enum12 = 0;
1678
+ enum13 = 0;
1557
1679
  break;
1558
1680
  }
1559
1681
  case 'would-block': {
1560
- enum12 = 1;
1682
+ enum13 = 1;
1561
1683
  break;
1562
1684
  }
1563
1685
  case 'already': {
1564
- enum12 = 2;
1686
+ enum13 = 2;
1565
1687
  break;
1566
1688
  }
1567
1689
  case 'bad-descriptor': {
1568
- enum12 = 3;
1690
+ enum13 = 3;
1569
1691
  break;
1570
1692
  }
1571
1693
  case 'busy': {
1572
- enum12 = 4;
1694
+ enum13 = 4;
1573
1695
  break;
1574
1696
  }
1575
1697
  case 'deadlock': {
1576
- enum12 = 5;
1698
+ enum13 = 5;
1577
1699
  break;
1578
1700
  }
1579
1701
  case 'quota': {
1580
- enum12 = 6;
1702
+ enum13 = 6;
1581
1703
  break;
1582
1704
  }
1583
1705
  case 'exist': {
1584
- enum12 = 7;
1706
+ enum13 = 7;
1585
1707
  break;
1586
1708
  }
1587
1709
  case 'file-too-large': {
1588
- enum12 = 8;
1710
+ enum13 = 8;
1589
1711
  break;
1590
1712
  }
1591
1713
  case 'illegal-byte-sequence': {
1592
- enum12 = 9;
1714
+ enum13 = 9;
1593
1715
  break;
1594
1716
  }
1595
1717
  case 'in-progress': {
1596
- enum12 = 10;
1718
+ enum13 = 10;
1597
1719
  break;
1598
1720
  }
1599
1721
  case 'interrupted': {
1600
- enum12 = 11;
1722
+ enum13 = 11;
1601
1723
  break;
1602
1724
  }
1603
1725
  case 'invalid': {
1604
- enum12 = 12;
1726
+ enum13 = 12;
1605
1727
  break;
1606
1728
  }
1607
1729
  case 'io': {
1608
- enum12 = 13;
1730
+ enum13 = 13;
1609
1731
  break;
1610
1732
  }
1611
1733
  case 'is-directory': {
1612
- enum12 = 14;
1734
+ enum13 = 14;
1613
1735
  break;
1614
1736
  }
1615
1737
  case 'loop': {
1616
- enum12 = 15;
1738
+ enum13 = 15;
1617
1739
  break;
1618
1740
  }
1619
1741
  case 'too-many-links': {
1620
- enum12 = 16;
1742
+ enum13 = 16;
1621
1743
  break;
1622
1744
  }
1623
1745
  case 'message-size': {
1624
- enum12 = 17;
1746
+ enum13 = 17;
1625
1747
  break;
1626
1748
  }
1627
1749
  case 'name-too-long': {
1628
- enum12 = 18;
1750
+ enum13 = 18;
1629
1751
  break;
1630
1752
  }
1631
1753
  case 'no-device': {
1632
- enum12 = 19;
1754
+ enum13 = 19;
1633
1755
  break;
1634
1756
  }
1635
1757
  case 'no-entry': {
1636
- enum12 = 20;
1758
+ enum13 = 20;
1637
1759
  break;
1638
1760
  }
1639
1761
  case 'no-lock': {
1640
- enum12 = 21;
1762
+ enum13 = 21;
1641
1763
  break;
1642
1764
  }
1643
1765
  case 'insufficient-memory': {
1644
- enum12 = 22;
1766
+ enum13 = 22;
1645
1767
  break;
1646
1768
  }
1647
1769
  case 'insufficient-space': {
1648
- enum12 = 23;
1770
+ enum13 = 23;
1649
1771
  break;
1650
1772
  }
1651
1773
  case 'not-directory': {
1652
- enum12 = 24;
1774
+ enum13 = 24;
1653
1775
  break;
1654
1776
  }
1655
1777
  case 'not-empty': {
1656
- enum12 = 25;
1778
+ enum13 = 25;
1657
1779
  break;
1658
1780
  }
1659
1781
  case 'not-recoverable': {
1660
- enum12 = 26;
1782
+ enum13 = 26;
1661
1783
  break;
1662
1784
  }
1663
1785
  case 'unsupported': {
1664
- enum12 = 27;
1786
+ enum13 = 27;
1665
1787
  break;
1666
1788
  }
1667
1789
  case 'no-tty': {
1668
- enum12 = 28;
1790
+ enum13 = 28;
1669
1791
  break;
1670
1792
  }
1671
1793
  case 'no-such-device': {
1672
- enum12 = 29;
1794
+ enum13 = 29;
1673
1795
  break;
1674
1796
  }
1675
1797
  case 'overflow': {
1676
- enum12 = 30;
1798
+ enum13 = 30;
1677
1799
  break;
1678
1800
  }
1679
1801
  case 'not-permitted': {
1680
- enum12 = 31;
1802
+ enum13 = 31;
1681
1803
  break;
1682
1804
  }
1683
1805
  case 'pipe': {
1684
- enum12 = 32;
1806
+ enum13 = 32;
1685
1807
  break;
1686
1808
  }
1687
1809
  case 'read-only': {
1688
- enum12 = 33;
1810
+ enum13 = 33;
1689
1811
  break;
1690
1812
  }
1691
1813
  case 'invalid-seek': {
1692
- enum12 = 34;
1814
+ enum13 = 34;
1693
1815
  break;
1694
1816
  }
1695
1817
  case 'text-file-busy': {
1696
- enum12 = 35;
1818
+ enum13 = 35;
1697
1819
  break;
1698
1820
  }
1699
1821
  case 'cross-device': {
1700
- enum12 = 36;
1822
+ enum13 = 36;
1701
1823
  break;
1702
1824
  }
1703
1825
  default: {
@@ -1705,10 +1827,10 @@ function trampoline18(arg0, arg1, arg2, arg3, arg4) {
1705
1827
  console.error(e);
1706
1828
  }
1707
1829
 
1708
- throw new TypeError(`"${val12}" is not one of the cases of error-code`);
1830
+ throw new TypeError(`"${val13}" is not one of the cases of error-code`);
1709
1831
  }
1710
1832
  }
1711
- dataView(memory0).setInt8(arg4 + 8, enum12, true);
1833
+ dataView(memory0).setInt8(arg4 + 8, enum13, true);
1712
1834
  break;
1713
1835
  }
1714
1836
  default: {
@@ -1719,20 +1841,26 @@ function trampoline18(arg0, arg1, arg2, arg3, arg4) {
1719
1841
 
1720
1842
  function trampoline19(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1721
1843
  var handle1 = arg0;
1722
- var rsc0 = handleTable5.get(handle1).rep;
1844
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1845
+ var rsc0 = captureTable5.get(rep2);
1846
+ if (!rsc0) {
1847
+ rsc0 = Object.create(Descriptor.prototype);
1848
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1849
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1850
+ }
1723
1851
  if ((arg1 & 4294967294) !== 0) {
1724
1852
  throw new TypeError('flags have extraneous bits set');
1725
1853
  }
1726
- var flags2 = {
1854
+ var flags3 = {
1727
1855
  symlinkFollow: Boolean(arg1 & 1),
1728
1856
  };
1729
- var ptr3 = arg2;
1730
- var len3 = arg3;
1731
- var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
1857
+ var ptr4 = arg2;
1858
+ var len4 = arg3;
1859
+ var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4));
1732
1860
  if ((arg4 & 4294967280) !== 0) {
1733
1861
  throw new TypeError('flags have extraneous bits set');
1734
1862
  }
1735
- var flags4 = {
1863
+ var flags5 = {
1736
1864
  create: Boolean(arg4 & 1),
1737
1865
  directory: Boolean(arg4 & 2),
1738
1866
  exclusive: Boolean(arg4 & 4),
@@ -1741,7 +1869,7 @@ function trampoline19(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1741
1869
  if ((arg5 & 4294967232) !== 0) {
1742
1870
  throw new TypeError('flags have extraneous bits set');
1743
1871
  }
1744
- var flags5 = {
1872
+ var flags6 = {
1745
1873
  read: Boolean(arg5 & 1),
1746
1874
  write: Boolean(arg5 & 2),
1747
1875
  fileIntegritySync: Boolean(arg5 & 4),
@@ -1751,175 +1879,181 @@ function trampoline19(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1751
1879
  };
1752
1880
  let ret;
1753
1881
  try {
1754
- ret = { tag: 'ok', val: Descriptor.prototype.openAt.call(rsc0, flags2, result3, flags4, flags5) };
1882
+ ret = { tag: 'ok', val: rsc0.openAt(flags3, result4, flags5, flags6)};
1755
1883
  } catch (e) {
1756
1884
  ret = { tag: 'err', val: getErrorPayload(e) };
1757
1885
  }
1758
- var variant8 = ret;
1759
- switch (variant8.tag) {
1886
+ rsc0[symbolRscHandle] = null;
1887
+ var variant9 = ret;
1888
+ switch (variant9.tag) {
1760
1889
  case 'ok': {
1761
- const e = variant8.val;
1890
+ const e = variant9.val;
1762
1891
  dataView(memory0).setInt8(arg6 + 0, 0, true);
1763
1892
  if (!(e instanceof Descriptor)) {
1764
1893
  throw new Error('Resource error: Not a valid "Descriptor" resource.');
1765
1894
  }
1766
- var handle6 = handleCnt5++;
1767
- handleTable5.set(handle6, { rep: e, own: true });
1768
- dataView(memory0).setInt32(arg6 + 4, handle6, true);
1895
+ var handle7 = e[symbolRscHandle];
1896
+
1897
+ if (!handle7) {
1898
+ const rep = e[symbolRscRep] || ++captureCnt5;
1899
+ captureTable5.set(rep, e);
1900
+ handle7 = rscTableCreateOwn(handleTable5, rep);
1901
+ }
1902
+ dataView(memory0).setInt32(arg6 + 4, handle7, true);
1769
1903
  break;
1770
1904
  }
1771
1905
  case 'err': {
1772
- const e = variant8.val;
1906
+ const e = variant9.val;
1773
1907
  dataView(memory0).setInt8(arg6 + 0, 1, true);
1774
- var val7 = e;
1775
- let enum7;
1776
- switch (val7) {
1908
+ var val8 = e;
1909
+ let enum8;
1910
+ switch (val8) {
1777
1911
  case 'access': {
1778
- enum7 = 0;
1912
+ enum8 = 0;
1779
1913
  break;
1780
1914
  }
1781
1915
  case 'would-block': {
1782
- enum7 = 1;
1916
+ enum8 = 1;
1783
1917
  break;
1784
1918
  }
1785
1919
  case 'already': {
1786
- enum7 = 2;
1920
+ enum8 = 2;
1787
1921
  break;
1788
1922
  }
1789
1923
  case 'bad-descriptor': {
1790
- enum7 = 3;
1924
+ enum8 = 3;
1791
1925
  break;
1792
1926
  }
1793
1927
  case 'busy': {
1794
- enum7 = 4;
1928
+ enum8 = 4;
1795
1929
  break;
1796
1930
  }
1797
1931
  case 'deadlock': {
1798
- enum7 = 5;
1932
+ enum8 = 5;
1799
1933
  break;
1800
1934
  }
1801
1935
  case 'quota': {
1802
- enum7 = 6;
1936
+ enum8 = 6;
1803
1937
  break;
1804
1938
  }
1805
1939
  case 'exist': {
1806
- enum7 = 7;
1940
+ enum8 = 7;
1807
1941
  break;
1808
1942
  }
1809
1943
  case 'file-too-large': {
1810
- enum7 = 8;
1944
+ enum8 = 8;
1811
1945
  break;
1812
1946
  }
1813
1947
  case 'illegal-byte-sequence': {
1814
- enum7 = 9;
1948
+ enum8 = 9;
1815
1949
  break;
1816
1950
  }
1817
1951
  case 'in-progress': {
1818
- enum7 = 10;
1952
+ enum8 = 10;
1819
1953
  break;
1820
1954
  }
1821
1955
  case 'interrupted': {
1822
- enum7 = 11;
1956
+ enum8 = 11;
1823
1957
  break;
1824
1958
  }
1825
1959
  case 'invalid': {
1826
- enum7 = 12;
1960
+ enum8 = 12;
1827
1961
  break;
1828
1962
  }
1829
1963
  case 'io': {
1830
- enum7 = 13;
1964
+ enum8 = 13;
1831
1965
  break;
1832
1966
  }
1833
1967
  case 'is-directory': {
1834
- enum7 = 14;
1968
+ enum8 = 14;
1835
1969
  break;
1836
1970
  }
1837
1971
  case 'loop': {
1838
- enum7 = 15;
1972
+ enum8 = 15;
1839
1973
  break;
1840
1974
  }
1841
1975
  case 'too-many-links': {
1842
- enum7 = 16;
1976
+ enum8 = 16;
1843
1977
  break;
1844
1978
  }
1845
1979
  case 'message-size': {
1846
- enum7 = 17;
1980
+ enum8 = 17;
1847
1981
  break;
1848
1982
  }
1849
1983
  case 'name-too-long': {
1850
- enum7 = 18;
1984
+ enum8 = 18;
1851
1985
  break;
1852
1986
  }
1853
1987
  case 'no-device': {
1854
- enum7 = 19;
1988
+ enum8 = 19;
1855
1989
  break;
1856
1990
  }
1857
1991
  case 'no-entry': {
1858
- enum7 = 20;
1992
+ enum8 = 20;
1859
1993
  break;
1860
1994
  }
1861
1995
  case 'no-lock': {
1862
- enum7 = 21;
1996
+ enum8 = 21;
1863
1997
  break;
1864
1998
  }
1865
1999
  case 'insufficient-memory': {
1866
- enum7 = 22;
2000
+ enum8 = 22;
1867
2001
  break;
1868
2002
  }
1869
2003
  case 'insufficient-space': {
1870
- enum7 = 23;
2004
+ enum8 = 23;
1871
2005
  break;
1872
2006
  }
1873
2007
  case 'not-directory': {
1874
- enum7 = 24;
2008
+ enum8 = 24;
1875
2009
  break;
1876
2010
  }
1877
2011
  case 'not-empty': {
1878
- enum7 = 25;
2012
+ enum8 = 25;
1879
2013
  break;
1880
2014
  }
1881
2015
  case 'not-recoverable': {
1882
- enum7 = 26;
2016
+ enum8 = 26;
1883
2017
  break;
1884
2018
  }
1885
2019
  case 'unsupported': {
1886
- enum7 = 27;
2020
+ enum8 = 27;
1887
2021
  break;
1888
2022
  }
1889
2023
  case 'no-tty': {
1890
- enum7 = 28;
2024
+ enum8 = 28;
1891
2025
  break;
1892
2026
  }
1893
2027
  case 'no-such-device': {
1894
- enum7 = 29;
2028
+ enum8 = 29;
1895
2029
  break;
1896
2030
  }
1897
2031
  case 'overflow': {
1898
- enum7 = 30;
2032
+ enum8 = 30;
1899
2033
  break;
1900
2034
  }
1901
2035
  case 'not-permitted': {
1902
- enum7 = 31;
2036
+ enum8 = 31;
1903
2037
  break;
1904
2038
  }
1905
2039
  case 'pipe': {
1906
- enum7 = 32;
2040
+ enum8 = 32;
1907
2041
  break;
1908
2042
  }
1909
2043
  case 'read-only': {
1910
- enum7 = 33;
2044
+ enum8 = 33;
1911
2045
  break;
1912
2046
  }
1913
2047
  case 'invalid-seek': {
1914
- enum7 = 34;
2048
+ enum8 = 34;
1915
2049
  break;
1916
2050
  }
1917
2051
  case 'text-file-busy': {
1918
- enum7 = 35;
2052
+ enum8 = 35;
1919
2053
  break;
1920
2054
  }
1921
2055
  case 'cross-device': {
1922
- enum7 = 36;
2056
+ enum8 = 36;
1923
2057
  break;
1924
2058
  }
1925
2059
  default: {
@@ -1927,10 +2061,10 @@ function trampoline19(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1927
2061
  console.error(e);
1928
2062
  }
1929
2063
 
1930
- throw new TypeError(`"${val7}" is not one of the cases of error-code`);
2064
+ throw new TypeError(`"${val8}" is not one of the cases of error-code`);
1931
2065
  }
1932
2066
  }
1933
- dataView(memory0).setInt8(arg6 + 4, enum7, true);
2067
+ dataView(memory0).setInt8(arg6 + 4, enum8, true);
1934
2068
  break;
1935
2069
  }
1936
2070
  default: {
@@ -1941,175 +2075,182 @@ function trampoline19(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1941
2075
 
1942
2076
  function trampoline20(arg0, arg1) {
1943
2077
  var handle1 = arg0;
1944
- var rsc0 = handleTable5.get(handle1).rep;
2078
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
2079
+ var rsc0 = captureTable5.get(rep2);
2080
+ if (!rsc0) {
2081
+ rsc0 = Object.create(Descriptor.prototype);
2082
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2083
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2084
+ }
1945
2085
  let ret;
1946
2086
  try {
1947
- ret = { tag: 'ok', val: Descriptor.prototype.metadataHash.call(rsc0) };
2087
+ ret = { tag: 'ok', val: rsc0.metadataHash()};
1948
2088
  } catch (e) {
1949
2089
  ret = { tag: 'err', val: getErrorPayload(e) };
1950
2090
  }
1951
- var variant4 = ret;
1952
- switch (variant4.tag) {
2091
+ rsc0[symbolRscHandle] = null;
2092
+ var variant5 = ret;
2093
+ switch (variant5.tag) {
1953
2094
  case 'ok': {
1954
- const e = variant4.val;
2095
+ const e = variant5.val;
1955
2096
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1956
- var {lower: v2_0, upper: v2_1 } = e;
1957
- dataView(memory0).setBigInt64(arg1 + 8, toUint64(v2_0), true);
1958
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v2_1), true);
2097
+ var {lower: v3_0, upper: v3_1 } = e;
2098
+ dataView(memory0).setBigInt64(arg1 + 8, toUint64(v3_0), true);
2099
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true);
1959
2100
  break;
1960
2101
  }
1961
2102
  case 'err': {
1962
- const e = variant4.val;
2103
+ const e = variant5.val;
1963
2104
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1964
- var val3 = e;
1965
- let enum3;
1966
- switch (val3) {
2105
+ var val4 = e;
2106
+ let enum4;
2107
+ switch (val4) {
1967
2108
  case 'access': {
1968
- enum3 = 0;
2109
+ enum4 = 0;
1969
2110
  break;
1970
2111
  }
1971
2112
  case 'would-block': {
1972
- enum3 = 1;
2113
+ enum4 = 1;
1973
2114
  break;
1974
2115
  }
1975
2116
  case 'already': {
1976
- enum3 = 2;
2117
+ enum4 = 2;
1977
2118
  break;
1978
2119
  }
1979
2120
  case 'bad-descriptor': {
1980
- enum3 = 3;
2121
+ enum4 = 3;
1981
2122
  break;
1982
2123
  }
1983
2124
  case 'busy': {
1984
- enum3 = 4;
2125
+ enum4 = 4;
1985
2126
  break;
1986
2127
  }
1987
2128
  case 'deadlock': {
1988
- enum3 = 5;
2129
+ enum4 = 5;
1989
2130
  break;
1990
2131
  }
1991
2132
  case 'quota': {
1992
- enum3 = 6;
2133
+ enum4 = 6;
1993
2134
  break;
1994
2135
  }
1995
2136
  case 'exist': {
1996
- enum3 = 7;
2137
+ enum4 = 7;
1997
2138
  break;
1998
2139
  }
1999
2140
  case 'file-too-large': {
2000
- enum3 = 8;
2141
+ enum4 = 8;
2001
2142
  break;
2002
2143
  }
2003
2144
  case 'illegal-byte-sequence': {
2004
- enum3 = 9;
2145
+ enum4 = 9;
2005
2146
  break;
2006
2147
  }
2007
2148
  case 'in-progress': {
2008
- enum3 = 10;
2149
+ enum4 = 10;
2009
2150
  break;
2010
2151
  }
2011
2152
  case 'interrupted': {
2012
- enum3 = 11;
2153
+ enum4 = 11;
2013
2154
  break;
2014
2155
  }
2015
2156
  case 'invalid': {
2016
- enum3 = 12;
2157
+ enum4 = 12;
2017
2158
  break;
2018
2159
  }
2019
2160
  case 'io': {
2020
- enum3 = 13;
2161
+ enum4 = 13;
2021
2162
  break;
2022
2163
  }
2023
2164
  case 'is-directory': {
2024
- enum3 = 14;
2165
+ enum4 = 14;
2025
2166
  break;
2026
2167
  }
2027
2168
  case 'loop': {
2028
- enum3 = 15;
2169
+ enum4 = 15;
2029
2170
  break;
2030
2171
  }
2031
2172
  case 'too-many-links': {
2032
- enum3 = 16;
2173
+ enum4 = 16;
2033
2174
  break;
2034
2175
  }
2035
2176
  case 'message-size': {
2036
- enum3 = 17;
2177
+ enum4 = 17;
2037
2178
  break;
2038
2179
  }
2039
2180
  case 'name-too-long': {
2040
- enum3 = 18;
2181
+ enum4 = 18;
2041
2182
  break;
2042
2183
  }
2043
2184
  case 'no-device': {
2044
- enum3 = 19;
2185
+ enum4 = 19;
2045
2186
  break;
2046
2187
  }
2047
2188
  case 'no-entry': {
2048
- enum3 = 20;
2189
+ enum4 = 20;
2049
2190
  break;
2050
2191
  }
2051
2192
  case 'no-lock': {
2052
- enum3 = 21;
2193
+ enum4 = 21;
2053
2194
  break;
2054
2195
  }
2055
2196
  case 'insufficient-memory': {
2056
- enum3 = 22;
2197
+ enum4 = 22;
2057
2198
  break;
2058
2199
  }
2059
2200
  case 'insufficient-space': {
2060
- enum3 = 23;
2201
+ enum4 = 23;
2061
2202
  break;
2062
2203
  }
2063
2204
  case 'not-directory': {
2064
- enum3 = 24;
2205
+ enum4 = 24;
2065
2206
  break;
2066
2207
  }
2067
2208
  case 'not-empty': {
2068
- enum3 = 25;
2209
+ enum4 = 25;
2069
2210
  break;
2070
2211
  }
2071
2212
  case 'not-recoverable': {
2072
- enum3 = 26;
2213
+ enum4 = 26;
2073
2214
  break;
2074
2215
  }
2075
2216
  case 'unsupported': {
2076
- enum3 = 27;
2217
+ enum4 = 27;
2077
2218
  break;
2078
2219
  }
2079
2220
  case 'no-tty': {
2080
- enum3 = 28;
2221
+ enum4 = 28;
2081
2222
  break;
2082
2223
  }
2083
2224
  case 'no-such-device': {
2084
- enum3 = 29;
2225
+ enum4 = 29;
2085
2226
  break;
2086
2227
  }
2087
2228
  case 'overflow': {
2088
- enum3 = 30;
2229
+ enum4 = 30;
2089
2230
  break;
2090
2231
  }
2091
2232
  case 'not-permitted': {
2092
- enum3 = 31;
2233
+ enum4 = 31;
2093
2234
  break;
2094
2235
  }
2095
2236
  case 'pipe': {
2096
- enum3 = 32;
2237
+ enum4 = 32;
2097
2238
  break;
2098
2239
  }
2099
2240
  case 'read-only': {
2100
- enum3 = 33;
2241
+ enum4 = 33;
2101
2242
  break;
2102
2243
  }
2103
2244
  case 'invalid-seek': {
2104
- enum3 = 34;
2245
+ enum4 = 34;
2105
2246
  break;
2106
2247
  }
2107
2248
  case 'text-file-busy': {
2108
- enum3 = 35;
2249
+ enum4 = 35;
2109
2250
  break;
2110
2251
  }
2111
2252
  case 'cross-device': {
2112
- enum3 = 36;
2253
+ enum4 = 36;
2113
2254
  break;
2114
2255
  }
2115
2256
  default: {
@@ -2117,10 +2258,10 @@ function trampoline20(arg0, arg1) {
2117
2258
  console.error(e);
2118
2259
  }
2119
2260
 
2120
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
2261
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
2121
2262
  }
2122
2263
  }
2123
- dataView(memory0).setInt8(arg1 + 8, enum3, true);
2264
+ dataView(memory0).setInt8(arg1 + 8, enum4, true);
2124
2265
  break;
2125
2266
  }
2126
2267
  default: {
@@ -2131,184 +2272,191 @@ function trampoline20(arg0, arg1) {
2131
2272
 
2132
2273
  function trampoline21(arg0, arg1, arg2, arg3, arg4) {
2133
2274
  var handle1 = arg0;
2134
- var rsc0 = handleTable5.get(handle1).rep;
2275
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
2276
+ var rsc0 = captureTable5.get(rep2);
2277
+ if (!rsc0) {
2278
+ rsc0 = Object.create(Descriptor.prototype);
2279
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2280
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2281
+ }
2135
2282
  if ((arg1 & 4294967294) !== 0) {
2136
2283
  throw new TypeError('flags have extraneous bits set');
2137
2284
  }
2138
- var flags2 = {
2285
+ var flags3 = {
2139
2286
  symlinkFollow: Boolean(arg1 & 1),
2140
2287
  };
2141
- var ptr3 = arg2;
2142
- var len3 = arg3;
2143
- var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
2288
+ var ptr4 = arg2;
2289
+ var len4 = arg3;
2290
+ var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4));
2144
2291
  let ret;
2145
2292
  try {
2146
- ret = { tag: 'ok', val: Descriptor.prototype.metadataHashAt.call(rsc0, flags2, result3) };
2293
+ ret = { tag: 'ok', val: rsc0.metadataHashAt(flags3, result4)};
2147
2294
  } catch (e) {
2148
2295
  ret = { tag: 'err', val: getErrorPayload(e) };
2149
2296
  }
2150
- var variant6 = ret;
2151
- switch (variant6.tag) {
2297
+ rsc0[symbolRscHandle] = null;
2298
+ var variant7 = ret;
2299
+ switch (variant7.tag) {
2152
2300
  case 'ok': {
2153
- const e = variant6.val;
2301
+ const e = variant7.val;
2154
2302
  dataView(memory0).setInt8(arg4 + 0, 0, true);
2155
- var {lower: v4_0, upper: v4_1 } = e;
2156
- dataView(memory0).setBigInt64(arg4 + 8, toUint64(v4_0), true);
2157
- dataView(memory0).setBigInt64(arg4 + 16, toUint64(v4_1), true);
2303
+ var {lower: v5_0, upper: v5_1 } = e;
2304
+ dataView(memory0).setBigInt64(arg4 + 8, toUint64(v5_0), true);
2305
+ dataView(memory0).setBigInt64(arg4 + 16, toUint64(v5_1), true);
2158
2306
  break;
2159
2307
  }
2160
2308
  case 'err': {
2161
- const e = variant6.val;
2309
+ const e = variant7.val;
2162
2310
  dataView(memory0).setInt8(arg4 + 0, 1, true);
2163
- var val5 = e;
2164
- let enum5;
2165
- switch (val5) {
2311
+ var val6 = e;
2312
+ let enum6;
2313
+ switch (val6) {
2166
2314
  case 'access': {
2167
- enum5 = 0;
2315
+ enum6 = 0;
2168
2316
  break;
2169
2317
  }
2170
2318
  case 'would-block': {
2171
- enum5 = 1;
2319
+ enum6 = 1;
2172
2320
  break;
2173
2321
  }
2174
2322
  case 'already': {
2175
- enum5 = 2;
2323
+ enum6 = 2;
2176
2324
  break;
2177
2325
  }
2178
2326
  case 'bad-descriptor': {
2179
- enum5 = 3;
2327
+ enum6 = 3;
2180
2328
  break;
2181
2329
  }
2182
2330
  case 'busy': {
2183
- enum5 = 4;
2331
+ enum6 = 4;
2184
2332
  break;
2185
2333
  }
2186
2334
  case 'deadlock': {
2187
- enum5 = 5;
2335
+ enum6 = 5;
2188
2336
  break;
2189
2337
  }
2190
2338
  case 'quota': {
2191
- enum5 = 6;
2339
+ enum6 = 6;
2192
2340
  break;
2193
2341
  }
2194
2342
  case 'exist': {
2195
- enum5 = 7;
2343
+ enum6 = 7;
2196
2344
  break;
2197
2345
  }
2198
2346
  case 'file-too-large': {
2199
- enum5 = 8;
2347
+ enum6 = 8;
2200
2348
  break;
2201
2349
  }
2202
2350
  case 'illegal-byte-sequence': {
2203
- enum5 = 9;
2351
+ enum6 = 9;
2204
2352
  break;
2205
2353
  }
2206
2354
  case 'in-progress': {
2207
- enum5 = 10;
2355
+ enum6 = 10;
2208
2356
  break;
2209
2357
  }
2210
2358
  case 'interrupted': {
2211
- enum5 = 11;
2359
+ enum6 = 11;
2212
2360
  break;
2213
2361
  }
2214
2362
  case 'invalid': {
2215
- enum5 = 12;
2363
+ enum6 = 12;
2216
2364
  break;
2217
2365
  }
2218
2366
  case 'io': {
2219
- enum5 = 13;
2367
+ enum6 = 13;
2220
2368
  break;
2221
2369
  }
2222
2370
  case 'is-directory': {
2223
- enum5 = 14;
2371
+ enum6 = 14;
2224
2372
  break;
2225
2373
  }
2226
2374
  case 'loop': {
2227
- enum5 = 15;
2375
+ enum6 = 15;
2228
2376
  break;
2229
2377
  }
2230
2378
  case 'too-many-links': {
2231
- enum5 = 16;
2379
+ enum6 = 16;
2232
2380
  break;
2233
2381
  }
2234
2382
  case 'message-size': {
2235
- enum5 = 17;
2383
+ enum6 = 17;
2236
2384
  break;
2237
2385
  }
2238
2386
  case 'name-too-long': {
2239
- enum5 = 18;
2387
+ enum6 = 18;
2240
2388
  break;
2241
2389
  }
2242
2390
  case 'no-device': {
2243
- enum5 = 19;
2391
+ enum6 = 19;
2244
2392
  break;
2245
2393
  }
2246
2394
  case 'no-entry': {
2247
- enum5 = 20;
2395
+ enum6 = 20;
2248
2396
  break;
2249
2397
  }
2250
2398
  case 'no-lock': {
2251
- enum5 = 21;
2399
+ enum6 = 21;
2252
2400
  break;
2253
2401
  }
2254
2402
  case 'insufficient-memory': {
2255
- enum5 = 22;
2403
+ enum6 = 22;
2256
2404
  break;
2257
2405
  }
2258
2406
  case 'insufficient-space': {
2259
- enum5 = 23;
2407
+ enum6 = 23;
2260
2408
  break;
2261
2409
  }
2262
2410
  case 'not-directory': {
2263
- enum5 = 24;
2411
+ enum6 = 24;
2264
2412
  break;
2265
2413
  }
2266
2414
  case 'not-empty': {
2267
- enum5 = 25;
2415
+ enum6 = 25;
2268
2416
  break;
2269
2417
  }
2270
2418
  case 'not-recoverable': {
2271
- enum5 = 26;
2419
+ enum6 = 26;
2272
2420
  break;
2273
2421
  }
2274
2422
  case 'unsupported': {
2275
- enum5 = 27;
2423
+ enum6 = 27;
2276
2424
  break;
2277
2425
  }
2278
2426
  case 'no-tty': {
2279
- enum5 = 28;
2427
+ enum6 = 28;
2280
2428
  break;
2281
2429
  }
2282
2430
  case 'no-such-device': {
2283
- enum5 = 29;
2431
+ enum6 = 29;
2284
2432
  break;
2285
2433
  }
2286
2434
  case 'overflow': {
2287
- enum5 = 30;
2435
+ enum6 = 30;
2288
2436
  break;
2289
2437
  }
2290
2438
  case 'not-permitted': {
2291
- enum5 = 31;
2439
+ enum6 = 31;
2292
2440
  break;
2293
2441
  }
2294
2442
  case 'pipe': {
2295
- enum5 = 32;
2443
+ enum6 = 32;
2296
2444
  break;
2297
2445
  }
2298
2446
  case 'read-only': {
2299
- enum5 = 33;
2447
+ enum6 = 33;
2300
2448
  break;
2301
2449
  }
2302
2450
  case 'invalid-seek': {
2303
- enum5 = 34;
2451
+ enum6 = 34;
2304
2452
  break;
2305
2453
  }
2306
2454
  case 'text-file-busy': {
2307
- enum5 = 35;
2455
+ enum6 = 35;
2308
2456
  break;
2309
2457
  }
2310
2458
  case 'cross-device': {
2311
- enum5 = 36;
2459
+ enum6 = 36;
2312
2460
  break;
2313
2461
  }
2314
2462
  default: {
@@ -2316,10 +2464,10 @@ function trampoline21(arg0, arg1, arg2, arg3, arg4) {
2316
2464
  console.error(e);
2317
2465
  }
2318
2466
 
2319
- throw new TypeError(`"${val5}" is not one of the cases of error-code`);
2467
+ throw new TypeError(`"${val6}" is not one of the cases of error-code`);
2320
2468
  }
2321
2469
  }
2322
- dataView(memory0).setInt8(arg4 + 8, enum5, true);
2470
+ dataView(memory0).setInt8(arg4 + 8, enum6, true);
2323
2471
  break;
2324
2472
  }
2325
2473
  default: {
@@ -2330,228 +2478,235 @@ function trampoline21(arg0, arg1, arg2, arg3, arg4) {
2330
2478
 
2331
2479
  function trampoline22(arg0, arg1) {
2332
2480
  var handle1 = arg0;
2333
- var rsc0 = handleTable6.get(handle1).rep;
2481
+ var rep2 = handleTable6[(handle1 << 1) + 1] & ~T_FLAG;
2482
+ var rsc0 = captureTable6.get(rep2);
2483
+ if (!rsc0) {
2484
+ rsc0 = Object.create(DirectoryEntryStream.prototype);
2485
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2486
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2487
+ }
2334
2488
  let ret;
2335
2489
  try {
2336
- ret = { tag: 'ok', val: DirectoryEntryStream.prototype.readDirectoryEntry.call(rsc0) };
2490
+ ret = { tag: 'ok', val: rsc0.readDirectoryEntry()};
2337
2491
  } catch (e) {
2338
2492
  ret = { tag: 'err', val: getErrorPayload(e) };
2339
2493
  }
2340
- var variant7 = ret;
2341
- switch (variant7.tag) {
2494
+ rsc0[symbolRscHandle] = null;
2495
+ var variant8 = ret;
2496
+ switch (variant8.tag) {
2342
2497
  case 'ok': {
2343
- const e = variant7.val;
2498
+ const e = variant8.val;
2344
2499
  dataView(memory0).setInt8(arg1 + 0, 0, true);
2345
- var variant5 = e;
2346
- if (variant5 === null || variant5=== undefined) {
2500
+ var variant6 = e;
2501
+ if (variant6 === null || variant6=== undefined) {
2347
2502
  dataView(memory0).setInt8(arg1 + 4, 0, true);
2348
2503
  } else {
2349
- const e = variant5;
2504
+ const e = variant6;
2350
2505
  dataView(memory0).setInt8(arg1 + 4, 1, true);
2351
- var {type: v2_0, name: v2_1 } = e;
2352
- var val3 = v2_0;
2353
- let enum3;
2354
- switch (val3) {
2506
+ var {type: v3_0, name: v3_1 } = e;
2507
+ var val4 = v3_0;
2508
+ let enum4;
2509
+ switch (val4) {
2355
2510
  case 'unknown': {
2356
- enum3 = 0;
2511
+ enum4 = 0;
2357
2512
  break;
2358
2513
  }
2359
2514
  case 'block-device': {
2360
- enum3 = 1;
2515
+ enum4 = 1;
2361
2516
  break;
2362
2517
  }
2363
2518
  case 'character-device': {
2364
- enum3 = 2;
2519
+ enum4 = 2;
2365
2520
  break;
2366
2521
  }
2367
2522
  case 'directory': {
2368
- enum3 = 3;
2523
+ enum4 = 3;
2369
2524
  break;
2370
2525
  }
2371
2526
  case 'fifo': {
2372
- enum3 = 4;
2527
+ enum4 = 4;
2373
2528
  break;
2374
2529
  }
2375
2530
  case 'symbolic-link': {
2376
- enum3 = 5;
2531
+ enum4 = 5;
2377
2532
  break;
2378
2533
  }
2379
2534
  case 'regular-file': {
2380
- enum3 = 6;
2535
+ enum4 = 6;
2381
2536
  break;
2382
2537
  }
2383
2538
  case 'socket': {
2384
- enum3 = 7;
2539
+ enum4 = 7;
2385
2540
  break;
2386
2541
  }
2387
2542
  default: {
2388
- if ((v2_0) instanceof Error) {
2389
- console.error(v2_0);
2543
+ if ((v3_0) instanceof Error) {
2544
+ console.error(v3_0);
2390
2545
  }
2391
2546
 
2392
- throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`);
2547
+ throw new TypeError(`"${val4}" is not one of the cases of descriptor-type`);
2393
2548
  }
2394
2549
  }
2395
- dataView(memory0).setInt8(arg1 + 8, enum3, true);
2396
- var ptr4 = utf8Encode(v2_1, realloc0, memory0);
2397
- var len4 = utf8EncodedLen;
2398
- dataView(memory0).setInt32(arg1 + 16, len4, true);
2399
- dataView(memory0).setInt32(arg1 + 12, ptr4, true);
2550
+ dataView(memory0).setInt8(arg1 + 8, enum4, true);
2551
+ var ptr5 = utf8Encode(v3_1, realloc0, memory0);
2552
+ var len5 = utf8EncodedLen;
2553
+ dataView(memory0).setInt32(arg1 + 16, len5, true);
2554
+ dataView(memory0).setInt32(arg1 + 12, ptr5, true);
2400
2555
  }
2401
2556
  break;
2402
2557
  }
2403
2558
  case 'err': {
2404
- const e = variant7.val;
2559
+ const e = variant8.val;
2405
2560
  dataView(memory0).setInt8(arg1 + 0, 1, true);
2406
- var val6 = e;
2407
- let enum6;
2408
- switch (val6) {
2561
+ var val7 = e;
2562
+ let enum7;
2563
+ switch (val7) {
2409
2564
  case 'access': {
2410
- enum6 = 0;
2565
+ enum7 = 0;
2411
2566
  break;
2412
2567
  }
2413
2568
  case 'would-block': {
2414
- enum6 = 1;
2569
+ enum7 = 1;
2415
2570
  break;
2416
2571
  }
2417
2572
  case 'already': {
2418
- enum6 = 2;
2573
+ enum7 = 2;
2419
2574
  break;
2420
2575
  }
2421
2576
  case 'bad-descriptor': {
2422
- enum6 = 3;
2577
+ enum7 = 3;
2423
2578
  break;
2424
2579
  }
2425
2580
  case 'busy': {
2426
- enum6 = 4;
2581
+ enum7 = 4;
2427
2582
  break;
2428
2583
  }
2429
2584
  case 'deadlock': {
2430
- enum6 = 5;
2585
+ enum7 = 5;
2431
2586
  break;
2432
2587
  }
2433
2588
  case 'quota': {
2434
- enum6 = 6;
2589
+ enum7 = 6;
2435
2590
  break;
2436
2591
  }
2437
2592
  case 'exist': {
2438
- enum6 = 7;
2593
+ enum7 = 7;
2439
2594
  break;
2440
2595
  }
2441
2596
  case 'file-too-large': {
2442
- enum6 = 8;
2597
+ enum7 = 8;
2443
2598
  break;
2444
2599
  }
2445
2600
  case 'illegal-byte-sequence': {
2446
- enum6 = 9;
2601
+ enum7 = 9;
2447
2602
  break;
2448
2603
  }
2449
2604
  case 'in-progress': {
2450
- enum6 = 10;
2605
+ enum7 = 10;
2451
2606
  break;
2452
2607
  }
2453
2608
  case 'interrupted': {
2454
- enum6 = 11;
2609
+ enum7 = 11;
2455
2610
  break;
2456
2611
  }
2457
2612
  case 'invalid': {
2458
- enum6 = 12;
2613
+ enum7 = 12;
2459
2614
  break;
2460
2615
  }
2461
2616
  case 'io': {
2462
- enum6 = 13;
2617
+ enum7 = 13;
2463
2618
  break;
2464
2619
  }
2465
2620
  case 'is-directory': {
2466
- enum6 = 14;
2621
+ enum7 = 14;
2467
2622
  break;
2468
2623
  }
2469
2624
  case 'loop': {
2470
- enum6 = 15;
2625
+ enum7 = 15;
2471
2626
  break;
2472
2627
  }
2473
2628
  case 'too-many-links': {
2474
- enum6 = 16;
2629
+ enum7 = 16;
2475
2630
  break;
2476
2631
  }
2477
2632
  case 'message-size': {
2478
- enum6 = 17;
2633
+ enum7 = 17;
2479
2634
  break;
2480
2635
  }
2481
2636
  case 'name-too-long': {
2482
- enum6 = 18;
2637
+ enum7 = 18;
2483
2638
  break;
2484
2639
  }
2485
2640
  case 'no-device': {
2486
- enum6 = 19;
2641
+ enum7 = 19;
2487
2642
  break;
2488
2643
  }
2489
2644
  case 'no-entry': {
2490
- enum6 = 20;
2645
+ enum7 = 20;
2491
2646
  break;
2492
2647
  }
2493
2648
  case 'no-lock': {
2494
- enum6 = 21;
2649
+ enum7 = 21;
2495
2650
  break;
2496
2651
  }
2497
2652
  case 'insufficient-memory': {
2498
- enum6 = 22;
2653
+ enum7 = 22;
2499
2654
  break;
2500
2655
  }
2501
2656
  case 'insufficient-space': {
2502
- enum6 = 23;
2657
+ enum7 = 23;
2503
2658
  break;
2504
2659
  }
2505
2660
  case 'not-directory': {
2506
- enum6 = 24;
2661
+ enum7 = 24;
2507
2662
  break;
2508
2663
  }
2509
2664
  case 'not-empty': {
2510
- enum6 = 25;
2665
+ enum7 = 25;
2511
2666
  break;
2512
2667
  }
2513
2668
  case 'not-recoverable': {
2514
- enum6 = 26;
2669
+ enum7 = 26;
2515
2670
  break;
2516
2671
  }
2517
2672
  case 'unsupported': {
2518
- enum6 = 27;
2673
+ enum7 = 27;
2519
2674
  break;
2520
2675
  }
2521
2676
  case 'no-tty': {
2522
- enum6 = 28;
2677
+ enum7 = 28;
2523
2678
  break;
2524
2679
  }
2525
2680
  case 'no-such-device': {
2526
- enum6 = 29;
2681
+ enum7 = 29;
2527
2682
  break;
2528
2683
  }
2529
2684
  case 'overflow': {
2530
- enum6 = 30;
2685
+ enum7 = 30;
2531
2686
  break;
2532
2687
  }
2533
2688
  case 'not-permitted': {
2534
- enum6 = 31;
2689
+ enum7 = 31;
2535
2690
  break;
2536
2691
  }
2537
2692
  case 'pipe': {
2538
- enum6 = 32;
2693
+ enum7 = 32;
2539
2694
  break;
2540
2695
  }
2541
2696
  case 'read-only': {
2542
- enum6 = 33;
2697
+ enum7 = 33;
2543
2698
  break;
2544
2699
  }
2545
2700
  case 'invalid-seek': {
2546
- enum6 = 34;
2701
+ enum7 = 34;
2547
2702
  break;
2548
2703
  }
2549
2704
  case 'text-file-busy': {
2550
- enum6 = 35;
2705
+ enum7 = 35;
2551
2706
  break;
2552
2707
  }
2553
2708
  case 'cross-device': {
2554
- enum6 = 36;
2709
+ enum7 = 36;
2555
2710
  break;
2556
2711
  }
2557
2712
  default: {
@@ -2559,10 +2714,10 @@ function trampoline22(arg0, arg1) {
2559
2714
  console.error(e);
2560
2715
  }
2561
2716
 
2562
- throw new TypeError(`"${val6}" is not one of the cases of error-code`);
2717
+ throw new TypeError(`"${val7}" is not one of the cases of error-code`);
2563
2718
  }
2564
2719
  }
2565
- dataView(memory0).setInt8(arg1 + 4, enum6, true);
2720
+ dataView(memory0).setInt8(arg1 + 4, enum7, true);
2566
2721
  break;
2567
2722
  }
2568
2723
  default: {
@@ -2573,163 +2728,170 @@ function trampoline22(arg0, arg1) {
2573
2728
 
2574
2729
  function trampoline23(arg0, arg1) {
2575
2730
  var handle1 = arg0;
2576
- var rsc0 = handleTable0.get(handle1).rep;
2731
+ var rep2 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
2732
+ var rsc0 = captureTable0.get(rep2);
2733
+ if (!rsc0) {
2734
+ rsc0 = Object.create(Error$1.prototype);
2735
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2736
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2737
+ }
2577
2738
  const ret = filesystemErrorCode(rsc0);
2578
- var variant3 = ret;
2579
- if (variant3 === null || variant3=== undefined) {
2739
+ rsc0[symbolRscHandle] = null;
2740
+ var variant4 = ret;
2741
+ if (variant4 === null || variant4=== undefined) {
2580
2742
  dataView(memory0).setInt8(arg1 + 0, 0, true);
2581
2743
  } else {
2582
- const e = variant3;
2744
+ const e = variant4;
2583
2745
  dataView(memory0).setInt8(arg1 + 0, 1, true);
2584
- var val2 = e;
2585
- let enum2;
2586
- switch (val2) {
2746
+ var val3 = e;
2747
+ let enum3;
2748
+ switch (val3) {
2587
2749
  case 'access': {
2588
- enum2 = 0;
2750
+ enum3 = 0;
2589
2751
  break;
2590
2752
  }
2591
2753
  case 'would-block': {
2592
- enum2 = 1;
2754
+ enum3 = 1;
2593
2755
  break;
2594
2756
  }
2595
2757
  case 'already': {
2596
- enum2 = 2;
2758
+ enum3 = 2;
2597
2759
  break;
2598
2760
  }
2599
2761
  case 'bad-descriptor': {
2600
- enum2 = 3;
2762
+ enum3 = 3;
2601
2763
  break;
2602
2764
  }
2603
2765
  case 'busy': {
2604
- enum2 = 4;
2766
+ enum3 = 4;
2605
2767
  break;
2606
2768
  }
2607
2769
  case 'deadlock': {
2608
- enum2 = 5;
2770
+ enum3 = 5;
2609
2771
  break;
2610
2772
  }
2611
2773
  case 'quota': {
2612
- enum2 = 6;
2774
+ enum3 = 6;
2613
2775
  break;
2614
2776
  }
2615
2777
  case 'exist': {
2616
- enum2 = 7;
2778
+ enum3 = 7;
2617
2779
  break;
2618
2780
  }
2619
2781
  case 'file-too-large': {
2620
- enum2 = 8;
2782
+ enum3 = 8;
2621
2783
  break;
2622
2784
  }
2623
2785
  case 'illegal-byte-sequence': {
2624
- enum2 = 9;
2786
+ enum3 = 9;
2625
2787
  break;
2626
2788
  }
2627
2789
  case 'in-progress': {
2628
- enum2 = 10;
2790
+ enum3 = 10;
2629
2791
  break;
2630
2792
  }
2631
2793
  case 'interrupted': {
2632
- enum2 = 11;
2794
+ enum3 = 11;
2633
2795
  break;
2634
2796
  }
2635
2797
  case 'invalid': {
2636
- enum2 = 12;
2798
+ enum3 = 12;
2637
2799
  break;
2638
2800
  }
2639
2801
  case 'io': {
2640
- enum2 = 13;
2802
+ enum3 = 13;
2641
2803
  break;
2642
2804
  }
2643
2805
  case 'is-directory': {
2644
- enum2 = 14;
2806
+ enum3 = 14;
2645
2807
  break;
2646
2808
  }
2647
2809
  case 'loop': {
2648
- enum2 = 15;
2810
+ enum3 = 15;
2649
2811
  break;
2650
2812
  }
2651
2813
  case 'too-many-links': {
2652
- enum2 = 16;
2814
+ enum3 = 16;
2653
2815
  break;
2654
2816
  }
2655
2817
  case 'message-size': {
2656
- enum2 = 17;
2818
+ enum3 = 17;
2657
2819
  break;
2658
2820
  }
2659
2821
  case 'name-too-long': {
2660
- enum2 = 18;
2822
+ enum3 = 18;
2661
2823
  break;
2662
2824
  }
2663
2825
  case 'no-device': {
2664
- enum2 = 19;
2826
+ enum3 = 19;
2665
2827
  break;
2666
2828
  }
2667
2829
  case 'no-entry': {
2668
- enum2 = 20;
2830
+ enum3 = 20;
2669
2831
  break;
2670
2832
  }
2671
2833
  case 'no-lock': {
2672
- enum2 = 21;
2834
+ enum3 = 21;
2673
2835
  break;
2674
2836
  }
2675
2837
  case 'insufficient-memory': {
2676
- enum2 = 22;
2838
+ enum3 = 22;
2677
2839
  break;
2678
2840
  }
2679
2841
  case 'insufficient-space': {
2680
- enum2 = 23;
2842
+ enum3 = 23;
2681
2843
  break;
2682
2844
  }
2683
2845
  case 'not-directory': {
2684
- enum2 = 24;
2846
+ enum3 = 24;
2685
2847
  break;
2686
2848
  }
2687
2849
  case 'not-empty': {
2688
- enum2 = 25;
2850
+ enum3 = 25;
2689
2851
  break;
2690
2852
  }
2691
2853
  case 'not-recoverable': {
2692
- enum2 = 26;
2854
+ enum3 = 26;
2693
2855
  break;
2694
2856
  }
2695
2857
  case 'unsupported': {
2696
- enum2 = 27;
2858
+ enum3 = 27;
2697
2859
  break;
2698
2860
  }
2699
2861
  case 'no-tty': {
2700
- enum2 = 28;
2862
+ enum3 = 28;
2701
2863
  break;
2702
2864
  }
2703
2865
  case 'no-such-device': {
2704
- enum2 = 29;
2866
+ enum3 = 29;
2705
2867
  break;
2706
2868
  }
2707
2869
  case 'overflow': {
2708
- enum2 = 30;
2870
+ enum3 = 30;
2709
2871
  break;
2710
2872
  }
2711
2873
  case 'not-permitted': {
2712
- enum2 = 31;
2874
+ enum3 = 31;
2713
2875
  break;
2714
2876
  }
2715
2877
  case 'pipe': {
2716
- enum2 = 32;
2878
+ enum3 = 32;
2717
2879
  break;
2718
2880
  }
2719
2881
  case 'read-only': {
2720
- enum2 = 33;
2882
+ enum3 = 33;
2721
2883
  break;
2722
2884
  }
2723
2885
  case 'invalid-seek': {
2724
- enum2 = 34;
2886
+ enum3 = 34;
2725
2887
  break;
2726
2888
  }
2727
2889
  case 'text-file-busy': {
2728
- enum2 = 35;
2890
+ enum3 = 35;
2729
2891
  break;
2730
2892
  }
2731
2893
  case 'cross-device': {
2732
- enum2 = 36;
2894
+ enum3 = 36;
2733
2895
  break;
2734
2896
  }
2735
2897
  default: {
@@ -2737,50 +2899,62 @@ function trampoline23(arg0, arg1) {
2737
2899
  console.error(e);
2738
2900
  }
2739
2901
 
2740
- throw new TypeError(`"${val2}" is not one of the cases of error-code`);
2902
+ throw new TypeError(`"${val3}" is not one of the cases of error-code`);
2741
2903
  }
2742
2904
  }
2743
- dataView(memory0).setInt8(arg1 + 1, enum2, true);
2905
+ dataView(memory0).setInt8(arg1 + 1, enum3, true);
2744
2906
  }
2745
2907
  }
2746
2908
 
2747
2909
  function trampoline24(arg0, arg1, arg2) {
2748
2910
  var handle1 = arg0;
2749
- var rsc0 = handleTable1.get(handle1).rep;
2911
+ var rep2 = handleTable1[(handle1 << 1) + 1] & ~T_FLAG;
2912
+ var rsc0 = captureTable1.get(rep2);
2913
+ if (!rsc0) {
2914
+ rsc0 = Object.create(InputStream.prototype);
2915
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2916
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2917
+ }
2750
2918
  let ret;
2751
2919
  try {
2752
- ret = { tag: 'ok', val: InputStream.prototype.read.call(rsc0, BigInt.asUintN(64, arg1)) };
2920
+ ret = { tag: 'ok', val: rsc0.read(BigInt.asUintN(64, arg1))};
2753
2921
  } catch (e) {
2754
2922
  ret = { tag: 'err', val: getErrorPayload(e) };
2755
2923
  }
2756
- var variant5 = ret;
2757
- switch (variant5.tag) {
2924
+ rsc0[symbolRscHandle] = null;
2925
+ var variant6 = ret;
2926
+ switch (variant6.tag) {
2758
2927
  case 'ok': {
2759
- const e = variant5.val;
2928
+ const e = variant6.val;
2760
2929
  dataView(memory0).setInt8(arg2 + 0, 0, true);
2761
- var val2 = e;
2762
- var len2 = val2.byteLength;
2763
- var ptr2 = realloc0(0, 0, 1, len2 * 1);
2764
- var src2 = new Uint8Array(val2.buffer || val2, val2.byteOffset, len2 * 1);
2765
- (new Uint8Array(memory0.buffer, ptr2, len2 * 1)).set(src2);
2766
- dataView(memory0).setInt32(arg2 + 8, len2, true);
2767
- dataView(memory0).setInt32(arg2 + 4, ptr2, true);
2930
+ var val3 = e;
2931
+ var len3 = val3.byteLength;
2932
+ var ptr3 = realloc0(0, 0, 1, len3 * 1);
2933
+ var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1);
2934
+ (new Uint8Array(memory0.buffer, ptr3, len3 * 1)).set(src3);
2935
+ dataView(memory0).setInt32(arg2 + 8, len3, true);
2936
+ dataView(memory0).setInt32(arg2 + 4, ptr3, true);
2768
2937
  break;
2769
2938
  }
2770
2939
  case 'err': {
2771
- const e = variant5.val;
2940
+ const e = variant6.val;
2772
2941
  dataView(memory0).setInt8(arg2 + 0, 1, true);
2773
- var variant4 = e;
2774
- switch (variant4.tag) {
2942
+ var variant5 = e;
2943
+ switch (variant5.tag) {
2775
2944
  case 'last-operation-failed': {
2776
- const e = variant4.val;
2945
+ const e = variant5.val;
2777
2946
  dataView(memory0).setInt8(arg2 + 4, 0, true);
2778
2947
  if (!(e instanceof Error$1)) {
2779
2948
  throw new Error('Resource error: Not a valid "Error" resource.');
2780
2949
  }
2781
- var handle3 = handleCnt0++;
2782
- handleTable0.set(handle3, { rep: e, own: true });
2783
- dataView(memory0).setInt32(arg2 + 8, handle3, true);
2950
+ var handle4 = e[symbolRscHandle];
2951
+
2952
+ if (!handle4) {
2953
+ const rep = e[symbolRscRep] || ++captureCnt0;
2954
+ captureTable0.set(rep, e);
2955
+ handle4 = rscTableCreateOwn(handleTable0, rep);
2956
+ }
2957
+ dataView(memory0).setInt32(arg2 + 8, handle4, true);
2784
2958
  break;
2785
2959
  }
2786
2960
  case 'closed': {
@@ -2788,7 +2962,7 @@ function trampoline24(arg0, arg1, arg2) {
2788
2962
  break;
2789
2963
  }
2790
2964
  default: {
2791
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2965
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2792
2966
  }
2793
2967
  }
2794
2968
  break;
@@ -2801,41 +2975,53 @@ function trampoline24(arg0, arg1, arg2) {
2801
2975
 
2802
2976
  function trampoline25(arg0, arg1, arg2) {
2803
2977
  var handle1 = arg0;
2804
- var rsc0 = handleTable1.get(handle1).rep;
2978
+ var rep2 = handleTable1[(handle1 << 1) + 1] & ~T_FLAG;
2979
+ var rsc0 = captureTable1.get(rep2);
2980
+ if (!rsc0) {
2981
+ rsc0 = Object.create(InputStream.prototype);
2982
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2983
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2984
+ }
2805
2985
  let ret;
2806
2986
  try {
2807
- ret = { tag: 'ok', val: InputStream.prototype.blockingRead.call(rsc0, BigInt.asUintN(64, arg1)) };
2987
+ ret = { tag: 'ok', val: rsc0.blockingRead(BigInt.asUintN(64, arg1))};
2808
2988
  } catch (e) {
2809
2989
  ret = { tag: 'err', val: getErrorPayload(e) };
2810
2990
  }
2811
- var variant5 = ret;
2812
- switch (variant5.tag) {
2991
+ rsc0[symbolRscHandle] = null;
2992
+ var variant6 = ret;
2993
+ switch (variant6.tag) {
2813
2994
  case 'ok': {
2814
- const e = variant5.val;
2995
+ const e = variant6.val;
2815
2996
  dataView(memory0).setInt8(arg2 + 0, 0, true);
2816
- var val2 = e;
2817
- var len2 = val2.byteLength;
2818
- var ptr2 = realloc0(0, 0, 1, len2 * 1);
2819
- var src2 = new Uint8Array(val2.buffer || val2, val2.byteOffset, len2 * 1);
2820
- (new Uint8Array(memory0.buffer, ptr2, len2 * 1)).set(src2);
2821
- dataView(memory0).setInt32(arg2 + 8, len2, true);
2822
- dataView(memory0).setInt32(arg2 + 4, ptr2, true);
2997
+ var val3 = e;
2998
+ var len3 = val3.byteLength;
2999
+ var ptr3 = realloc0(0, 0, 1, len3 * 1);
3000
+ var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1);
3001
+ (new Uint8Array(memory0.buffer, ptr3, len3 * 1)).set(src3);
3002
+ dataView(memory0).setInt32(arg2 + 8, len3, true);
3003
+ dataView(memory0).setInt32(arg2 + 4, ptr3, true);
2823
3004
  break;
2824
3005
  }
2825
3006
  case 'err': {
2826
- const e = variant5.val;
3007
+ const e = variant6.val;
2827
3008
  dataView(memory0).setInt8(arg2 + 0, 1, true);
2828
- var variant4 = e;
2829
- switch (variant4.tag) {
3009
+ var variant5 = e;
3010
+ switch (variant5.tag) {
2830
3011
  case 'last-operation-failed': {
2831
- const e = variant4.val;
3012
+ const e = variant5.val;
2832
3013
  dataView(memory0).setInt8(arg2 + 4, 0, true);
2833
3014
  if (!(e instanceof Error$1)) {
2834
3015
  throw new Error('Resource error: Not a valid "Error" resource.');
2835
3016
  }
2836
- var handle3 = handleCnt0++;
2837
- handleTable0.set(handle3, { rep: e, own: true });
2838
- dataView(memory0).setInt32(arg2 + 8, handle3, true);
3017
+ var handle4 = e[symbolRscHandle];
3018
+
3019
+ if (!handle4) {
3020
+ const rep = e[symbolRscRep] || ++captureCnt0;
3021
+ captureTable0.set(rep, e);
3022
+ handle4 = rscTableCreateOwn(handleTable0, rep);
3023
+ }
3024
+ dataView(memory0).setInt32(arg2 + 8, handle4, true);
2839
3025
  break;
2840
3026
  }
2841
3027
  case 'closed': {
@@ -2843,7 +3029,7 @@ function trampoline25(arg0, arg1, arg2) {
2843
3029
  break;
2844
3030
  }
2845
3031
  default: {
2846
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
3032
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2847
3033
  }
2848
3034
  }
2849
3035
  break;
@@ -2856,35 +3042,47 @@ function trampoline25(arg0, arg1, arg2) {
2856
3042
 
2857
3043
  function trampoline26(arg0, arg1) {
2858
3044
  var handle1 = arg0;
2859
- var rsc0 = handleTable2.get(handle1).rep;
3045
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
3046
+ var rsc0 = captureTable2.get(rep2);
3047
+ if (!rsc0) {
3048
+ rsc0 = Object.create(OutputStream.prototype);
3049
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
3050
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
3051
+ }
2860
3052
  let ret;
2861
3053
  try {
2862
- ret = { tag: 'ok', val: OutputStream.prototype.checkWrite.call(rsc0) };
3054
+ ret = { tag: 'ok', val: rsc0.checkWrite()};
2863
3055
  } catch (e) {
2864
3056
  ret = { tag: 'err', val: getErrorPayload(e) };
2865
3057
  }
2866
- var variant4 = ret;
2867
- switch (variant4.tag) {
3058
+ rsc0[symbolRscHandle] = null;
3059
+ var variant5 = ret;
3060
+ switch (variant5.tag) {
2868
3061
  case 'ok': {
2869
- const e = variant4.val;
3062
+ const e = variant5.val;
2870
3063
  dataView(memory0).setInt8(arg1 + 0, 0, true);
2871
3064
  dataView(memory0).setBigInt64(arg1 + 8, toUint64(e), true);
2872
3065
  break;
2873
3066
  }
2874
3067
  case 'err': {
2875
- const e = variant4.val;
3068
+ const e = variant5.val;
2876
3069
  dataView(memory0).setInt8(arg1 + 0, 1, true);
2877
- var variant3 = e;
2878
- switch (variant3.tag) {
3070
+ var variant4 = e;
3071
+ switch (variant4.tag) {
2879
3072
  case 'last-operation-failed': {
2880
- const e = variant3.val;
3073
+ const e = variant4.val;
2881
3074
  dataView(memory0).setInt8(arg1 + 8, 0, true);
2882
3075
  if (!(e instanceof Error$1)) {
2883
3076
  throw new Error('Resource error: Not a valid "Error" resource.');
2884
3077
  }
2885
- var handle2 = handleCnt0++;
2886
- handleTable0.set(handle2, { rep: e, own: true });
2887
- dataView(memory0).setInt32(arg1 + 12, handle2, true);
3078
+ var handle3 = e[symbolRscHandle];
3079
+
3080
+ if (!handle3) {
3081
+ const rep = e[symbolRscRep] || ++captureCnt0;
3082
+ captureTable0.set(rep, e);
3083
+ handle3 = rscTableCreateOwn(handleTable0, rep);
3084
+ }
3085
+ dataView(memory0).setInt32(arg1 + 12, handle3, true);
2888
3086
  break;
2889
3087
  }
2890
3088
  case 'closed': {
@@ -2892,7 +3090,7 @@ function trampoline26(arg0, arg1) {
2892
3090
  break;
2893
3091
  }
2894
3092
  default: {
2895
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`StreamError\``);
3093
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2896
3094
  }
2897
3095
  }
2898
3096
  break;
@@ -2905,37 +3103,49 @@ function trampoline26(arg0, arg1) {
2905
3103
 
2906
3104
  function trampoline27(arg0, arg1, arg2, arg3) {
2907
3105
  var handle1 = arg0;
2908
- var rsc0 = handleTable2.get(handle1).rep;
2909
- var ptr2 = arg1;
2910
- var len2 = arg2;
2911
- var result2 = new Uint8Array(memory0.buffer.slice(ptr2, ptr2 + len2 * 1));
3106
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
3107
+ var rsc0 = captureTable2.get(rep2);
3108
+ if (!rsc0) {
3109
+ rsc0 = Object.create(OutputStream.prototype);
3110
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
3111
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
3112
+ }
3113
+ var ptr3 = arg1;
3114
+ var len3 = arg2;
3115
+ var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1));
2912
3116
  let ret;
2913
3117
  try {
2914
- ret = { tag: 'ok', val: OutputStream.prototype.write.call(rsc0, result2) };
3118
+ ret = { tag: 'ok', val: rsc0.write(result3)};
2915
3119
  } catch (e) {
2916
3120
  ret = { tag: 'err', val: getErrorPayload(e) };
2917
3121
  }
2918
- var variant5 = ret;
2919
- switch (variant5.tag) {
3122
+ rsc0[symbolRscHandle] = null;
3123
+ var variant6 = ret;
3124
+ switch (variant6.tag) {
2920
3125
  case 'ok': {
2921
- const e = variant5.val;
3126
+ const e = variant6.val;
2922
3127
  dataView(memory0).setInt8(arg3 + 0, 0, true);
2923
3128
  break;
2924
3129
  }
2925
3130
  case 'err': {
2926
- const e = variant5.val;
3131
+ const e = variant6.val;
2927
3132
  dataView(memory0).setInt8(arg3 + 0, 1, true);
2928
- var variant4 = e;
2929
- switch (variant4.tag) {
3133
+ var variant5 = e;
3134
+ switch (variant5.tag) {
2930
3135
  case 'last-operation-failed': {
2931
- const e = variant4.val;
3136
+ const e = variant5.val;
2932
3137
  dataView(memory0).setInt8(arg3 + 4, 0, true);
2933
3138
  if (!(e instanceof Error$1)) {
2934
3139
  throw new Error('Resource error: Not a valid "Error" resource.');
2935
3140
  }
2936
- var handle3 = handleCnt0++;
2937
- handleTable0.set(handle3, { rep: e, own: true });
2938
- dataView(memory0).setInt32(arg3 + 8, handle3, true);
3141
+ var handle4 = e[symbolRscHandle];
3142
+
3143
+ if (!handle4) {
3144
+ const rep = e[symbolRscRep] || ++captureCnt0;
3145
+ captureTable0.set(rep, e);
3146
+ handle4 = rscTableCreateOwn(handleTable0, rep);
3147
+ }
3148
+ dataView(memory0).setInt32(arg3 + 8, handle4, true);
2939
3149
  break;
2940
3150
  }
2941
3151
  case 'closed': {
@@ -2943,7 +3153,7 @@ function trampoline27(arg0, arg1, arg2, arg3) {
2943
3153
  break;
2944
3154
  }
2945
3155
  default: {
2946
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
3156
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2947
3157
  }
2948
3158
  }
2949
3159
  break;
@@ -2956,37 +3166,49 @@ function trampoline27(arg0, arg1, arg2, arg3) {
2956
3166
 
2957
3167
  function trampoline28(arg0, arg1, arg2, arg3) {
2958
3168
  var handle1 = arg0;
2959
- var rsc0 = handleTable2.get(handle1).rep;
2960
- var ptr2 = arg1;
2961
- var len2 = arg2;
2962
- var result2 = new Uint8Array(memory0.buffer.slice(ptr2, ptr2 + len2 * 1));
3169
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
3170
+ var rsc0 = captureTable2.get(rep2);
3171
+ if (!rsc0) {
3172
+ rsc0 = Object.create(OutputStream.prototype);
3173
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
3174
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
3175
+ }
3176
+ var ptr3 = arg1;
3177
+ var len3 = arg2;
3178
+ var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1));
2963
3179
  let ret;
2964
3180
  try {
2965
- ret = { tag: 'ok', val: OutputStream.prototype.blockingWriteAndFlush.call(rsc0, result2) };
3181
+ ret = { tag: 'ok', val: rsc0.blockingWriteAndFlush(result3)};
2966
3182
  } catch (e) {
2967
3183
  ret = { tag: 'err', val: getErrorPayload(e) };
2968
3184
  }
2969
- var variant5 = ret;
2970
- switch (variant5.tag) {
3185
+ rsc0[symbolRscHandle] = null;
3186
+ var variant6 = ret;
3187
+ switch (variant6.tag) {
2971
3188
  case 'ok': {
2972
- const e = variant5.val;
3189
+ const e = variant6.val;
2973
3190
  dataView(memory0).setInt8(arg3 + 0, 0, true);
2974
3191
  break;
2975
3192
  }
2976
3193
  case 'err': {
2977
- const e = variant5.val;
3194
+ const e = variant6.val;
2978
3195
  dataView(memory0).setInt8(arg3 + 0, 1, true);
2979
- var variant4 = e;
2980
- switch (variant4.tag) {
3196
+ var variant5 = e;
3197
+ switch (variant5.tag) {
2981
3198
  case 'last-operation-failed': {
2982
- const e = variant4.val;
3199
+ const e = variant5.val;
2983
3200
  dataView(memory0).setInt8(arg3 + 4, 0, true);
2984
3201
  if (!(e instanceof Error$1)) {
2985
3202
  throw new Error('Resource error: Not a valid "Error" resource.');
2986
3203
  }
2987
- var handle3 = handleCnt0++;
2988
- handleTable0.set(handle3, { rep: e, own: true });
2989
- dataView(memory0).setInt32(arg3 + 8, handle3, true);
3204
+ var handle4 = e[symbolRscHandle];
3205
+
3206
+ if (!handle4) {
3207
+ const rep = e[symbolRscRep] || ++captureCnt0;
3208
+ captureTable0.set(rep, e);
3209
+ handle4 = rscTableCreateOwn(handleTable0, rep);
3210
+ }
3211
+ dataView(memory0).setInt32(arg3 + 8, handle4, true);
2990
3212
  break;
2991
3213
  }
2992
3214
  case 'closed': {
@@ -2994,7 +3216,7 @@ function trampoline28(arg0, arg1, arg2, arg3) {
2994
3216
  break;
2995
3217
  }
2996
3218
  default: {
2997
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
3219
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2998
3220
  }
2999
3221
  }
3000
3222
  break;
@@ -3007,34 +3229,46 @@ function trampoline28(arg0, arg1, arg2, arg3) {
3007
3229
 
3008
3230
  function trampoline29(arg0, arg1) {
3009
3231
  var handle1 = arg0;
3010
- var rsc0 = handleTable2.get(handle1).rep;
3232
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
3233
+ var rsc0 = captureTable2.get(rep2);
3234
+ if (!rsc0) {
3235
+ rsc0 = Object.create(OutputStream.prototype);
3236
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
3237
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
3238
+ }
3011
3239
  let ret;
3012
3240
  try {
3013
- ret = { tag: 'ok', val: OutputStream.prototype.blockingFlush.call(rsc0) };
3241
+ ret = { tag: 'ok', val: rsc0.blockingFlush()};
3014
3242
  } catch (e) {
3015
3243
  ret = { tag: 'err', val: getErrorPayload(e) };
3016
3244
  }
3017
- var variant4 = ret;
3018
- switch (variant4.tag) {
3245
+ rsc0[symbolRscHandle] = null;
3246
+ var variant5 = ret;
3247
+ switch (variant5.tag) {
3019
3248
  case 'ok': {
3020
- const e = variant4.val;
3249
+ const e = variant5.val;
3021
3250
  dataView(memory0).setInt8(arg1 + 0, 0, true);
3022
3251
  break;
3023
3252
  }
3024
3253
  case 'err': {
3025
- const e = variant4.val;
3254
+ const e = variant5.val;
3026
3255
  dataView(memory0).setInt8(arg1 + 0, 1, true);
3027
- var variant3 = e;
3028
- switch (variant3.tag) {
3256
+ var variant4 = e;
3257
+ switch (variant4.tag) {
3029
3258
  case 'last-operation-failed': {
3030
- const e = variant3.val;
3259
+ const e = variant4.val;
3031
3260
  dataView(memory0).setInt8(arg1 + 4, 0, true);
3032
3261
  if (!(e instanceof Error$1)) {
3033
3262
  throw new Error('Resource error: Not a valid "Error" resource.');
3034
3263
  }
3035
- var handle2 = handleCnt0++;
3036
- handleTable0.set(handle2, { rep: e, own: true });
3037
- dataView(memory0).setInt32(arg1 + 8, handle2, true);
3264
+ var handle3 = e[symbolRscHandle];
3265
+
3266
+ if (!handle3) {
3267
+ const rep = e[symbolRscRep] || ++captureCnt0;
3268
+ captureTable0.set(rep, e);
3269
+ handle3 = rscTableCreateOwn(handleTable0, rep);
3270
+ }
3271
+ dataView(memory0).setInt32(arg1 + 8, handle3, true);
3038
3272
  break;
3039
3273
  }
3040
3274
  case 'closed': {
@@ -3042,7 +3276,7 @@ function trampoline29(arg0, arg1) {
3042
3276
  break;
3043
3277
  }
3044
3278
  default: {
3045
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`StreamError\``);
3279
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
3046
3280
  }
3047
3281
  }
3048
3282
  break;
@@ -3096,8 +3330,13 @@ function trampoline32(arg0) {
3096
3330
  if (!(e instanceof TerminalInput)) {
3097
3331
  throw new Error('Resource error: Not a valid "TerminalInput" resource.');
3098
3332
  }
3099
- var handle0 = handleCnt3++;
3100
- handleTable3.set(handle0, { rep: e, own: true });
3333
+ var handle0 = e[symbolRscHandle];
3334
+
3335
+ if (!handle0) {
3336
+ const rep = e[symbolRscRep] || ++captureCnt3;
3337
+ captureTable3.set(rep, e);
3338
+ handle0 = rscTableCreateOwn(handleTable3, rep);
3339
+ }
3101
3340
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
3102
3341
  }
3103
3342
  }
@@ -3113,8 +3352,13 @@ function trampoline33(arg0) {
3113
3352
  if (!(e instanceof TerminalOutput)) {
3114
3353
  throw new Error('Resource error: Not a valid "TerminalOutput" resource.');
3115
3354
  }
3116
- var handle0 = handleCnt4++;
3117
- handleTable4.set(handle0, { rep: e, own: true });
3355
+ var handle0 = e[symbolRscHandle];
3356
+
3357
+ if (!handle0) {
3358
+ const rep = e[symbolRscRep] || ++captureCnt4;
3359
+ captureTable4.set(rep, e);
3360
+ handle0 = rscTableCreateOwn(handleTable4, rep);
3361
+ }
3118
3362
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
3119
3363
  }
3120
3364
  }
@@ -3130,8 +3374,13 @@ function trampoline34(arg0) {
3130
3374
  if (!(e instanceof TerminalOutput)) {
3131
3375
  throw new Error('Resource error: Not a valid "TerminalOutput" resource.');
3132
3376
  }
3133
- var handle0 = handleCnt4++;
3134
- handleTable4.set(handle0, { rep: e, own: true });
3377
+ var handle0 = e[symbolRscHandle];
3378
+
3379
+ if (!handle0) {
3380
+ const rep = e[symbolRscRep] || ++captureCnt4;
3381
+ captureTable4.set(rep, e);
3382
+ handle0 = rscTableCreateOwn(handleTable4, rep);
3383
+ }
3135
3384
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
3136
3385
  }
3137
3386
  }
@@ -3139,74 +3388,114 @@ let exports3;
3139
3388
  let realloc1;
3140
3389
  let postReturn0;
3141
3390
  let postReturn1;
3391
+ let postReturn2;
3392
+ let postReturn3;
3393
+ let postReturn4;
3394
+ let postReturn5;
3395
+ let postReturn6;
3396
+ const handleTable6 = [T_FLAG, 0];
3397
+ const captureTable6= new Map();
3398
+ let captureCnt6 = 0;
3399
+ handleTables[6] = handleTable6;
3142
3400
  function trampoline0(handle) {
3143
- const handleEntry = handleTable6.get(handle);
3144
- if (!handleEntry) {
3145
- throw new Error(`Resource error: Invalid handle ${handle}`);
3146
- }
3147
- handleTable6.delete(handle);
3148
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3149
- handleEntry.rep[symbolDispose]();
3401
+ const handleEntry = rscTableRemove(handleTable6, handle);
3402
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3403
+ const rsc = captureTable6.get(handleEntry.rep);
3404
+ if (rsc) {
3405
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3406
+ captureTable6.delete(handleEntry.rep);
3407
+ } else if (DirectoryEntryStream[symbolCabiDispose]) {
3408
+ DirectoryEntryStream[symbolCabiDispose](handleEntry.rep);
3150
3409
  }
3151
3410
  }
3411
+ const handleTable0 = [T_FLAG, 0];
3412
+ const captureTable0= new Map();
3413
+ let captureCnt0 = 0;
3414
+ handleTables[0] = handleTable0;
3152
3415
  function trampoline1(handle) {
3153
- const handleEntry = handleTable0.get(handle);
3154
- if (!handleEntry) {
3155
- throw new Error(`Resource error: Invalid handle ${handle}`);
3156
- }
3157
- handleTable0.delete(handle);
3158
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3159
- handleEntry.rep[symbolDispose]();
3416
+ const handleEntry = rscTableRemove(handleTable0, handle);
3417
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3418
+ const rsc = captureTable0.get(handleEntry.rep);
3419
+ if (rsc) {
3420
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3421
+ captureTable0.delete(handleEntry.rep);
3422
+ } else if (Error$1[symbolCabiDispose]) {
3423
+ Error$1[symbolCabiDispose](handleEntry.rep);
3160
3424
  }
3161
3425
  }
3426
+ const handleTable1 = [T_FLAG, 0];
3427
+ const captureTable1= new Map();
3428
+ let captureCnt1 = 0;
3429
+ handleTables[1] = handleTable1;
3162
3430
  function trampoline2(handle) {
3163
- const handleEntry = handleTable1.get(handle);
3164
- if (!handleEntry) {
3165
- throw new Error(`Resource error: Invalid handle ${handle}`);
3166
- }
3167
- handleTable1.delete(handle);
3168
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3169
- handleEntry.rep[symbolDispose]();
3431
+ const handleEntry = rscTableRemove(handleTable1, handle);
3432
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3433
+ const rsc = captureTable1.get(handleEntry.rep);
3434
+ if (rsc) {
3435
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3436
+ captureTable1.delete(handleEntry.rep);
3437
+ } else if (InputStream[symbolCabiDispose]) {
3438
+ InputStream[symbolCabiDispose](handleEntry.rep);
3170
3439
  }
3171
3440
  }
3441
+ const handleTable2 = [T_FLAG, 0];
3442
+ const captureTable2= new Map();
3443
+ let captureCnt2 = 0;
3444
+ handleTables[2] = handleTable2;
3172
3445
  function trampoline3(handle) {
3173
- const handleEntry = handleTable2.get(handle);
3174
- if (!handleEntry) {
3175
- throw new Error(`Resource error: Invalid handle ${handle}`);
3176
- }
3177
- handleTable2.delete(handle);
3178
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3179
- handleEntry.rep[symbolDispose]();
3446
+ const handleEntry = rscTableRemove(handleTable2, handle);
3447
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3448
+ const rsc = captureTable2.get(handleEntry.rep);
3449
+ if (rsc) {
3450
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3451
+ captureTable2.delete(handleEntry.rep);
3452
+ } else if (OutputStream[symbolCabiDispose]) {
3453
+ OutputStream[symbolCabiDispose](handleEntry.rep);
3180
3454
  }
3181
3455
  }
3456
+ const handleTable5 = [T_FLAG, 0];
3457
+ const captureTable5= new Map();
3458
+ let captureCnt5 = 0;
3459
+ handleTables[5] = handleTable5;
3182
3460
  function trampoline4(handle) {
3183
- const handleEntry = handleTable5.get(handle);
3184
- if (!handleEntry) {
3185
- throw new Error(`Resource error: Invalid handle ${handle}`);
3186
- }
3187
- handleTable5.delete(handle);
3188
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3189
- handleEntry.rep[symbolDispose]();
3461
+ const handleEntry = rscTableRemove(handleTable5, handle);
3462
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3463
+ const rsc = captureTable5.get(handleEntry.rep);
3464
+ if (rsc) {
3465
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3466
+ captureTable5.delete(handleEntry.rep);
3467
+ } else if (Descriptor[symbolCabiDispose]) {
3468
+ Descriptor[symbolCabiDispose](handleEntry.rep);
3190
3469
  }
3191
3470
  }
3192
- function trampoline5(handle) {
3193
- const handleEntry = handleTable3.get(handle);
3194
- if (!handleEntry) {
3195
- throw new Error(`Resource error: Invalid handle ${handle}`);
3196
- }
3197
- handleTable3.delete(handle);
3198
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3199
- handleEntry.rep[symbolDispose]();
3471
+ const handleTable4 = [T_FLAG, 0];
3472
+ const captureTable4= new Map();
3473
+ let captureCnt4 = 0;
3474
+ handleTables[4] = handleTable4;
3475
+ function trampoline9(handle) {
3476
+ const handleEntry = rscTableRemove(handleTable4, handle);
3477
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3478
+ const rsc = captureTable4.get(handleEntry.rep);
3479
+ if (rsc) {
3480
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3481
+ captureTable4.delete(handleEntry.rep);
3482
+ } else if (TerminalOutput[symbolCabiDispose]) {
3483
+ TerminalOutput[symbolCabiDispose](handleEntry.rep);
3200
3484
  }
3201
3485
  }
3202
- function trampoline6(handle) {
3203
- const handleEntry = handleTable4.get(handle);
3204
- if (!handleEntry) {
3205
- throw new Error(`Resource error: Invalid handle ${handle}`);
3206
- }
3207
- handleTable4.delete(handle);
3208
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
3209
- handleEntry.rep[symbolDispose]();
3486
+ const handleTable3 = [T_FLAG, 0];
3487
+ const captureTable3= new Map();
3488
+ let captureCnt3 = 0;
3489
+ handleTables[3] = handleTable3;
3490
+ function trampoline10(handle) {
3491
+ const handleEntry = rscTableRemove(handleTable3, handle);
3492
+ if (!handleEntry.own) throw new Error('Internal error: Unexpected borrow handle');
3493
+ const rsc = captureTable3.get(handleEntry.rep);
3494
+ if (rsc) {
3495
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
3496
+ captureTable3.delete(handleEntry.rep);
3497
+ } else if (TerminalInput[symbolCabiDispose]) {
3498
+ TerminalInput[symbolCabiDispose](handleEntry.rep);
3210
3499
  }
3211
3500
  }
3212
3501
 
@@ -3282,7 +3571,7 @@ function print(arg0) {
3282
3571
  throw new TypeError('invalid variant discriminant for expected');
3283
3572
  }
3284
3573
  }
3285
- postReturn0(ret);
3574
+ postReturn1(ret);
3286
3575
  if (variant3.tag === 'err') {
3287
3576
  throw new ComponentError(variant3.val);
3288
3577
  }
@@ -3355,7 +3644,7 @@ function componentNew(arg0, arg1) {
3355
3644
  throw new TypeError('invalid variant discriminant for expected');
3356
3645
  }
3357
3646
  }
3358
- postReturn0(ret);
3647
+ postReturn2(ret);
3359
3648
  if (variant8.tag === 'err') {
3360
3649
  throw new ComponentError(variant8.val);
3361
3650
  }
@@ -3396,7 +3685,7 @@ function componentWit(arg0) {
3396
3685
  throw new TypeError('invalid variant discriminant for expected');
3397
3686
  }
3398
3687
  }
3399
- postReturn0(ret);
3688
+ postReturn3(ret);
3400
3689
  if (variant3.tag === 'err') {
3401
3690
  throw new ComponentError(variant3.val);
3402
3691
  }
@@ -3557,7 +3846,7 @@ function componentEmbed(arg0) {
3557
3846
  throw new TypeError('invalid variant discriminant for expected');
3558
3847
  }
3559
3848
  }
3560
- postReturn0(ret);
3849
+ postReturn4(ret);
3561
3850
  if (variant23.tag === 'err') {
3562
3851
  throw new ComponentError(variant23.val);
3563
3852
  }
@@ -3666,7 +3955,7 @@ function metadataShow(arg0) {
3666
3955
  throw new TypeError('invalid variant discriminant for expected');
3667
3956
  }
3668
3957
  }
3669
- postReturn1(ret);
3958
+ postReturn5(ret);
3670
3959
  if (variant11.tag === 'err') {
3671
3960
  throw new ComponentError(variant11.val);
3672
3961
  }
@@ -3735,33 +4024,19 @@ function metadataAdd(arg0, arg1) {
3735
4024
  throw new TypeError('invalid variant discriminant for expected');
3736
4025
  }
3737
4026
  }
3738
- postReturn0(ret);
4027
+ postReturn6(ret);
3739
4028
  if (variant10.tag === 'err') {
3740
4029
  throw new ComponentError(variant10.val);
3741
4030
  }
3742
4031
  return variant10.val;
3743
4032
  }
3744
- const handleTable0= new Map();
3745
- let handleCnt0 = 0;
3746
- const handleTable1= new Map();
3747
- let handleCnt1 = 0;
3748
- const handleTable2= new Map();
3749
- let handleCnt2 = 0;
3750
- const handleTable3= new Map();
3751
- let handleCnt3 = 0;
3752
- const handleTable4= new Map();
3753
- let handleCnt4 = 0;
3754
- const handleTable5= new Map();
3755
- let handleCnt5 = 0;
3756
- const handleTable6= new Map();
3757
- let handleCnt6 = 0;
3758
4033
 
3759
4034
  let _initialized = false;
3760
4035
  export const $init = (async() => {
3761
4036
  const module0 = fetchCompile(new URL('./wasm-tools.core.wasm', import.meta.url));
3762
4037
  const module1 = fetchCompile(new URL('./wasm-tools.core2.wasm', import.meta.url));
3763
- const module2 = base64Compile('AGFzbQEAAAABaw9gAX8AYAN/fn8AYAJ/fwBgBX9/f39/AGAHf39/f39/fwBgBH9/f38AYAJ+fwBgCX9/f39/fn5/fwF/YAV/f39+fwF/YAV/f39/fwF/YAJ/fwF/YAR/f39/AX9gAX8Bf2ADf39/AX9gAX8AAyYlAAEBAgICAgMEAgMCAgEBAgUFAgYAAAAABwgJCgoLCwoKDAoNDgQFAXABJSUHuwEmATAAAAExAAEBMgACATMAAwE0AAQBNQAFATYABgE3AAcBOAAIATkACQIxMAAKAjExAAsCMTIADAIxMwANAjE0AA4CMTUADwIxNgAQAjE3ABECMTgAEgIxOQATAjIwABQCMjEAFQIyMgAWAjIzABcCMjQAGAIyNQAZAjI2ABoCMjcAGwIyOAAcAjI5AB0CMzAAHgIzMQAfAjMyACACMzMAIQIzNAAiAjM1ACMCMzYAJAgkaW1wb3J0cwEACvkDJQkAIABBABEAAAsNACAAIAEgAkEBEQEACw0AIAAgASACQQIRAQALCwAgACABQQMRAgALCwAgACABQQQRAgALCwAgACABQQURAgALCwAgACABQQYRAgALEQAgACABIAIgAyAEQQcRAwALFQAgACABIAIgAyAEIAUgBkEIEQQACwsAIAAgAUEJEQIACxEAIAAgASACIAMgBEEKEQMACwsAIAAgAUELEQIACwsAIAAgAUEMEQIACw0AIAAgASACQQ0RAQALDQAgACABIAJBDhEBAAsLACAAIAFBDxECAAsPACAAIAEgAiADQRARBQALDwAgACABIAIgA0EREQUACwsAIAAgAUESEQIACwsAIAAgAUETEQYACwkAIABBFBEAAAsJACAAQRURAAALCQAgAEEWEQAACwkAIABBFxEAAAsZACAAIAEgAiADIAQgBSAGIAcgCEEYEQcACxEAIAAgASACIAMgBEEZEQgACxEAIAAgASACIAMgBEEaEQkACwsAIAAgAUEbEQoACwsAIAAgAUEcEQoACw8AIAAgASACIANBHRELAAsPACAAIAEgAiADQR4RCwALCwAgACABQR8RCgALCwAgACABQSARCgALCQAgAEEhEQwACwsAIAAgAUEiEQoACw0AIAAgASACQSMRDQALCQAgAEEkEQ4ACwAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMjEuMACAEQRuYW1lABMSd2l0LWNvbXBvbmVudDpzaGltAeMQJQA3aW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3ByZW9wZW5zQDAuMi4wLWdldC1kaXJlY3RvcmllcwFHaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5yZWFkLXZpYS1zdHJlYW0CSGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3Iud3JpdGUtdmlhLXN0cmVhbQNJaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5hcHBlbmQtdmlhLXN0cmVhbQRAaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5nZXQtdHlwZQVGaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5yZWFkLWRpcmVjdG9yeQY8aW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5zdGF0Bz9pbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLnN0YXQtYXQIP2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3Iub3Blbi1hdAlFaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5tZXRhZGF0YS1oYXNoCkhpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLm1ldGFkYXRhLWhhc2gtYXQLWGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRpcmVjdG9yeS1lbnRyeS1zdHJlYW0ucmVhZC1kaXJlY3RvcnktZW50cnkMOmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1maWxlc3lzdGVtLWVycm9yLWNvZGUNOGluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXWlucHV0LXN0cmVhbS5yZWFkDkFpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1pbnB1dC1zdHJlYW0uYmxvY2tpbmctcmVhZA9AaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS5jaGVjay13cml0ZRA6aW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS53cml0ZRFNaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS5ibG9ja2luZy13cml0ZS1hbmQtZmx1c2gSQ2luZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctZmx1c2gTMmluZGlyZWN0LXdhc2k6cmFuZG9tL3JhbmRvbUAwLjIuMC1nZXQtcmFuZG9tLWJ5dGVzFDNpbmRpcmVjdC13YXNpOmNsaS9lbnZpcm9ubWVudEAwLjIuMC1nZXQtZW52aXJvbm1lbnQVOWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZGluQDAuMi4wLWdldC10ZXJtaW5hbC1zdGRpbhY7aW5kaXJlY3Qtd2FzaTpjbGkvdGVybWluYWwtc3Rkb3V0QDAuMi4wLWdldC10ZXJtaW5hbC1zdGRvdXQXO2luZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZGVyckAwLjIuMC1nZXQtdGVybWluYWwtc3RkZXJyGCZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXBhdGhfb3BlbhknYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9yZWFkZGlyGi5hZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXBhdGhfZmlsZXN0YXRfZ2V0GydhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXJhbmRvbV9nZXQcLGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfZmlsZXN0YXRfZ2V0HSRhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3JlYWQeJWFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfd3JpdGUfKGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZW52aXJvbl9nZXQgLmFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZW52aXJvbl9zaXplc19nZXQhJWFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfY2xvc2UiK2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcHJlc3RhdF9nZXQjMGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcHJlc3RhdF9kaXJfbmFtZSQmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wcm9jX2V4aXQ');
3764
- const module3 = base64Compile('AGFzbQEAAAABaw9gAX8AYAN/fn8AYAJ/fwBgBX9/f39/AGAHf39/f39/fwBgBH9/f38AYAJ+fwBgCX9/f39/fn5/fwF/YAV/f39+fwF/YAV/f39/fwF/YAJ/fwF/YAR/f39/AX9gAX8Bf2ADf39/AX9gAX8AAuQBJgABMAAAAAExAAEAATIAAQABMwACAAE0AAIAATUAAgABNgACAAE3AAMAATgABAABOQACAAIxMAADAAIxMQACAAIxMgACAAIxMwABAAIxNAABAAIxNQACAAIxNgAFAAIxNwAFAAIxOAACAAIxOQAGAAIyMAAAAAIyMQAAAAIyMgAAAAIyMwAAAAIyNAAHAAIyNQAIAAIyNgAJAAIyNwAKAAIyOAAKAAIyOQALAAIzMAALAAIzMQAKAAIzMgAKAAIzMwAMAAIzNAAKAAIzNQANAAIzNgAOAAgkaW1wb3J0cwFwASUlCSsBAEEACyUAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkAC4JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQGMC4yMS4wABwEbmFtZQAVFHdpdC1jb21wb25lbnQ6Zml4dXBz');
4038
+ const module2 = base64Compile('AGFzbQEAAAABaw9gAX8AYAN/fn8AYAJ/fwBgBX9/f39/AGAHf39/f39/fwBgBH9/f38AYAJ+fwBgCX9/f39/fn5/fwF/YAV/f39+fwF/YAV/f39/fwF/YAJ/fwF/YAR/f39/AX9gAX8Bf2ADf39/AX9gAX8AAyYlAAEBAgICAgMEAgMCAgEBAgUFAgYAAAAABwgJCgoLCwoKDAoNDgQFAXABJSUHuwEmATAAAAExAAEBMgACATMAAwE0AAQBNQAFATYABgE3AAcBOAAIATkACQIxMAAKAjExAAsCMTIADAIxMwANAjE0AA4CMTUADwIxNgAQAjE3ABECMTgAEgIxOQATAjIwABQCMjEAFQIyMgAWAjIzABcCMjQAGAIyNQAZAjI2ABoCMjcAGwIyOAAcAjI5AB0CMzAAHgIzMQAfAjMyACACMzMAIQIzNAAiAjM1ACMCMzYAJAgkaW1wb3J0cwEACvkDJQkAIABBABEAAAsNACAAIAEgAkEBEQEACw0AIAAgASACQQIRAQALCwAgACABQQMRAgALCwAgACABQQQRAgALCwAgACABQQURAgALCwAgACABQQYRAgALEQAgACABIAIgAyAEQQcRAwALFQAgACABIAIgAyAEIAUgBkEIEQQACwsAIAAgAUEJEQIACxEAIAAgASACIAMgBEEKEQMACwsAIAAgAUELEQIACwsAIAAgAUEMEQIACw0AIAAgASACQQ0RAQALDQAgACABIAJBDhEBAAsLACAAIAFBDxECAAsPACAAIAEgAiADQRARBQALDwAgACABIAIgA0EREQUACwsAIAAgAUESEQIACwsAIAAgAUETEQYACwkAIABBFBEAAAsJACAAQRURAAALCQAgAEEWEQAACwkAIABBFxEAAAsZACAAIAEgAiADIAQgBSAGIAcgCEEYEQcACxEAIAAgASACIAMgBEEZEQgACxEAIAAgASACIAMgBEEaEQkACwsAIAAgAUEbEQoACwsAIAAgAUEcEQoACw8AIAAgASACIANBHRELAAsPACAAIAEgAiADQR4RCwALCwAgACABQR8RCgALCwAgACABQSARCgALCQAgAEEhEQwACwsAIAAgAUEiEQoACw0AIAAgASACQSMRDQALCQAgAEEkEQ4ACwAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjAxLjAAgBEEbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQHjECUAN2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVuc0AwLjIuMC1nZXQtZGlyZWN0b3JpZXMBR2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IucmVhZC12aWEtc3RyZWFtAkhpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLndyaXRlLXZpYS1zdHJlYW0DSWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IuYXBwZW5kLXZpYS1zdHJlYW0EQGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IuZ2V0LXR5cGUFRmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IucmVhZC1kaXJlY3RvcnkGPGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3Iuc3RhdAc/aW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5zdGF0LWF0CD9pbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLm9wZW4tYXQJRWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IubWV0YWRhdGEtaGFzaApIaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5tZXRhZGF0YS1oYXNoLWF0C1hpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kaXJlY3RvcnktZW50cnktc3RyZWFtLnJlYWQtZGlyZWN0b3J5LWVudHJ5DDppbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtZmlsZXN5c3RlbS1lcnJvci1jb2RlDThpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1pbnB1dC1zdHJlYW0ucmVhZA5BaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2RdaW5wdXQtc3RyZWFtLmJsb2NraW5nLXJlYWQPQGluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uY2hlY2std3JpdGUQOmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0ud3JpdGURTWluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctd3JpdGUtYW5kLWZsdXNoEkNpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1vdXRwdXQtc3RyZWFtLmJsb2NraW5nLWZsdXNoEzJpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb21AMC4yLjAtZ2V0LXJhbmRvbS1ieXRlcxQzaW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnRAMC4yLjAtZ2V0LWVudmlyb25tZW50FTlpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbkAwLjIuMC1nZXQtdGVybWluYWwtc3RkaW4WO2luZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dEAwLjIuMC1nZXQtdGVybWluYWwtc3Rkb3V0FztpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnJAMC4yLjAtZ2V0LXRlcm1pbmFsLXN0ZGVychgmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4ZJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZGRpchouYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX2ZpbGVzdGF0X2dldBsnYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1yYW5kb21fZ2V0HCxhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX2ZpbGVzdGF0X2dldB0kYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9yZWFkHiVhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3dyaXRlHyhhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWVudmlyb25fZ2V0IC5hZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWVudmlyb25fc2l6ZXNfZ2V0ISVhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX2Nsb3NlIithZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3ByZXN0YXRfZ2V0IzBhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3ByZXN0YXRfZGlyX25hbWUkJmFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcHJvY19leGl0');
4039
+ const module3 = base64Compile('AGFzbQEAAAABaw9gAX8AYAN/fn8AYAJ/fwBgBX9/f39/AGAHf39/f39/fwBgBH9/f38AYAJ+fwBgCX9/f39/fn5/fwF/YAV/f39+fwF/YAV/f39/fwF/YAJ/fwF/YAR/f39/AX9gAX8Bf2ADf39/AX9gAX8AAuQBJgABMAAAAAExAAEAATIAAQABMwACAAE0AAIAATUAAgABNgACAAE3AAMAATgABAABOQACAAIxMAADAAIxMQACAAIxMgACAAIxMwABAAIxNAABAAIxNQACAAIxNgAFAAIxNwAFAAIxOAACAAIxOQAGAAIyMAAAAAIyMQAAAAIyMgAAAAIyMwAAAAIyNAAHAAIyNQAIAAIyNgAJAAIyNwAKAAIyOAAKAAIyOQALAAIzMAALAAIzMQAKAAIzMgAKAAIzMwAMAAIzNAAKAAIzNQANAAIzNgAOAAgkaW1wb3J0cwFwASUlCSsBAEEACyUAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkAC8JcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDXdpdC1jb21wb25lbnQHMC4yMDEuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
3765
4040
  ({ exports: exports0 } = await instantiateCore(await module2));
3766
4041
  ({ exports: exports1 } = await instantiateCore(await module0, {
3767
4042
  wasi_snapshot_preview1: {
@@ -3791,22 +4066,22 @@ export const $init = (async() => {
3791
4066
  'get-environment': exports0['20'],
3792
4067
  },
3793
4068
  'wasi:cli/exit@0.2.0': {
3794
- exit: trampoline8,
4069
+ exit: trampoline6,
3795
4070
  },
3796
4071
  'wasi:cli/stderr@0.2.0': {
3797
- 'get-stderr': trampoline7,
4072
+ 'get-stderr': trampoline5,
3798
4073
  },
3799
4074
  'wasi:cli/stdin@0.2.0': {
3800
- 'get-stdin': trampoline9,
4075
+ 'get-stdin': trampoline7,
3801
4076
  },
3802
4077
  'wasi:cli/stdout@0.2.0': {
3803
- 'get-stdout': trampoline10,
4078
+ 'get-stdout': trampoline8,
3804
4079
  },
3805
4080
  'wasi:cli/terminal-input@0.2.0': {
3806
- '[resource-drop]terminal-input': trampoline5,
4081
+ '[resource-drop]terminal-input': trampoline10,
3807
4082
  },
3808
4083
  'wasi:cli/terminal-output@0.2.0': {
3809
- '[resource-drop]terminal-output': trampoline6,
4084
+ '[resource-drop]terminal-output': trampoline9,
3810
4085
  },
3811
4086
  'wasi:cli/terminal-stderr@0.2.0': {
3812
4087
  'get-terminal-stderr': exports0['23'],
@@ -3898,8 +4173,13 @@ export const $init = (async() => {
3898
4173
  },
3899
4174
  }));
3900
4175
  realloc1 = exports1.cabi_realloc;
3901
- postReturn0 = exports1['cabi_post_local:wasm-tools/tools#component-embed'];
3902
- postReturn1 = exports1['cabi_post_local:wasm-tools/tools#metadata-show'];
4176
+ postReturn0 = exports1['cabi_post_local:wasm-tools/tools#parse'];
4177
+ postReturn1 = exports1['cabi_post_local:wasm-tools/tools#print'];
4178
+ postReturn2 = exports1['cabi_post_local:wasm-tools/tools#component-new'];
4179
+ postReturn3 = exports1['cabi_post_local:wasm-tools/tools#component-wit'];
4180
+ postReturn4 = exports1['cabi_post_local:wasm-tools/tools#component-embed'];
4181
+ postReturn5 = exports1['cabi_post_local:wasm-tools/tools#metadata-show'];
4182
+ postReturn6 = exports1['cabi_post_local:wasm-tools/tools#metadata-add'];
3903
4183
  _initialized = true;
3904
4184
  })();
3905
4185
  const tools = {