@bytecodealliance/jco 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,6 @@ const { getTerminalStdin } = terminalStdin;
14
14
  const { getTerminalStdout } = terminalStdout;
15
15
  const { getDirectories } = preopens;
16
16
  const { Descriptor,
17
- DirectoryEntryStream,
18
17
  filesystemErrorCode } = types;
19
18
  const { Error: Error$1 } = error;
20
19
  const { InputStream,
@@ -46,14 +45,48 @@ async function fetchCompile (url) {
46
45
 
47
46
  function getErrorPayload(e) {
48
47
  if (e && hasOwnProperty.call(e, 'payload')) return e.payload;
48
+ if (e instanceof Error) throw 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 TypeError('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 TypeError('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
 
@@ -96,18 +129,26 @@ function utf8Encode(s, realloc, memory) {
96
129
 
97
130
  let exports0;
98
131
  let exports1;
132
+ const handleTable2 = [T_FLAG, 0];
133
+ const captureTable2= new Map();
134
+ let captureCnt2 = 0;
135
+ handleTables[2] = handleTable2;
99
136
 
100
- function trampoline7() {
137
+ function trampoline5() {
101
138
  const ret = getStderr();
102
139
  if (!(ret instanceof OutputStream)) {
103
- throw new Error('Resource error: Not a valid "OutputStream" resource.');
140
+ throw new TypeError('Resource error: Not a valid "OutputStream" resource.');
141
+ }
142
+ var handle0 = ret[symbolRscHandle];
143
+ if (!handle0) {
144
+ const rep = ret[symbolRscRep] || ++captureCnt2;
145
+ captureTable2.set(rep, ret);
146
+ handle0 = rscTableCreateOwn(handleTable2, rep);
104
147
  }
105
- var handle0 = handleCnt2++;
106
- handleTable2.set(handle0, { rep: ret, own: true });
107
148
  return handle0;
108
149
  }
109
150
 
110
- function trampoline8(arg0) {
151
+ function trampoline6(arg0) {
111
152
  let variant0;
112
153
  switch (arg0) {
113
154
  case 0: {
@@ -130,27 +171,45 @@ function trampoline8(arg0) {
130
171
  }
131
172
  exit(variant0);
132
173
  }
174
+ const handleTable1 = [T_FLAG, 0];
175
+ const captureTable1= new Map();
176
+ let captureCnt1 = 0;
177
+ handleTables[1] = handleTable1;
133
178
 
134
- function trampoline9() {
179
+ function trampoline7() {
135
180
  const ret = getStdin();
136
181
  if (!(ret instanceof InputStream)) {
137
- throw new Error('Resource error: Not a valid "InputStream" resource.');
182
+ throw new TypeError('Resource error: Not a valid "InputStream" resource.');
183
+ }
184
+ var handle0 = ret[symbolRscHandle];
185
+ if (!handle0) {
186
+ const rep = ret[symbolRscRep] || ++captureCnt1;
187
+ captureTable1.set(rep, ret);
188
+ handle0 = rscTableCreateOwn(handleTable1, rep);
138
189
  }
139
- var handle0 = handleCnt1++;
140
- handleTable1.set(handle0, { rep: ret, own: true });
141
190
  return handle0;
142
191
  }
143
192
 
144
- function trampoline10() {
193
+ function trampoline8() {
145
194
  const ret = getStdout();
146
195
  if (!(ret instanceof OutputStream)) {
147
- throw new Error('Resource error: Not a valid "OutputStream" resource.');
196
+ throw new TypeError('Resource error: Not a valid "OutputStream" resource.');
197
+ }
198
+ var handle0 = ret[symbolRscHandle];
199
+ if (!handle0) {
200
+ const rep = ret[symbolRscRep] || ++captureCnt2;
201
+ captureTable2.set(rep, ret);
202
+ handle0 = rscTableCreateOwn(handleTable2, rep);
148
203
  }
149
- var handle0 = handleCnt2++;
150
- handleTable2.set(handle0, { rep: ret, own: true });
151
204
  return handle0;
152
205
  }
153
206
  let exports2;
207
+ let memory0;
208
+ let realloc0;
209
+ const handleTable5 = [T_FLAG, 0];
210
+ const captureTable5= new Map();
211
+ let captureCnt5 = 0;
212
+ handleTables[5] = handleTable5;
154
213
 
155
214
  function trampoline11(arg0) {
156
215
  const ret = getDirectories();
@@ -161,10 +220,14 @@ function trampoline11(arg0) {
161
220
  const e = vec3[i];
162
221
  const base = result3 + i * 12;var [tuple0_0, tuple0_1] = e;
163
222
  if (!(tuple0_0 instanceof Descriptor)) {
164
- throw new Error('Resource error: Not a valid "Descriptor" resource.');
223
+ throw new TypeError('Resource error: Not a valid "Descriptor" resource.');
224
+ }
225
+ var handle1 = tuple0_0[symbolRscHandle];
226
+ if (!handle1) {
227
+ const rep = tuple0_0[symbolRscRep] || ++captureCnt5;
228
+ captureTable5.set(rep, tuple0_0);
229
+ handle1 = rscTableCreateOwn(handleTable5, rep);
165
230
  }
166
- var handle1 = handleCnt5++;
167
- handleTable5.set(handle1, { rep: tuple0_0, own: true });
168
231
  dataView(memory0).setInt32(base + 0, handle1, true);
169
232
  var ptr2 = utf8Encode(tuple0_1, realloc0, memory0);
170
233
  var len2 = utf8EncodedLen;
@@ -174,183 +237,192 @@ function trampoline11(arg0) {
174
237
  dataView(memory0).setInt32(arg0 + 4, len3, true);
175
238
  dataView(memory0).setInt32(arg0 + 0, result3, true);
176
239
  }
177
- let memory0;
178
- let realloc0;
179
240
 
180
241
  function trampoline12(arg0, arg1, arg2) {
181
242
  var handle1 = arg0;
182
- var rsc0 = handleTable5.get(handle1).rep;
243
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
244
+ var rsc0 = captureTable5.get(rep2);
245
+ if (!rsc0) {
246
+ rsc0 = Object.create(Descriptor.prototype);
247
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
248
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
249
+ }
183
250
  let ret;
184
251
  try {
185
- ret = { tag: 'ok', val: Descriptor.prototype.readViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
252
+ ret = { tag: 'ok', val: rsc0.readViaStream(BigInt.asUintN(64, arg1))};
186
253
  } catch (e) {
187
254
  ret = { tag: 'err', val: getErrorPayload(e) };
188
255
  }
189
- var variant4 = ret;
190
- switch (variant4.tag) {
256
+ rsc0[symbolRscHandle] = null;
257
+ var variant5 = ret;
258
+ switch (variant5.tag) {
191
259
  case 'ok': {
192
- const e = variant4.val;
260
+ const e = variant5.val;
193
261
  dataView(memory0).setInt8(arg2 + 0, 0, true);
194
262
  if (!(e instanceof InputStream)) {
195
- throw new Error('Resource error: Not a valid "InputStream" resource.');
263
+ throw new TypeError('Resource error: Not a valid "InputStream" resource.');
264
+ }
265
+ var handle3 = e[symbolRscHandle];
266
+ if (!handle3) {
267
+ const rep = e[symbolRscRep] || ++captureCnt1;
268
+ captureTable1.set(rep, e);
269
+ handle3 = rscTableCreateOwn(handleTable1, rep);
196
270
  }
197
- var handle2 = handleCnt1++;
198
- handleTable1.set(handle2, { rep: e, own: true });
199
- dataView(memory0).setInt32(arg2 + 4, handle2, true);
271
+ dataView(memory0).setInt32(arg2 + 4, handle3, true);
200
272
  break;
201
273
  }
202
274
  case 'err': {
203
- const e = variant4.val;
275
+ const e = variant5.val;
204
276
  dataView(memory0).setInt8(arg2 + 0, 1, true);
205
- var val3 = e;
206
- let enum3;
207
- switch (val3) {
277
+ var val4 = e;
278
+ let enum4;
279
+ switch (val4) {
208
280
  case 'access': {
209
- enum3 = 0;
281
+ enum4 = 0;
210
282
  break;
211
283
  }
212
284
  case 'would-block': {
213
- enum3 = 1;
285
+ enum4 = 1;
214
286
  break;
215
287
  }
216
288
  case 'already': {
217
- enum3 = 2;
289
+ enum4 = 2;
218
290
  break;
219
291
  }
220
292
  case 'bad-descriptor': {
221
- enum3 = 3;
293
+ enum4 = 3;
222
294
  break;
223
295
  }
224
296
  case 'busy': {
225
- enum3 = 4;
297
+ enum4 = 4;
226
298
  break;
227
299
  }
228
300
  case 'deadlock': {
229
- enum3 = 5;
301
+ enum4 = 5;
230
302
  break;
231
303
  }
232
304
  case 'quota': {
233
- enum3 = 6;
305
+ enum4 = 6;
234
306
  break;
235
307
  }
236
308
  case 'exist': {
237
- enum3 = 7;
309
+ enum4 = 7;
238
310
  break;
239
311
  }
240
312
  case 'file-too-large': {
241
- enum3 = 8;
313
+ enum4 = 8;
242
314
  break;
243
315
  }
244
316
  case 'illegal-byte-sequence': {
245
- enum3 = 9;
317
+ enum4 = 9;
246
318
  break;
247
319
  }
248
320
  case 'in-progress': {
249
- enum3 = 10;
321
+ enum4 = 10;
250
322
  break;
251
323
  }
252
324
  case 'interrupted': {
253
- enum3 = 11;
325
+ enum4 = 11;
254
326
  break;
255
327
  }
256
328
  case 'invalid': {
257
- enum3 = 12;
329
+ enum4 = 12;
258
330
  break;
259
331
  }
260
332
  case 'io': {
261
- enum3 = 13;
333
+ enum4 = 13;
262
334
  break;
263
335
  }
264
336
  case 'is-directory': {
265
- enum3 = 14;
337
+ enum4 = 14;
266
338
  break;
267
339
  }
268
340
  case 'loop': {
269
- enum3 = 15;
341
+ enum4 = 15;
270
342
  break;
271
343
  }
272
344
  case 'too-many-links': {
273
- enum3 = 16;
345
+ enum4 = 16;
274
346
  break;
275
347
  }
276
348
  case 'message-size': {
277
- enum3 = 17;
349
+ enum4 = 17;
278
350
  break;
279
351
  }
280
352
  case 'name-too-long': {
281
- enum3 = 18;
353
+ enum4 = 18;
282
354
  break;
283
355
  }
284
356
  case 'no-device': {
285
- enum3 = 19;
357
+ enum4 = 19;
286
358
  break;
287
359
  }
288
360
  case 'no-entry': {
289
- enum3 = 20;
361
+ enum4 = 20;
290
362
  break;
291
363
  }
292
364
  case 'no-lock': {
293
- enum3 = 21;
365
+ enum4 = 21;
294
366
  break;
295
367
  }
296
368
  case 'insufficient-memory': {
297
- enum3 = 22;
369
+ enum4 = 22;
298
370
  break;
299
371
  }
300
372
  case 'insufficient-space': {
301
- enum3 = 23;
373
+ enum4 = 23;
302
374
  break;
303
375
  }
304
376
  case 'not-directory': {
305
- enum3 = 24;
377
+ enum4 = 24;
306
378
  break;
307
379
  }
308
380
  case 'not-empty': {
309
- enum3 = 25;
381
+ enum4 = 25;
310
382
  break;
311
383
  }
312
384
  case 'not-recoverable': {
313
- enum3 = 26;
385
+ enum4 = 26;
314
386
  break;
315
387
  }
316
388
  case 'unsupported': {
317
- enum3 = 27;
389
+ enum4 = 27;
318
390
  break;
319
391
  }
320
392
  case 'no-tty': {
321
- enum3 = 28;
393
+ enum4 = 28;
322
394
  break;
323
395
  }
324
396
  case 'no-such-device': {
325
- enum3 = 29;
397
+ enum4 = 29;
326
398
  break;
327
399
  }
328
400
  case 'overflow': {
329
- enum3 = 30;
401
+ enum4 = 30;
330
402
  break;
331
403
  }
332
404
  case 'not-permitted': {
333
- enum3 = 31;
405
+ enum4 = 31;
334
406
  break;
335
407
  }
336
408
  case 'pipe': {
337
- enum3 = 32;
409
+ enum4 = 32;
338
410
  break;
339
411
  }
340
412
  case 'read-only': {
341
- enum3 = 33;
413
+ enum4 = 33;
342
414
  break;
343
415
  }
344
416
  case 'invalid-seek': {
345
- enum3 = 34;
417
+ enum4 = 34;
346
418
  break;
347
419
  }
348
420
  case 'text-file-busy': {
349
- enum3 = 35;
421
+ enum4 = 35;
350
422
  break;
351
423
  }
352
424
  case 'cross-device': {
353
- enum3 = 36;
425
+ enum4 = 36;
354
426
  break;
355
427
  }
356
428
  default: {
@@ -358,10 +430,10 @@ function trampoline12(arg0, arg1, arg2) {
358
430
  console.error(e);
359
431
  }
360
432
 
361
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
433
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
362
434
  }
363
435
  }
364
- dataView(memory0).setInt8(arg2 + 4, enum3, true);
436
+ dataView(memory0).setInt8(arg2 + 4, enum4, true);
365
437
  break;
366
438
  }
367
439
  default: {
@@ -372,178 +444,189 @@ function trampoline12(arg0, arg1, arg2) {
372
444
 
373
445
  function trampoline13(arg0, arg1, arg2) {
374
446
  var handle1 = arg0;
375
- var rsc0 = handleTable5.get(handle1).rep;
447
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
448
+ var rsc0 = captureTable5.get(rep2);
449
+ if (!rsc0) {
450
+ rsc0 = Object.create(Descriptor.prototype);
451
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
452
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
453
+ }
376
454
  let ret;
377
455
  try {
378
- ret = { tag: 'ok', val: Descriptor.prototype.writeViaStream.call(rsc0, BigInt.asUintN(64, arg1)) };
456
+ ret = { tag: 'ok', val: rsc0.writeViaStream(BigInt.asUintN(64, arg1))};
379
457
  } catch (e) {
380
458
  ret = { tag: 'err', val: getErrorPayload(e) };
381
459
  }
382
- var variant4 = ret;
383
- switch (variant4.tag) {
460
+ rsc0[symbolRscHandle] = null;
461
+ var variant5 = ret;
462
+ switch (variant5.tag) {
384
463
  case 'ok': {
385
- const e = variant4.val;
464
+ const e = variant5.val;
386
465
  dataView(memory0).setInt8(arg2 + 0, 0, true);
387
466
  if (!(e instanceof OutputStream)) {
388
- throw new Error('Resource error: Not a valid "OutputStream" resource.');
467
+ throw new TypeError('Resource error: Not a valid "OutputStream" resource.');
389
468
  }
390
- var handle2 = handleCnt2++;
391
- handleTable2.set(handle2, { rep: e, own: true });
392
- dataView(memory0).setInt32(arg2 + 4, handle2, true);
469
+ var handle3 = e[symbolRscHandle];
470
+ if (!handle3) {
471
+ const rep = e[symbolRscRep] || ++captureCnt2;
472
+ captureTable2.set(rep, e);
473
+ handle3 = rscTableCreateOwn(handleTable2, rep);
474
+ }
475
+ dataView(memory0).setInt32(arg2 + 4, handle3, true);
393
476
  break;
394
477
  }
395
478
  case 'err': {
396
- const e = variant4.val;
479
+ const e = variant5.val;
397
480
  dataView(memory0).setInt8(arg2 + 0, 1, true);
398
- var val3 = e;
399
- let enum3;
400
- switch (val3) {
481
+ var val4 = e;
482
+ let enum4;
483
+ switch (val4) {
401
484
  case 'access': {
402
- enum3 = 0;
485
+ enum4 = 0;
403
486
  break;
404
487
  }
405
488
  case 'would-block': {
406
- enum3 = 1;
489
+ enum4 = 1;
407
490
  break;
408
491
  }
409
492
  case 'already': {
410
- enum3 = 2;
493
+ enum4 = 2;
411
494
  break;
412
495
  }
413
496
  case 'bad-descriptor': {
414
- enum3 = 3;
497
+ enum4 = 3;
415
498
  break;
416
499
  }
417
500
  case 'busy': {
418
- enum3 = 4;
501
+ enum4 = 4;
419
502
  break;
420
503
  }
421
504
  case 'deadlock': {
422
- enum3 = 5;
505
+ enum4 = 5;
423
506
  break;
424
507
  }
425
508
  case 'quota': {
426
- enum3 = 6;
509
+ enum4 = 6;
427
510
  break;
428
511
  }
429
512
  case 'exist': {
430
- enum3 = 7;
513
+ enum4 = 7;
431
514
  break;
432
515
  }
433
516
  case 'file-too-large': {
434
- enum3 = 8;
517
+ enum4 = 8;
435
518
  break;
436
519
  }
437
520
  case 'illegal-byte-sequence': {
438
- enum3 = 9;
521
+ enum4 = 9;
439
522
  break;
440
523
  }
441
524
  case 'in-progress': {
442
- enum3 = 10;
525
+ enum4 = 10;
443
526
  break;
444
527
  }
445
528
  case 'interrupted': {
446
- enum3 = 11;
529
+ enum4 = 11;
447
530
  break;
448
531
  }
449
532
  case 'invalid': {
450
- enum3 = 12;
533
+ enum4 = 12;
451
534
  break;
452
535
  }
453
536
  case 'io': {
454
- enum3 = 13;
537
+ enum4 = 13;
455
538
  break;
456
539
  }
457
540
  case 'is-directory': {
458
- enum3 = 14;
541
+ enum4 = 14;
459
542
  break;
460
543
  }
461
544
  case 'loop': {
462
- enum3 = 15;
545
+ enum4 = 15;
463
546
  break;
464
547
  }
465
548
  case 'too-many-links': {
466
- enum3 = 16;
549
+ enum4 = 16;
467
550
  break;
468
551
  }
469
552
  case 'message-size': {
470
- enum3 = 17;
553
+ enum4 = 17;
471
554
  break;
472
555
  }
473
556
  case 'name-too-long': {
474
- enum3 = 18;
557
+ enum4 = 18;
475
558
  break;
476
559
  }
477
560
  case 'no-device': {
478
- enum3 = 19;
561
+ enum4 = 19;
479
562
  break;
480
563
  }
481
564
  case 'no-entry': {
482
- enum3 = 20;
565
+ enum4 = 20;
483
566
  break;
484
567
  }
485
568
  case 'no-lock': {
486
- enum3 = 21;
569
+ enum4 = 21;
487
570
  break;
488
571
  }
489
572
  case 'insufficient-memory': {
490
- enum3 = 22;
573
+ enum4 = 22;
491
574
  break;
492
575
  }
493
576
  case 'insufficient-space': {
494
- enum3 = 23;
577
+ enum4 = 23;
495
578
  break;
496
579
  }
497
580
  case 'not-directory': {
498
- enum3 = 24;
581
+ enum4 = 24;
499
582
  break;
500
583
  }
501
584
  case 'not-empty': {
502
- enum3 = 25;
585
+ enum4 = 25;
503
586
  break;
504
587
  }
505
588
  case 'not-recoverable': {
506
- enum3 = 26;
589
+ enum4 = 26;
507
590
  break;
508
591
  }
509
592
  case 'unsupported': {
510
- enum3 = 27;
593
+ enum4 = 27;
511
594
  break;
512
595
  }
513
596
  case 'no-tty': {
514
- enum3 = 28;
597
+ enum4 = 28;
515
598
  break;
516
599
  }
517
600
  case 'no-such-device': {
518
- enum3 = 29;
601
+ enum4 = 29;
519
602
  break;
520
603
  }
521
604
  case 'overflow': {
522
- enum3 = 30;
605
+ enum4 = 30;
523
606
  break;
524
607
  }
525
608
  case 'not-permitted': {
526
- enum3 = 31;
609
+ enum4 = 31;
527
610
  break;
528
611
  }
529
612
  case 'pipe': {
530
- enum3 = 32;
613
+ enum4 = 32;
531
614
  break;
532
615
  }
533
616
  case 'read-only': {
534
- enum3 = 33;
617
+ enum4 = 33;
535
618
  break;
536
619
  }
537
620
  case 'invalid-seek': {
538
- enum3 = 34;
621
+ enum4 = 34;
539
622
  break;
540
623
  }
541
624
  case 'text-file-busy': {
542
- enum3 = 35;
625
+ enum4 = 35;
543
626
  break;
544
627
  }
545
628
  case 'cross-device': {
546
- enum3 = 36;
629
+ enum4 = 36;
547
630
  break;
548
631
  }
549
632
  default: {
@@ -551,10 +634,10 @@ function trampoline13(arg0, arg1, arg2) {
551
634
  console.error(e);
552
635
  }
553
636
 
554
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
637
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
555
638
  }
556
639
  }
557
- dataView(memory0).setInt8(arg2 + 4, enum3, true);
640
+ dataView(memory0).setInt8(arg2 + 4, enum4, true);
558
641
  break;
559
642
  }
560
643
  default: {
@@ -565,178 +648,189 @@ function trampoline13(arg0, arg1, arg2) {
565
648
 
566
649
  function trampoline14(arg0, arg1) {
567
650
  var handle1 = arg0;
568
- var rsc0 = handleTable5.get(handle1).rep;
651
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
652
+ var rsc0 = captureTable5.get(rep2);
653
+ if (!rsc0) {
654
+ rsc0 = Object.create(Descriptor.prototype);
655
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
656
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
657
+ }
569
658
  let ret;
570
659
  try {
571
- ret = { tag: 'ok', val: Descriptor.prototype.appendViaStream.call(rsc0) };
660
+ ret = { tag: 'ok', val: rsc0.appendViaStream()};
572
661
  } catch (e) {
573
662
  ret = { tag: 'err', val: getErrorPayload(e) };
574
663
  }
575
- var variant4 = ret;
576
- switch (variant4.tag) {
664
+ rsc0[symbolRscHandle] = null;
665
+ var variant5 = ret;
666
+ switch (variant5.tag) {
577
667
  case 'ok': {
578
- const e = variant4.val;
668
+ const e = variant5.val;
579
669
  dataView(memory0).setInt8(arg1 + 0, 0, true);
580
670
  if (!(e instanceof OutputStream)) {
581
- throw new Error('Resource error: Not a valid "OutputStream" resource.');
671
+ throw new TypeError('Resource error: Not a valid "OutputStream" resource.');
672
+ }
673
+ var handle3 = e[symbolRscHandle];
674
+ if (!handle3) {
675
+ const rep = e[symbolRscRep] || ++captureCnt2;
676
+ captureTable2.set(rep, e);
677
+ handle3 = rscTableCreateOwn(handleTable2, rep);
582
678
  }
583
- var handle2 = handleCnt2++;
584
- handleTable2.set(handle2, { rep: e, own: true });
585
- dataView(memory0).setInt32(arg1 + 4, handle2, true);
679
+ dataView(memory0).setInt32(arg1 + 4, handle3, true);
586
680
  break;
587
681
  }
588
682
  case 'err': {
589
- const e = variant4.val;
683
+ const e = variant5.val;
590
684
  dataView(memory0).setInt8(arg1 + 0, 1, true);
591
- var val3 = e;
592
- let enum3;
593
- switch (val3) {
685
+ var val4 = e;
686
+ let enum4;
687
+ switch (val4) {
594
688
  case 'access': {
595
- enum3 = 0;
689
+ enum4 = 0;
596
690
  break;
597
691
  }
598
692
  case 'would-block': {
599
- enum3 = 1;
693
+ enum4 = 1;
600
694
  break;
601
695
  }
602
696
  case 'already': {
603
- enum3 = 2;
697
+ enum4 = 2;
604
698
  break;
605
699
  }
606
700
  case 'bad-descriptor': {
607
- enum3 = 3;
701
+ enum4 = 3;
608
702
  break;
609
703
  }
610
704
  case 'busy': {
611
- enum3 = 4;
705
+ enum4 = 4;
612
706
  break;
613
707
  }
614
708
  case 'deadlock': {
615
- enum3 = 5;
709
+ enum4 = 5;
616
710
  break;
617
711
  }
618
712
  case 'quota': {
619
- enum3 = 6;
713
+ enum4 = 6;
620
714
  break;
621
715
  }
622
716
  case 'exist': {
623
- enum3 = 7;
717
+ enum4 = 7;
624
718
  break;
625
719
  }
626
720
  case 'file-too-large': {
627
- enum3 = 8;
721
+ enum4 = 8;
628
722
  break;
629
723
  }
630
724
  case 'illegal-byte-sequence': {
631
- enum3 = 9;
725
+ enum4 = 9;
632
726
  break;
633
727
  }
634
728
  case 'in-progress': {
635
- enum3 = 10;
729
+ enum4 = 10;
636
730
  break;
637
731
  }
638
732
  case 'interrupted': {
639
- enum3 = 11;
733
+ enum4 = 11;
640
734
  break;
641
735
  }
642
736
  case 'invalid': {
643
- enum3 = 12;
737
+ enum4 = 12;
644
738
  break;
645
739
  }
646
740
  case 'io': {
647
- enum3 = 13;
741
+ enum4 = 13;
648
742
  break;
649
743
  }
650
744
  case 'is-directory': {
651
- enum3 = 14;
745
+ enum4 = 14;
652
746
  break;
653
747
  }
654
748
  case 'loop': {
655
- enum3 = 15;
749
+ enum4 = 15;
656
750
  break;
657
751
  }
658
752
  case 'too-many-links': {
659
- enum3 = 16;
753
+ enum4 = 16;
660
754
  break;
661
755
  }
662
756
  case 'message-size': {
663
- enum3 = 17;
757
+ enum4 = 17;
664
758
  break;
665
759
  }
666
760
  case 'name-too-long': {
667
- enum3 = 18;
761
+ enum4 = 18;
668
762
  break;
669
763
  }
670
764
  case 'no-device': {
671
- enum3 = 19;
765
+ enum4 = 19;
672
766
  break;
673
767
  }
674
768
  case 'no-entry': {
675
- enum3 = 20;
769
+ enum4 = 20;
676
770
  break;
677
771
  }
678
772
  case 'no-lock': {
679
- enum3 = 21;
773
+ enum4 = 21;
680
774
  break;
681
775
  }
682
776
  case 'insufficient-memory': {
683
- enum3 = 22;
777
+ enum4 = 22;
684
778
  break;
685
779
  }
686
780
  case 'insufficient-space': {
687
- enum3 = 23;
781
+ enum4 = 23;
688
782
  break;
689
783
  }
690
784
  case 'not-directory': {
691
- enum3 = 24;
785
+ enum4 = 24;
692
786
  break;
693
787
  }
694
788
  case 'not-empty': {
695
- enum3 = 25;
789
+ enum4 = 25;
696
790
  break;
697
791
  }
698
792
  case 'not-recoverable': {
699
- enum3 = 26;
793
+ enum4 = 26;
700
794
  break;
701
795
  }
702
796
  case 'unsupported': {
703
- enum3 = 27;
797
+ enum4 = 27;
704
798
  break;
705
799
  }
706
800
  case 'no-tty': {
707
- enum3 = 28;
801
+ enum4 = 28;
708
802
  break;
709
803
  }
710
804
  case 'no-such-device': {
711
- enum3 = 29;
805
+ enum4 = 29;
712
806
  break;
713
807
  }
714
808
  case 'overflow': {
715
- enum3 = 30;
809
+ enum4 = 30;
716
810
  break;
717
811
  }
718
812
  case 'not-permitted': {
719
- enum3 = 31;
813
+ enum4 = 31;
720
814
  break;
721
815
  }
722
816
  case 'pipe': {
723
- enum3 = 32;
817
+ enum4 = 32;
724
818
  break;
725
819
  }
726
820
  case 'read-only': {
727
- enum3 = 33;
821
+ enum4 = 33;
728
822
  break;
729
823
  }
730
824
  case 'invalid-seek': {
731
- enum3 = 34;
825
+ enum4 = 34;
732
826
  break;
733
827
  }
734
828
  case 'text-file-busy': {
735
- enum3 = 35;
829
+ enum4 = 35;
736
830
  break;
737
831
  }
738
832
  case 'cross-device': {
739
- enum3 = 36;
833
+ enum4 = 36;
740
834
  break;
741
835
  }
742
836
  default: {
@@ -744,10 +838,10 @@ function trampoline14(arg0, arg1) {
744
838
  console.error(e);
745
839
  }
746
840
 
747
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
841
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
748
842
  }
749
843
  }
750
- dataView(memory0).setInt8(arg1 + 4, enum3, true);
844
+ dataView(memory0).setInt8(arg1 + 4, enum4, true);
751
845
  break;
752
846
  }
753
847
  default: {
@@ -758,51 +852,58 @@ function trampoline14(arg0, arg1) {
758
852
 
759
853
  function trampoline15(arg0, arg1) {
760
854
  var handle1 = arg0;
761
- var rsc0 = handleTable5.get(handle1).rep;
855
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
856
+ var rsc0 = captureTable5.get(rep2);
857
+ if (!rsc0) {
858
+ rsc0 = Object.create(Descriptor.prototype);
859
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
860
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
861
+ }
762
862
  let ret;
763
863
  try {
764
- ret = { tag: 'ok', val: Descriptor.prototype.getType.call(rsc0) };
864
+ ret = { tag: 'ok', val: rsc0.getType()};
765
865
  } catch (e) {
766
866
  ret = { tag: 'err', val: getErrorPayload(e) };
767
867
  }
768
- var variant4 = ret;
769
- switch (variant4.tag) {
868
+ rsc0[symbolRscHandle] = null;
869
+ var variant5 = ret;
870
+ switch (variant5.tag) {
770
871
  case 'ok': {
771
- const e = variant4.val;
872
+ const e = variant5.val;
772
873
  dataView(memory0).setInt8(arg1 + 0, 0, true);
773
- var val2 = e;
774
- let enum2;
775
- switch (val2) {
874
+ var val3 = e;
875
+ let enum3;
876
+ switch (val3) {
776
877
  case 'unknown': {
777
- enum2 = 0;
878
+ enum3 = 0;
778
879
  break;
779
880
  }
780
881
  case 'block-device': {
781
- enum2 = 1;
882
+ enum3 = 1;
782
883
  break;
783
884
  }
784
885
  case 'character-device': {
785
- enum2 = 2;
886
+ enum3 = 2;
786
887
  break;
787
888
  }
788
889
  case 'directory': {
789
- enum2 = 3;
890
+ enum3 = 3;
790
891
  break;
791
892
  }
792
893
  case 'fifo': {
793
- enum2 = 4;
894
+ enum3 = 4;
794
895
  break;
795
896
  }
796
897
  case 'symbolic-link': {
797
- enum2 = 5;
898
+ enum3 = 5;
798
899
  break;
799
900
  }
800
901
  case 'regular-file': {
801
- enum2 = 6;
902
+ enum3 = 6;
802
903
  break;
803
904
  }
804
905
  case 'socket': {
805
- enum2 = 7;
906
+ enum3 = 7;
806
907
  break;
807
908
  }
808
909
  default: {
@@ -810,164 +911,164 @@ function trampoline15(arg0, arg1) {
810
911
  console.error(e);
811
912
  }
812
913
 
813
- throw new TypeError(`"${val2}" is not one of the cases of descriptor-type`);
914
+ throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`);
814
915
  }
815
916
  }
816
- dataView(memory0).setInt8(arg1 + 1, enum2, true);
917
+ dataView(memory0).setInt8(arg1 + 1, enum3, true);
817
918
  break;
818
919
  }
819
920
  case 'err': {
820
- const e = variant4.val;
921
+ const e = variant5.val;
821
922
  dataView(memory0).setInt8(arg1 + 0, 1, true);
822
- var val3 = e;
823
- let enum3;
824
- switch (val3) {
923
+ var val4 = e;
924
+ let enum4;
925
+ switch (val4) {
825
926
  case 'access': {
826
- enum3 = 0;
927
+ enum4 = 0;
827
928
  break;
828
929
  }
829
930
  case 'would-block': {
830
- enum3 = 1;
931
+ enum4 = 1;
831
932
  break;
832
933
  }
833
934
  case 'already': {
834
- enum3 = 2;
935
+ enum4 = 2;
835
936
  break;
836
937
  }
837
938
  case 'bad-descriptor': {
838
- enum3 = 3;
939
+ enum4 = 3;
839
940
  break;
840
941
  }
841
942
  case 'busy': {
842
- enum3 = 4;
943
+ enum4 = 4;
843
944
  break;
844
945
  }
845
946
  case 'deadlock': {
846
- enum3 = 5;
947
+ enum4 = 5;
847
948
  break;
848
949
  }
849
950
  case 'quota': {
850
- enum3 = 6;
951
+ enum4 = 6;
851
952
  break;
852
953
  }
853
954
  case 'exist': {
854
- enum3 = 7;
955
+ enum4 = 7;
855
956
  break;
856
957
  }
857
958
  case 'file-too-large': {
858
- enum3 = 8;
959
+ enum4 = 8;
859
960
  break;
860
961
  }
861
962
  case 'illegal-byte-sequence': {
862
- enum3 = 9;
963
+ enum4 = 9;
863
964
  break;
864
965
  }
865
966
  case 'in-progress': {
866
- enum3 = 10;
967
+ enum4 = 10;
867
968
  break;
868
969
  }
869
970
  case 'interrupted': {
870
- enum3 = 11;
971
+ enum4 = 11;
871
972
  break;
872
973
  }
873
974
  case 'invalid': {
874
- enum3 = 12;
975
+ enum4 = 12;
875
976
  break;
876
977
  }
877
978
  case 'io': {
878
- enum3 = 13;
979
+ enum4 = 13;
879
980
  break;
880
981
  }
881
982
  case 'is-directory': {
882
- enum3 = 14;
983
+ enum4 = 14;
883
984
  break;
884
985
  }
885
986
  case 'loop': {
886
- enum3 = 15;
987
+ enum4 = 15;
887
988
  break;
888
989
  }
889
990
  case 'too-many-links': {
890
- enum3 = 16;
991
+ enum4 = 16;
891
992
  break;
892
993
  }
893
994
  case 'message-size': {
894
- enum3 = 17;
995
+ enum4 = 17;
895
996
  break;
896
997
  }
897
998
  case 'name-too-long': {
898
- enum3 = 18;
999
+ enum4 = 18;
899
1000
  break;
900
1001
  }
901
1002
  case 'no-device': {
902
- enum3 = 19;
1003
+ enum4 = 19;
903
1004
  break;
904
1005
  }
905
1006
  case 'no-entry': {
906
- enum3 = 20;
1007
+ enum4 = 20;
907
1008
  break;
908
1009
  }
909
1010
  case 'no-lock': {
910
- enum3 = 21;
1011
+ enum4 = 21;
911
1012
  break;
912
1013
  }
913
1014
  case 'insufficient-memory': {
914
- enum3 = 22;
1015
+ enum4 = 22;
915
1016
  break;
916
1017
  }
917
1018
  case 'insufficient-space': {
918
- enum3 = 23;
1019
+ enum4 = 23;
919
1020
  break;
920
1021
  }
921
1022
  case 'not-directory': {
922
- enum3 = 24;
1023
+ enum4 = 24;
923
1024
  break;
924
1025
  }
925
1026
  case 'not-empty': {
926
- enum3 = 25;
1027
+ enum4 = 25;
927
1028
  break;
928
1029
  }
929
1030
  case 'not-recoverable': {
930
- enum3 = 26;
1031
+ enum4 = 26;
931
1032
  break;
932
1033
  }
933
1034
  case 'unsupported': {
934
- enum3 = 27;
1035
+ enum4 = 27;
935
1036
  break;
936
1037
  }
937
1038
  case 'no-tty': {
938
- enum3 = 28;
1039
+ enum4 = 28;
939
1040
  break;
940
1041
  }
941
1042
  case 'no-such-device': {
942
- enum3 = 29;
1043
+ enum4 = 29;
943
1044
  break;
944
1045
  }
945
1046
  case 'overflow': {
946
- enum3 = 30;
1047
+ enum4 = 30;
947
1048
  break;
948
1049
  }
949
1050
  case 'not-permitted': {
950
- enum3 = 31;
1051
+ enum4 = 31;
951
1052
  break;
952
1053
  }
953
1054
  case 'pipe': {
954
- enum3 = 32;
1055
+ enum4 = 32;
955
1056
  break;
956
1057
  }
957
1058
  case 'read-only': {
958
- enum3 = 33;
1059
+ enum4 = 33;
959
1060
  break;
960
1061
  }
961
1062
  case 'invalid-seek': {
962
- enum3 = 34;
1063
+ enum4 = 34;
963
1064
  break;
964
1065
  }
965
1066
  case 'text-file-busy': {
966
- enum3 = 35;
1067
+ enum4 = 35;
967
1068
  break;
968
1069
  }
969
1070
  case 'cross-device': {
970
- enum3 = 36;
1071
+ enum4 = 36;
971
1072
  break;
972
1073
  }
973
1074
  default: {
@@ -975,10 +1076,10 @@ function trampoline15(arg0, arg1) {
975
1076
  console.error(e);
976
1077
  }
977
1078
 
978
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
1079
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
979
1080
  }
980
1081
  }
981
- dataView(memory0).setInt8(arg1 + 1, enum3, true);
1082
+ dataView(memory0).setInt8(arg1 + 1, enum4, true);
982
1083
  break;
983
1084
  }
984
1085
  default: {
@@ -989,249 +1090,256 @@ function trampoline15(arg0, arg1) {
989
1090
 
990
1091
  function trampoline16(arg0, arg1) {
991
1092
  var handle1 = arg0;
992
- var rsc0 = handleTable5.get(handle1).rep;
1093
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1094
+ var rsc0 = captureTable5.get(rep2);
1095
+ if (!rsc0) {
1096
+ rsc0 = Object.create(Descriptor.prototype);
1097
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1098
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1099
+ }
993
1100
  let ret;
994
1101
  try {
995
- ret = { tag: 'ok', val: Descriptor.prototype.stat.call(rsc0) };
1102
+ ret = { tag: 'ok', val: rsc0.stat()};
996
1103
  } catch (e) {
997
1104
  ret = { tag: 'err', val: getErrorPayload(e) };
998
1105
  }
999
- var variant11 = ret;
1000
- switch (variant11.tag) {
1106
+ rsc0[symbolRscHandle] = null;
1107
+ var variant12 = ret;
1108
+ switch (variant12.tag) {
1001
1109
  case 'ok': {
1002
- const e = variant11.val;
1110
+ const e = variant12.val;
1003
1111
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1004
- var {type: v2_0, linkCount: v2_1, size: v2_2, dataAccessTimestamp: v2_3, dataModificationTimestamp: v2_4, statusChangeTimestamp: v2_5 } = e;
1005
- var val3 = v2_0;
1006
- let enum3;
1007
- switch (val3) {
1112
+ var {type: v3_0, linkCount: v3_1, size: v3_2, dataAccessTimestamp: v3_3, dataModificationTimestamp: v3_4, statusChangeTimestamp: v3_5 } = e;
1113
+ var val4 = v3_0;
1114
+ let enum4;
1115
+ switch (val4) {
1008
1116
  case 'unknown': {
1009
- enum3 = 0;
1117
+ enum4 = 0;
1010
1118
  break;
1011
1119
  }
1012
1120
  case 'block-device': {
1013
- enum3 = 1;
1121
+ enum4 = 1;
1014
1122
  break;
1015
1123
  }
1016
1124
  case 'character-device': {
1017
- enum3 = 2;
1125
+ enum4 = 2;
1018
1126
  break;
1019
1127
  }
1020
1128
  case 'directory': {
1021
- enum3 = 3;
1129
+ enum4 = 3;
1022
1130
  break;
1023
1131
  }
1024
1132
  case 'fifo': {
1025
- enum3 = 4;
1133
+ enum4 = 4;
1026
1134
  break;
1027
1135
  }
1028
1136
  case 'symbolic-link': {
1029
- enum3 = 5;
1137
+ enum4 = 5;
1030
1138
  break;
1031
1139
  }
1032
1140
  case 'regular-file': {
1033
- enum3 = 6;
1141
+ enum4 = 6;
1034
1142
  break;
1035
1143
  }
1036
1144
  case 'socket': {
1037
- enum3 = 7;
1145
+ enum4 = 7;
1038
1146
  break;
1039
1147
  }
1040
1148
  default: {
1041
- if ((v2_0) instanceof Error) {
1042
- console.error(v2_0);
1149
+ if ((v3_0) instanceof Error) {
1150
+ console.error(v3_0);
1043
1151
  }
1044
1152
 
1045
- throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`);
1153
+ throw new TypeError(`"${val4}" is not one of the cases of descriptor-type`);
1046
1154
  }
1047
1155
  }
1048
- dataView(memory0).setInt8(arg1 + 8, enum3, true);
1049
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v2_1), true);
1050
- dataView(memory0).setBigInt64(arg1 + 24, toUint64(v2_2), true);
1051
- var variant5 = v2_3;
1052
- if (variant5 === null || variant5=== undefined) {
1156
+ dataView(memory0).setInt8(arg1 + 8, enum4, true);
1157
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true);
1158
+ dataView(memory0).setBigInt64(arg1 + 24, toUint64(v3_2), true);
1159
+ var variant6 = v3_3;
1160
+ if (variant6 === null || variant6=== undefined) {
1053
1161
  dataView(memory0).setInt8(arg1 + 32, 0, true);
1054
1162
  } else {
1055
- const e = variant5;
1163
+ const e = variant6;
1056
1164
  dataView(memory0).setInt8(arg1 + 32, 1, true);
1057
- var {seconds: v4_0, nanoseconds: v4_1 } = e;
1058
- dataView(memory0).setBigInt64(arg1 + 40, toUint64(v4_0), true);
1059
- dataView(memory0).setInt32(arg1 + 48, toUint32(v4_1), true);
1165
+ var {seconds: v5_0, nanoseconds: v5_1 } = e;
1166
+ dataView(memory0).setBigInt64(arg1 + 40, toUint64(v5_0), true);
1167
+ dataView(memory0).setInt32(arg1 + 48, toUint32(v5_1), true);
1060
1168
  }
1061
- var variant7 = v2_4;
1062
- if (variant7 === null || variant7=== undefined) {
1169
+ var variant8 = v3_4;
1170
+ if (variant8 === null || variant8=== undefined) {
1063
1171
  dataView(memory0).setInt8(arg1 + 56, 0, true);
1064
1172
  } else {
1065
- const e = variant7;
1173
+ const e = variant8;
1066
1174
  dataView(memory0).setInt8(arg1 + 56, 1, true);
1067
- var {seconds: v6_0, nanoseconds: v6_1 } = e;
1068
- dataView(memory0).setBigInt64(arg1 + 64, toUint64(v6_0), true);
1069
- dataView(memory0).setInt32(arg1 + 72, toUint32(v6_1), true);
1175
+ var {seconds: v7_0, nanoseconds: v7_1 } = e;
1176
+ dataView(memory0).setBigInt64(arg1 + 64, toUint64(v7_0), true);
1177
+ dataView(memory0).setInt32(arg1 + 72, toUint32(v7_1), true);
1070
1178
  }
1071
- var variant9 = v2_5;
1072
- if (variant9 === null || variant9=== undefined) {
1179
+ var variant10 = v3_5;
1180
+ if (variant10 === null || variant10=== undefined) {
1073
1181
  dataView(memory0).setInt8(arg1 + 80, 0, true);
1074
1182
  } else {
1075
- const e = variant9;
1183
+ const e = variant10;
1076
1184
  dataView(memory0).setInt8(arg1 + 80, 1, true);
1077
- var {seconds: v8_0, nanoseconds: v8_1 } = e;
1078
- dataView(memory0).setBigInt64(arg1 + 88, toUint64(v8_0), true);
1079
- dataView(memory0).setInt32(arg1 + 96, toUint32(v8_1), true);
1185
+ var {seconds: v9_0, nanoseconds: v9_1 } = e;
1186
+ dataView(memory0).setBigInt64(arg1 + 88, toUint64(v9_0), true);
1187
+ dataView(memory0).setInt32(arg1 + 96, toUint32(v9_1), true);
1080
1188
  }
1081
1189
  break;
1082
1190
  }
1083
1191
  case 'err': {
1084
- const e = variant11.val;
1192
+ const e = variant12.val;
1085
1193
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1086
- var val10 = e;
1087
- let enum10;
1088
- switch (val10) {
1194
+ var val11 = e;
1195
+ let enum11;
1196
+ switch (val11) {
1089
1197
  case 'access': {
1090
- enum10 = 0;
1198
+ enum11 = 0;
1091
1199
  break;
1092
1200
  }
1093
1201
  case 'would-block': {
1094
- enum10 = 1;
1202
+ enum11 = 1;
1095
1203
  break;
1096
1204
  }
1097
1205
  case 'already': {
1098
- enum10 = 2;
1206
+ enum11 = 2;
1099
1207
  break;
1100
1208
  }
1101
1209
  case 'bad-descriptor': {
1102
- enum10 = 3;
1210
+ enum11 = 3;
1103
1211
  break;
1104
1212
  }
1105
1213
  case 'busy': {
1106
- enum10 = 4;
1214
+ enum11 = 4;
1107
1215
  break;
1108
1216
  }
1109
1217
  case 'deadlock': {
1110
- enum10 = 5;
1218
+ enum11 = 5;
1111
1219
  break;
1112
1220
  }
1113
1221
  case 'quota': {
1114
- enum10 = 6;
1222
+ enum11 = 6;
1115
1223
  break;
1116
1224
  }
1117
1225
  case 'exist': {
1118
- enum10 = 7;
1226
+ enum11 = 7;
1119
1227
  break;
1120
1228
  }
1121
1229
  case 'file-too-large': {
1122
- enum10 = 8;
1230
+ enum11 = 8;
1123
1231
  break;
1124
1232
  }
1125
1233
  case 'illegal-byte-sequence': {
1126
- enum10 = 9;
1234
+ enum11 = 9;
1127
1235
  break;
1128
1236
  }
1129
1237
  case 'in-progress': {
1130
- enum10 = 10;
1238
+ enum11 = 10;
1131
1239
  break;
1132
1240
  }
1133
1241
  case 'interrupted': {
1134
- enum10 = 11;
1242
+ enum11 = 11;
1135
1243
  break;
1136
1244
  }
1137
1245
  case 'invalid': {
1138
- enum10 = 12;
1246
+ enum11 = 12;
1139
1247
  break;
1140
1248
  }
1141
1249
  case 'io': {
1142
- enum10 = 13;
1250
+ enum11 = 13;
1143
1251
  break;
1144
1252
  }
1145
1253
  case 'is-directory': {
1146
- enum10 = 14;
1254
+ enum11 = 14;
1147
1255
  break;
1148
1256
  }
1149
1257
  case 'loop': {
1150
- enum10 = 15;
1258
+ enum11 = 15;
1151
1259
  break;
1152
1260
  }
1153
1261
  case 'too-many-links': {
1154
- enum10 = 16;
1262
+ enum11 = 16;
1155
1263
  break;
1156
1264
  }
1157
1265
  case 'message-size': {
1158
- enum10 = 17;
1266
+ enum11 = 17;
1159
1267
  break;
1160
1268
  }
1161
1269
  case 'name-too-long': {
1162
- enum10 = 18;
1270
+ enum11 = 18;
1163
1271
  break;
1164
1272
  }
1165
1273
  case 'no-device': {
1166
- enum10 = 19;
1274
+ enum11 = 19;
1167
1275
  break;
1168
1276
  }
1169
1277
  case 'no-entry': {
1170
- enum10 = 20;
1278
+ enum11 = 20;
1171
1279
  break;
1172
1280
  }
1173
1281
  case 'no-lock': {
1174
- enum10 = 21;
1282
+ enum11 = 21;
1175
1283
  break;
1176
1284
  }
1177
1285
  case 'insufficient-memory': {
1178
- enum10 = 22;
1286
+ enum11 = 22;
1179
1287
  break;
1180
1288
  }
1181
1289
  case 'insufficient-space': {
1182
- enum10 = 23;
1290
+ enum11 = 23;
1183
1291
  break;
1184
1292
  }
1185
1293
  case 'not-directory': {
1186
- enum10 = 24;
1294
+ enum11 = 24;
1187
1295
  break;
1188
1296
  }
1189
1297
  case 'not-empty': {
1190
- enum10 = 25;
1298
+ enum11 = 25;
1191
1299
  break;
1192
1300
  }
1193
1301
  case 'not-recoverable': {
1194
- enum10 = 26;
1302
+ enum11 = 26;
1195
1303
  break;
1196
1304
  }
1197
1305
  case 'unsupported': {
1198
- enum10 = 27;
1306
+ enum11 = 27;
1199
1307
  break;
1200
1308
  }
1201
1309
  case 'no-tty': {
1202
- enum10 = 28;
1310
+ enum11 = 28;
1203
1311
  break;
1204
1312
  }
1205
1313
  case 'no-such-device': {
1206
- enum10 = 29;
1314
+ enum11 = 29;
1207
1315
  break;
1208
1316
  }
1209
1317
  case 'overflow': {
1210
- enum10 = 30;
1318
+ enum11 = 30;
1211
1319
  break;
1212
1320
  }
1213
1321
  case 'not-permitted': {
1214
- enum10 = 31;
1322
+ enum11 = 31;
1215
1323
  break;
1216
1324
  }
1217
1325
  case 'pipe': {
1218
- enum10 = 32;
1326
+ enum11 = 32;
1219
1327
  break;
1220
1328
  }
1221
1329
  case 'read-only': {
1222
- enum10 = 33;
1330
+ enum11 = 33;
1223
1331
  break;
1224
1332
  }
1225
1333
  case 'invalid-seek': {
1226
- enum10 = 34;
1334
+ enum11 = 34;
1227
1335
  break;
1228
1336
  }
1229
1337
  case 'text-file-busy': {
1230
- enum10 = 35;
1338
+ enum11 = 35;
1231
1339
  break;
1232
1340
  }
1233
1341
  case 'cross-device': {
1234
- enum10 = 36;
1342
+ enum11 = 36;
1235
1343
  break;
1236
1344
  }
1237
1345
  default: {
@@ -1239,10 +1347,10 @@ function trampoline16(arg0, arg1) {
1239
1347
  console.error(e);
1240
1348
  }
1241
1349
 
1242
- throw new TypeError(`"${val10}" is not one of the cases of error-code`);
1350
+ throw new TypeError(`"${val11}" is not one of the cases of error-code`);
1243
1351
  }
1244
1352
  }
1245
- dataView(memory0).setInt8(arg1 + 8, enum10, true);
1353
+ dataView(memory0).setInt8(arg1 + 8, enum11, true);
1246
1354
  break;
1247
1355
  }
1248
1356
  default: {
@@ -1253,20 +1361,26 @@ function trampoline16(arg0, arg1) {
1253
1361
 
1254
1362
  function trampoline17(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1255
1363
  var handle1 = arg0;
1256
- var rsc0 = handleTable5.get(handle1).rep;
1364
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1365
+ var rsc0 = captureTable5.get(rep2);
1366
+ if (!rsc0) {
1367
+ rsc0 = Object.create(Descriptor.prototype);
1368
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1369
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1370
+ }
1257
1371
  if ((arg1 & 4294967294) !== 0) {
1258
1372
  throw new TypeError('flags have extraneous bits set');
1259
1373
  }
1260
- var flags2 = {
1374
+ var flags3 = {
1261
1375
  symlinkFollow: Boolean(arg1 & 1),
1262
1376
  };
1263
- var ptr3 = arg2;
1264
- var len3 = arg3;
1265
- var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
1377
+ var ptr4 = arg2;
1378
+ var len4 = arg3;
1379
+ var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4));
1266
1380
  if ((arg4 & 4294967280) !== 0) {
1267
1381
  throw new TypeError('flags have extraneous bits set');
1268
1382
  }
1269
- var flags4 = {
1383
+ var flags5 = {
1270
1384
  create: Boolean(arg4 & 1),
1271
1385
  directory: Boolean(arg4 & 2),
1272
1386
  exclusive: Boolean(arg4 & 4),
@@ -1275,7 +1389,7 @@ function trampoline17(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1275
1389
  if ((arg5 & 4294967232) !== 0) {
1276
1390
  throw new TypeError('flags have extraneous bits set');
1277
1391
  }
1278
- var flags5 = {
1392
+ var flags6 = {
1279
1393
  read: Boolean(arg5 & 1),
1280
1394
  write: Boolean(arg5 & 2),
1281
1395
  fileIntegritySync: Boolean(arg5 & 4),
@@ -1285,175 +1399,180 @@ function trampoline17(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1285
1399
  };
1286
1400
  let ret;
1287
1401
  try {
1288
- ret = { tag: 'ok', val: Descriptor.prototype.openAt.call(rsc0, flags2, result3, flags4, flags5) };
1402
+ ret = { tag: 'ok', val: rsc0.openAt(flags3, result4, flags5, flags6)};
1289
1403
  } catch (e) {
1290
1404
  ret = { tag: 'err', val: getErrorPayload(e) };
1291
1405
  }
1292
- var variant8 = ret;
1293
- switch (variant8.tag) {
1406
+ rsc0[symbolRscHandle] = null;
1407
+ var variant9 = ret;
1408
+ switch (variant9.tag) {
1294
1409
  case 'ok': {
1295
- const e = variant8.val;
1410
+ const e = variant9.val;
1296
1411
  dataView(memory0).setInt8(arg6 + 0, 0, true);
1297
1412
  if (!(e instanceof Descriptor)) {
1298
- throw new Error('Resource error: Not a valid "Descriptor" resource.');
1413
+ throw new TypeError('Resource error: Not a valid "Descriptor" resource.');
1414
+ }
1415
+ var handle7 = e[symbolRscHandle];
1416
+ if (!handle7) {
1417
+ const rep = e[symbolRscRep] || ++captureCnt5;
1418
+ captureTable5.set(rep, e);
1419
+ handle7 = rscTableCreateOwn(handleTable5, rep);
1299
1420
  }
1300
- var handle6 = handleCnt5++;
1301
- handleTable5.set(handle6, { rep: e, own: true });
1302
- dataView(memory0).setInt32(arg6 + 4, handle6, true);
1421
+ dataView(memory0).setInt32(arg6 + 4, handle7, true);
1303
1422
  break;
1304
1423
  }
1305
1424
  case 'err': {
1306
- const e = variant8.val;
1425
+ const e = variant9.val;
1307
1426
  dataView(memory0).setInt8(arg6 + 0, 1, true);
1308
- var val7 = e;
1309
- let enum7;
1310
- switch (val7) {
1427
+ var val8 = e;
1428
+ let enum8;
1429
+ switch (val8) {
1311
1430
  case 'access': {
1312
- enum7 = 0;
1431
+ enum8 = 0;
1313
1432
  break;
1314
1433
  }
1315
1434
  case 'would-block': {
1316
- enum7 = 1;
1435
+ enum8 = 1;
1317
1436
  break;
1318
1437
  }
1319
1438
  case 'already': {
1320
- enum7 = 2;
1439
+ enum8 = 2;
1321
1440
  break;
1322
1441
  }
1323
1442
  case 'bad-descriptor': {
1324
- enum7 = 3;
1443
+ enum8 = 3;
1325
1444
  break;
1326
1445
  }
1327
1446
  case 'busy': {
1328
- enum7 = 4;
1447
+ enum8 = 4;
1329
1448
  break;
1330
1449
  }
1331
1450
  case 'deadlock': {
1332
- enum7 = 5;
1451
+ enum8 = 5;
1333
1452
  break;
1334
1453
  }
1335
1454
  case 'quota': {
1336
- enum7 = 6;
1455
+ enum8 = 6;
1337
1456
  break;
1338
1457
  }
1339
1458
  case 'exist': {
1340
- enum7 = 7;
1459
+ enum8 = 7;
1341
1460
  break;
1342
1461
  }
1343
1462
  case 'file-too-large': {
1344
- enum7 = 8;
1463
+ enum8 = 8;
1345
1464
  break;
1346
1465
  }
1347
1466
  case 'illegal-byte-sequence': {
1348
- enum7 = 9;
1467
+ enum8 = 9;
1349
1468
  break;
1350
1469
  }
1351
1470
  case 'in-progress': {
1352
- enum7 = 10;
1471
+ enum8 = 10;
1353
1472
  break;
1354
1473
  }
1355
1474
  case 'interrupted': {
1356
- enum7 = 11;
1475
+ enum8 = 11;
1357
1476
  break;
1358
1477
  }
1359
1478
  case 'invalid': {
1360
- enum7 = 12;
1479
+ enum8 = 12;
1361
1480
  break;
1362
1481
  }
1363
1482
  case 'io': {
1364
- enum7 = 13;
1483
+ enum8 = 13;
1365
1484
  break;
1366
1485
  }
1367
1486
  case 'is-directory': {
1368
- enum7 = 14;
1487
+ enum8 = 14;
1369
1488
  break;
1370
1489
  }
1371
1490
  case 'loop': {
1372
- enum7 = 15;
1491
+ enum8 = 15;
1373
1492
  break;
1374
1493
  }
1375
1494
  case 'too-many-links': {
1376
- enum7 = 16;
1495
+ enum8 = 16;
1377
1496
  break;
1378
1497
  }
1379
1498
  case 'message-size': {
1380
- enum7 = 17;
1499
+ enum8 = 17;
1381
1500
  break;
1382
1501
  }
1383
1502
  case 'name-too-long': {
1384
- enum7 = 18;
1503
+ enum8 = 18;
1385
1504
  break;
1386
1505
  }
1387
1506
  case 'no-device': {
1388
- enum7 = 19;
1507
+ enum8 = 19;
1389
1508
  break;
1390
1509
  }
1391
1510
  case 'no-entry': {
1392
- enum7 = 20;
1511
+ enum8 = 20;
1393
1512
  break;
1394
1513
  }
1395
1514
  case 'no-lock': {
1396
- enum7 = 21;
1515
+ enum8 = 21;
1397
1516
  break;
1398
1517
  }
1399
1518
  case 'insufficient-memory': {
1400
- enum7 = 22;
1519
+ enum8 = 22;
1401
1520
  break;
1402
1521
  }
1403
1522
  case 'insufficient-space': {
1404
- enum7 = 23;
1523
+ enum8 = 23;
1405
1524
  break;
1406
1525
  }
1407
1526
  case 'not-directory': {
1408
- enum7 = 24;
1527
+ enum8 = 24;
1409
1528
  break;
1410
1529
  }
1411
1530
  case 'not-empty': {
1412
- enum7 = 25;
1531
+ enum8 = 25;
1413
1532
  break;
1414
1533
  }
1415
1534
  case 'not-recoverable': {
1416
- enum7 = 26;
1535
+ enum8 = 26;
1417
1536
  break;
1418
1537
  }
1419
1538
  case 'unsupported': {
1420
- enum7 = 27;
1539
+ enum8 = 27;
1421
1540
  break;
1422
1541
  }
1423
1542
  case 'no-tty': {
1424
- enum7 = 28;
1543
+ enum8 = 28;
1425
1544
  break;
1426
1545
  }
1427
1546
  case 'no-such-device': {
1428
- enum7 = 29;
1547
+ enum8 = 29;
1429
1548
  break;
1430
1549
  }
1431
1550
  case 'overflow': {
1432
- enum7 = 30;
1551
+ enum8 = 30;
1433
1552
  break;
1434
1553
  }
1435
1554
  case 'not-permitted': {
1436
- enum7 = 31;
1555
+ enum8 = 31;
1437
1556
  break;
1438
1557
  }
1439
1558
  case 'pipe': {
1440
- enum7 = 32;
1559
+ enum8 = 32;
1441
1560
  break;
1442
1561
  }
1443
1562
  case 'read-only': {
1444
- enum7 = 33;
1563
+ enum8 = 33;
1445
1564
  break;
1446
1565
  }
1447
1566
  case 'invalid-seek': {
1448
- enum7 = 34;
1567
+ enum8 = 34;
1449
1568
  break;
1450
1569
  }
1451
1570
  case 'text-file-busy': {
1452
- enum7 = 35;
1571
+ enum8 = 35;
1453
1572
  break;
1454
1573
  }
1455
1574
  case 'cross-device': {
1456
- enum7 = 36;
1575
+ enum8 = 36;
1457
1576
  break;
1458
1577
  }
1459
1578
  default: {
@@ -1461,10 +1580,10 @@ function trampoline17(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1461
1580
  console.error(e);
1462
1581
  }
1463
1582
 
1464
- throw new TypeError(`"${val7}" is not one of the cases of error-code`);
1583
+ throw new TypeError(`"${val8}" is not one of the cases of error-code`);
1465
1584
  }
1466
1585
  }
1467
- dataView(memory0).setInt8(arg6 + 4, enum7, true);
1586
+ dataView(memory0).setInt8(arg6 + 4, enum8, true);
1468
1587
  break;
1469
1588
  }
1470
1589
  default: {
@@ -1475,175 +1594,182 @@ function trampoline17(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1475
1594
 
1476
1595
  function trampoline18(arg0, arg1) {
1477
1596
  var handle1 = arg0;
1478
- var rsc0 = handleTable5.get(handle1).rep;
1597
+ var rep2 = handleTable5[(handle1 << 1) + 1] & ~T_FLAG;
1598
+ var rsc0 = captureTable5.get(rep2);
1599
+ if (!rsc0) {
1600
+ rsc0 = Object.create(Descriptor.prototype);
1601
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1602
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1603
+ }
1479
1604
  let ret;
1480
1605
  try {
1481
- ret = { tag: 'ok', val: Descriptor.prototype.metadataHash.call(rsc0) };
1606
+ ret = { tag: 'ok', val: rsc0.metadataHash()};
1482
1607
  } catch (e) {
1483
1608
  ret = { tag: 'err', val: getErrorPayload(e) };
1484
1609
  }
1485
- var variant4 = ret;
1486
- switch (variant4.tag) {
1610
+ rsc0[symbolRscHandle] = null;
1611
+ var variant5 = ret;
1612
+ switch (variant5.tag) {
1487
1613
  case 'ok': {
1488
- const e = variant4.val;
1614
+ const e = variant5.val;
1489
1615
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1490
- var {lower: v2_0, upper: v2_1 } = e;
1491
- dataView(memory0).setBigInt64(arg1 + 8, toUint64(v2_0), true);
1492
- dataView(memory0).setBigInt64(arg1 + 16, toUint64(v2_1), true);
1616
+ var {lower: v3_0, upper: v3_1 } = e;
1617
+ dataView(memory0).setBigInt64(arg1 + 8, toUint64(v3_0), true);
1618
+ dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true);
1493
1619
  break;
1494
1620
  }
1495
1621
  case 'err': {
1496
- const e = variant4.val;
1622
+ const e = variant5.val;
1497
1623
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1498
- var val3 = e;
1499
- let enum3;
1500
- switch (val3) {
1624
+ var val4 = e;
1625
+ let enum4;
1626
+ switch (val4) {
1501
1627
  case 'access': {
1502
- enum3 = 0;
1628
+ enum4 = 0;
1503
1629
  break;
1504
1630
  }
1505
1631
  case 'would-block': {
1506
- enum3 = 1;
1632
+ enum4 = 1;
1507
1633
  break;
1508
1634
  }
1509
1635
  case 'already': {
1510
- enum3 = 2;
1636
+ enum4 = 2;
1511
1637
  break;
1512
1638
  }
1513
1639
  case 'bad-descriptor': {
1514
- enum3 = 3;
1640
+ enum4 = 3;
1515
1641
  break;
1516
1642
  }
1517
1643
  case 'busy': {
1518
- enum3 = 4;
1644
+ enum4 = 4;
1519
1645
  break;
1520
1646
  }
1521
1647
  case 'deadlock': {
1522
- enum3 = 5;
1648
+ enum4 = 5;
1523
1649
  break;
1524
1650
  }
1525
1651
  case 'quota': {
1526
- enum3 = 6;
1652
+ enum4 = 6;
1527
1653
  break;
1528
1654
  }
1529
1655
  case 'exist': {
1530
- enum3 = 7;
1656
+ enum4 = 7;
1531
1657
  break;
1532
1658
  }
1533
1659
  case 'file-too-large': {
1534
- enum3 = 8;
1660
+ enum4 = 8;
1535
1661
  break;
1536
1662
  }
1537
1663
  case 'illegal-byte-sequence': {
1538
- enum3 = 9;
1664
+ enum4 = 9;
1539
1665
  break;
1540
1666
  }
1541
1667
  case 'in-progress': {
1542
- enum3 = 10;
1668
+ enum4 = 10;
1543
1669
  break;
1544
1670
  }
1545
1671
  case 'interrupted': {
1546
- enum3 = 11;
1672
+ enum4 = 11;
1547
1673
  break;
1548
1674
  }
1549
1675
  case 'invalid': {
1550
- enum3 = 12;
1676
+ enum4 = 12;
1551
1677
  break;
1552
1678
  }
1553
1679
  case 'io': {
1554
- enum3 = 13;
1680
+ enum4 = 13;
1555
1681
  break;
1556
1682
  }
1557
1683
  case 'is-directory': {
1558
- enum3 = 14;
1684
+ enum4 = 14;
1559
1685
  break;
1560
1686
  }
1561
1687
  case 'loop': {
1562
- enum3 = 15;
1688
+ enum4 = 15;
1563
1689
  break;
1564
1690
  }
1565
1691
  case 'too-many-links': {
1566
- enum3 = 16;
1692
+ enum4 = 16;
1567
1693
  break;
1568
1694
  }
1569
1695
  case 'message-size': {
1570
- enum3 = 17;
1696
+ enum4 = 17;
1571
1697
  break;
1572
1698
  }
1573
1699
  case 'name-too-long': {
1574
- enum3 = 18;
1700
+ enum4 = 18;
1575
1701
  break;
1576
1702
  }
1577
1703
  case 'no-device': {
1578
- enum3 = 19;
1704
+ enum4 = 19;
1579
1705
  break;
1580
1706
  }
1581
1707
  case 'no-entry': {
1582
- enum3 = 20;
1708
+ enum4 = 20;
1583
1709
  break;
1584
1710
  }
1585
1711
  case 'no-lock': {
1586
- enum3 = 21;
1712
+ enum4 = 21;
1587
1713
  break;
1588
1714
  }
1589
1715
  case 'insufficient-memory': {
1590
- enum3 = 22;
1716
+ enum4 = 22;
1591
1717
  break;
1592
1718
  }
1593
1719
  case 'insufficient-space': {
1594
- enum3 = 23;
1720
+ enum4 = 23;
1595
1721
  break;
1596
1722
  }
1597
1723
  case 'not-directory': {
1598
- enum3 = 24;
1724
+ enum4 = 24;
1599
1725
  break;
1600
1726
  }
1601
1727
  case 'not-empty': {
1602
- enum3 = 25;
1728
+ enum4 = 25;
1603
1729
  break;
1604
1730
  }
1605
1731
  case 'not-recoverable': {
1606
- enum3 = 26;
1732
+ enum4 = 26;
1607
1733
  break;
1608
1734
  }
1609
1735
  case 'unsupported': {
1610
- enum3 = 27;
1736
+ enum4 = 27;
1611
1737
  break;
1612
1738
  }
1613
1739
  case 'no-tty': {
1614
- enum3 = 28;
1740
+ enum4 = 28;
1615
1741
  break;
1616
1742
  }
1617
1743
  case 'no-such-device': {
1618
- enum3 = 29;
1744
+ enum4 = 29;
1619
1745
  break;
1620
1746
  }
1621
1747
  case 'overflow': {
1622
- enum3 = 30;
1748
+ enum4 = 30;
1623
1749
  break;
1624
1750
  }
1625
1751
  case 'not-permitted': {
1626
- enum3 = 31;
1752
+ enum4 = 31;
1627
1753
  break;
1628
1754
  }
1629
1755
  case 'pipe': {
1630
- enum3 = 32;
1756
+ enum4 = 32;
1631
1757
  break;
1632
1758
  }
1633
1759
  case 'read-only': {
1634
- enum3 = 33;
1760
+ enum4 = 33;
1635
1761
  break;
1636
1762
  }
1637
1763
  case 'invalid-seek': {
1638
- enum3 = 34;
1764
+ enum4 = 34;
1639
1765
  break;
1640
1766
  }
1641
1767
  case 'text-file-busy': {
1642
- enum3 = 35;
1768
+ enum4 = 35;
1643
1769
  break;
1644
1770
  }
1645
1771
  case 'cross-device': {
1646
- enum3 = 36;
1772
+ enum4 = 36;
1647
1773
  break;
1648
1774
  }
1649
1775
  default: {
@@ -1651,10 +1777,10 @@ function trampoline18(arg0, arg1) {
1651
1777
  console.error(e);
1652
1778
  }
1653
1779
 
1654
- throw new TypeError(`"${val3}" is not one of the cases of error-code`);
1780
+ throw new TypeError(`"${val4}" is not one of the cases of error-code`);
1655
1781
  }
1656
1782
  }
1657
- dataView(memory0).setInt8(arg1 + 8, enum3, true);
1783
+ dataView(memory0).setInt8(arg1 + 8, enum4, true);
1658
1784
  break;
1659
1785
  }
1660
1786
  default: {
@@ -1662,166 +1788,177 @@ function trampoline18(arg0, arg1) {
1662
1788
  }
1663
1789
  }
1664
1790
  }
1791
+ const handleTable0 = [T_FLAG, 0];
1792
+ const captureTable0= new Map();
1793
+ let captureCnt0 = 0;
1794
+ handleTables[0] = handleTable0;
1665
1795
 
1666
1796
  function trampoline19(arg0, arg1) {
1667
1797
  var handle1 = arg0;
1668
- var rsc0 = handleTable0.get(handle1).rep;
1798
+ var rep2 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
1799
+ var rsc0 = captureTable0.get(rep2);
1800
+ if (!rsc0) {
1801
+ rsc0 = Object.create(Error$1.prototype);
1802
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1803
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1804
+ }
1669
1805
  const ret = filesystemErrorCode(rsc0);
1670
- var variant3 = ret;
1671
- if (variant3 === null || variant3=== undefined) {
1806
+ rsc0[symbolRscHandle] = null;
1807
+ var variant4 = ret;
1808
+ if (variant4 === null || variant4=== undefined) {
1672
1809
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1673
1810
  } else {
1674
- const e = variant3;
1811
+ const e = variant4;
1675
1812
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1676
- var val2 = e;
1677
- let enum2;
1678
- switch (val2) {
1813
+ var val3 = e;
1814
+ let enum3;
1815
+ switch (val3) {
1679
1816
  case 'access': {
1680
- enum2 = 0;
1817
+ enum3 = 0;
1681
1818
  break;
1682
1819
  }
1683
1820
  case 'would-block': {
1684
- enum2 = 1;
1821
+ enum3 = 1;
1685
1822
  break;
1686
1823
  }
1687
1824
  case 'already': {
1688
- enum2 = 2;
1825
+ enum3 = 2;
1689
1826
  break;
1690
1827
  }
1691
1828
  case 'bad-descriptor': {
1692
- enum2 = 3;
1829
+ enum3 = 3;
1693
1830
  break;
1694
1831
  }
1695
1832
  case 'busy': {
1696
- enum2 = 4;
1833
+ enum3 = 4;
1697
1834
  break;
1698
1835
  }
1699
1836
  case 'deadlock': {
1700
- enum2 = 5;
1837
+ enum3 = 5;
1701
1838
  break;
1702
1839
  }
1703
1840
  case 'quota': {
1704
- enum2 = 6;
1841
+ enum3 = 6;
1705
1842
  break;
1706
1843
  }
1707
1844
  case 'exist': {
1708
- enum2 = 7;
1845
+ enum3 = 7;
1709
1846
  break;
1710
1847
  }
1711
1848
  case 'file-too-large': {
1712
- enum2 = 8;
1849
+ enum3 = 8;
1713
1850
  break;
1714
1851
  }
1715
1852
  case 'illegal-byte-sequence': {
1716
- enum2 = 9;
1853
+ enum3 = 9;
1717
1854
  break;
1718
1855
  }
1719
1856
  case 'in-progress': {
1720
- enum2 = 10;
1857
+ enum3 = 10;
1721
1858
  break;
1722
1859
  }
1723
1860
  case 'interrupted': {
1724
- enum2 = 11;
1861
+ enum3 = 11;
1725
1862
  break;
1726
1863
  }
1727
1864
  case 'invalid': {
1728
- enum2 = 12;
1865
+ enum3 = 12;
1729
1866
  break;
1730
1867
  }
1731
1868
  case 'io': {
1732
- enum2 = 13;
1869
+ enum3 = 13;
1733
1870
  break;
1734
1871
  }
1735
1872
  case 'is-directory': {
1736
- enum2 = 14;
1873
+ enum3 = 14;
1737
1874
  break;
1738
1875
  }
1739
1876
  case 'loop': {
1740
- enum2 = 15;
1877
+ enum3 = 15;
1741
1878
  break;
1742
1879
  }
1743
1880
  case 'too-many-links': {
1744
- enum2 = 16;
1881
+ enum3 = 16;
1745
1882
  break;
1746
1883
  }
1747
1884
  case 'message-size': {
1748
- enum2 = 17;
1885
+ enum3 = 17;
1749
1886
  break;
1750
1887
  }
1751
1888
  case 'name-too-long': {
1752
- enum2 = 18;
1889
+ enum3 = 18;
1753
1890
  break;
1754
1891
  }
1755
1892
  case 'no-device': {
1756
- enum2 = 19;
1893
+ enum3 = 19;
1757
1894
  break;
1758
1895
  }
1759
1896
  case 'no-entry': {
1760
- enum2 = 20;
1897
+ enum3 = 20;
1761
1898
  break;
1762
1899
  }
1763
1900
  case 'no-lock': {
1764
- enum2 = 21;
1901
+ enum3 = 21;
1765
1902
  break;
1766
1903
  }
1767
1904
  case 'insufficient-memory': {
1768
- enum2 = 22;
1905
+ enum3 = 22;
1769
1906
  break;
1770
1907
  }
1771
1908
  case 'insufficient-space': {
1772
- enum2 = 23;
1909
+ enum3 = 23;
1773
1910
  break;
1774
1911
  }
1775
1912
  case 'not-directory': {
1776
- enum2 = 24;
1913
+ enum3 = 24;
1777
1914
  break;
1778
1915
  }
1779
1916
  case 'not-empty': {
1780
- enum2 = 25;
1917
+ enum3 = 25;
1781
1918
  break;
1782
1919
  }
1783
1920
  case 'not-recoverable': {
1784
- enum2 = 26;
1921
+ enum3 = 26;
1785
1922
  break;
1786
1923
  }
1787
1924
  case 'unsupported': {
1788
- enum2 = 27;
1925
+ enum3 = 27;
1789
1926
  break;
1790
1927
  }
1791
1928
  case 'no-tty': {
1792
- enum2 = 28;
1929
+ enum3 = 28;
1793
1930
  break;
1794
1931
  }
1795
1932
  case 'no-such-device': {
1796
- enum2 = 29;
1933
+ enum3 = 29;
1797
1934
  break;
1798
1935
  }
1799
1936
  case 'overflow': {
1800
- enum2 = 30;
1937
+ enum3 = 30;
1801
1938
  break;
1802
1939
  }
1803
1940
  case 'not-permitted': {
1804
- enum2 = 31;
1941
+ enum3 = 31;
1805
1942
  break;
1806
1943
  }
1807
1944
  case 'pipe': {
1808
- enum2 = 32;
1945
+ enum3 = 32;
1809
1946
  break;
1810
1947
  }
1811
1948
  case 'read-only': {
1812
- enum2 = 33;
1949
+ enum3 = 33;
1813
1950
  break;
1814
1951
  }
1815
1952
  case 'invalid-seek': {
1816
- enum2 = 34;
1953
+ enum3 = 34;
1817
1954
  break;
1818
1955
  }
1819
1956
  case 'text-file-busy': {
1820
- enum2 = 35;
1957
+ enum3 = 35;
1821
1958
  break;
1822
1959
  }
1823
1960
  case 'cross-device': {
1824
- enum2 = 36;
1961
+ enum3 = 36;
1825
1962
  break;
1826
1963
  }
1827
1964
  default: {
@@ -1829,50 +1966,61 @@ function trampoline19(arg0, arg1) {
1829
1966
  console.error(e);
1830
1967
  }
1831
1968
 
1832
- throw new TypeError(`"${val2}" is not one of the cases of error-code`);
1969
+ throw new TypeError(`"${val3}" is not one of the cases of error-code`);
1833
1970
  }
1834
1971
  }
1835
- dataView(memory0).setInt8(arg1 + 1, enum2, true);
1972
+ dataView(memory0).setInt8(arg1 + 1, enum3, true);
1836
1973
  }
1837
1974
  }
1838
1975
 
1839
1976
  function trampoline20(arg0, arg1, arg2) {
1840
1977
  var handle1 = arg0;
1841
- var rsc0 = handleTable1.get(handle1).rep;
1978
+ var rep2 = handleTable1[(handle1 << 1) + 1] & ~T_FLAG;
1979
+ var rsc0 = captureTable1.get(rep2);
1980
+ if (!rsc0) {
1981
+ rsc0 = Object.create(InputStream.prototype);
1982
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
1983
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
1984
+ }
1842
1985
  let ret;
1843
1986
  try {
1844
- ret = { tag: 'ok', val: InputStream.prototype.read.call(rsc0, BigInt.asUintN(64, arg1)) };
1987
+ ret = { tag: 'ok', val: rsc0.read(BigInt.asUintN(64, arg1))};
1845
1988
  } catch (e) {
1846
1989
  ret = { tag: 'err', val: getErrorPayload(e) };
1847
1990
  }
1848
- var variant5 = ret;
1849
- switch (variant5.tag) {
1991
+ rsc0[symbolRscHandle] = null;
1992
+ var variant6 = ret;
1993
+ switch (variant6.tag) {
1850
1994
  case 'ok': {
1851
- const e = variant5.val;
1995
+ const e = variant6.val;
1852
1996
  dataView(memory0).setInt8(arg2 + 0, 0, true);
1853
- var val2 = e;
1854
- var len2 = val2.byteLength;
1855
- var ptr2 = realloc0(0, 0, 1, len2 * 1);
1856
- var src2 = new Uint8Array(val2.buffer || val2, val2.byteOffset, len2 * 1);
1857
- (new Uint8Array(memory0.buffer, ptr2, len2 * 1)).set(src2);
1858
- dataView(memory0).setInt32(arg2 + 8, len2, true);
1859
- dataView(memory0).setInt32(arg2 + 4, ptr2, true);
1997
+ var val3 = e;
1998
+ var len3 = val3.byteLength;
1999
+ var ptr3 = realloc0(0, 0, 1, len3 * 1);
2000
+ var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1);
2001
+ (new Uint8Array(memory0.buffer, ptr3, len3 * 1)).set(src3);
2002
+ dataView(memory0).setInt32(arg2 + 8, len3, true);
2003
+ dataView(memory0).setInt32(arg2 + 4, ptr3, true);
1860
2004
  break;
1861
2005
  }
1862
2006
  case 'err': {
1863
- const e = variant5.val;
2007
+ const e = variant6.val;
1864
2008
  dataView(memory0).setInt8(arg2 + 0, 1, true);
1865
- var variant4 = e;
1866
- switch (variant4.tag) {
2009
+ var variant5 = e;
2010
+ switch (variant5.tag) {
1867
2011
  case 'last-operation-failed': {
1868
- const e = variant4.val;
2012
+ const e = variant5.val;
1869
2013
  dataView(memory0).setInt8(arg2 + 4, 0, true);
1870
2014
  if (!(e instanceof Error$1)) {
1871
- throw new Error('Resource error: Not a valid "Error" resource.');
2015
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2016
+ }
2017
+ var handle4 = e[symbolRscHandle];
2018
+ if (!handle4) {
2019
+ const rep = e[symbolRscRep] || ++captureCnt0;
2020
+ captureTable0.set(rep, e);
2021
+ handle4 = rscTableCreateOwn(handleTable0, rep);
1872
2022
  }
1873
- var handle3 = handleCnt0++;
1874
- handleTable0.set(handle3, { rep: e, own: true });
1875
- dataView(memory0).setInt32(arg2 + 8, handle3, true);
2023
+ dataView(memory0).setInt32(arg2 + 8, handle4, true);
1876
2024
  break;
1877
2025
  }
1878
2026
  case 'closed': {
@@ -1880,7 +2028,7 @@ function trampoline20(arg0, arg1, arg2) {
1880
2028
  break;
1881
2029
  }
1882
2030
  default: {
1883
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2031
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
1884
2032
  }
1885
2033
  }
1886
2034
  break;
@@ -1893,41 +2041,52 @@ function trampoline20(arg0, arg1, arg2) {
1893
2041
 
1894
2042
  function trampoline21(arg0, arg1, arg2) {
1895
2043
  var handle1 = arg0;
1896
- var rsc0 = handleTable1.get(handle1).rep;
2044
+ var rep2 = handleTable1[(handle1 << 1) + 1] & ~T_FLAG;
2045
+ var rsc0 = captureTable1.get(rep2);
2046
+ if (!rsc0) {
2047
+ rsc0 = Object.create(InputStream.prototype);
2048
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2049
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2050
+ }
1897
2051
  let ret;
1898
2052
  try {
1899
- ret = { tag: 'ok', val: InputStream.prototype.blockingRead.call(rsc0, BigInt.asUintN(64, arg1)) };
2053
+ ret = { tag: 'ok', val: rsc0.blockingRead(BigInt.asUintN(64, arg1))};
1900
2054
  } catch (e) {
1901
2055
  ret = { tag: 'err', val: getErrorPayload(e) };
1902
2056
  }
1903
- var variant5 = ret;
1904
- switch (variant5.tag) {
2057
+ rsc0[symbolRscHandle] = null;
2058
+ var variant6 = ret;
2059
+ switch (variant6.tag) {
1905
2060
  case 'ok': {
1906
- const e = variant5.val;
2061
+ const e = variant6.val;
1907
2062
  dataView(memory0).setInt8(arg2 + 0, 0, true);
1908
- var val2 = e;
1909
- var len2 = val2.byteLength;
1910
- var ptr2 = realloc0(0, 0, 1, len2 * 1);
1911
- var src2 = new Uint8Array(val2.buffer || val2, val2.byteOffset, len2 * 1);
1912
- (new Uint8Array(memory0.buffer, ptr2, len2 * 1)).set(src2);
1913
- dataView(memory0).setInt32(arg2 + 8, len2, true);
1914
- dataView(memory0).setInt32(arg2 + 4, ptr2, true);
2063
+ var val3 = e;
2064
+ var len3 = val3.byteLength;
2065
+ var ptr3 = realloc0(0, 0, 1, len3 * 1);
2066
+ var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1);
2067
+ (new Uint8Array(memory0.buffer, ptr3, len3 * 1)).set(src3);
2068
+ dataView(memory0).setInt32(arg2 + 8, len3, true);
2069
+ dataView(memory0).setInt32(arg2 + 4, ptr3, true);
1915
2070
  break;
1916
2071
  }
1917
2072
  case 'err': {
1918
- const e = variant5.val;
2073
+ const e = variant6.val;
1919
2074
  dataView(memory0).setInt8(arg2 + 0, 1, true);
1920
- var variant4 = e;
1921
- switch (variant4.tag) {
2075
+ var variant5 = e;
2076
+ switch (variant5.tag) {
1922
2077
  case 'last-operation-failed': {
1923
- const e = variant4.val;
2078
+ const e = variant5.val;
1924
2079
  dataView(memory0).setInt8(arg2 + 4, 0, true);
1925
2080
  if (!(e instanceof Error$1)) {
1926
- throw new Error('Resource error: Not a valid "Error" resource.');
2081
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2082
+ }
2083
+ var handle4 = e[symbolRscHandle];
2084
+ if (!handle4) {
2085
+ const rep = e[symbolRscRep] || ++captureCnt0;
2086
+ captureTable0.set(rep, e);
2087
+ handle4 = rscTableCreateOwn(handleTable0, rep);
1927
2088
  }
1928
- var handle3 = handleCnt0++;
1929
- handleTable0.set(handle3, { rep: e, own: true });
1930
- dataView(memory0).setInt32(arg2 + 8, handle3, true);
2089
+ dataView(memory0).setInt32(arg2 + 8, handle4, true);
1931
2090
  break;
1932
2091
  }
1933
2092
  case 'closed': {
@@ -1935,7 +2094,7 @@ function trampoline21(arg0, arg1, arg2) {
1935
2094
  break;
1936
2095
  }
1937
2096
  default: {
1938
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2097
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
1939
2098
  }
1940
2099
  }
1941
2100
  break;
@@ -1948,35 +2107,46 @@ function trampoline21(arg0, arg1, arg2) {
1948
2107
 
1949
2108
  function trampoline22(arg0, arg1) {
1950
2109
  var handle1 = arg0;
1951
- var rsc0 = handleTable2.get(handle1).rep;
2110
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
2111
+ var rsc0 = captureTable2.get(rep2);
2112
+ if (!rsc0) {
2113
+ rsc0 = Object.create(OutputStream.prototype);
2114
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2115
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2116
+ }
1952
2117
  let ret;
1953
2118
  try {
1954
- ret = { tag: 'ok', val: OutputStream.prototype.checkWrite.call(rsc0) };
2119
+ ret = { tag: 'ok', val: rsc0.checkWrite()};
1955
2120
  } catch (e) {
1956
2121
  ret = { tag: 'err', val: getErrorPayload(e) };
1957
2122
  }
1958
- var variant4 = ret;
1959
- switch (variant4.tag) {
2123
+ rsc0[symbolRscHandle] = null;
2124
+ var variant5 = ret;
2125
+ switch (variant5.tag) {
1960
2126
  case 'ok': {
1961
- const e = variant4.val;
2127
+ const e = variant5.val;
1962
2128
  dataView(memory0).setInt8(arg1 + 0, 0, true);
1963
2129
  dataView(memory0).setBigInt64(arg1 + 8, toUint64(e), true);
1964
2130
  break;
1965
2131
  }
1966
2132
  case 'err': {
1967
- const e = variant4.val;
2133
+ const e = variant5.val;
1968
2134
  dataView(memory0).setInt8(arg1 + 0, 1, true);
1969
- var variant3 = e;
1970
- switch (variant3.tag) {
2135
+ var variant4 = e;
2136
+ switch (variant4.tag) {
1971
2137
  case 'last-operation-failed': {
1972
- const e = variant3.val;
2138
+ const e = variant4.val;
1973
2139
  dataView(memory0).setInt8(arg1 + 8, 0, true);
1974
2140
  if (!(e instanceof Error$1)) {
1975
- throw new Error('Resource error: Not a valid "Error" resource.');
2141
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2142
+ }
2143
+ var handle3 = e[symbolRscHandle];
2144
+ if (!handle3) {
2145
+ const rep = e[symbolRscRep] || ++captureCnt0;
2146
+ captureTable0.set(rep, e);
2147
+ handle3 = rscTableCreateOwn(handleTable0, rep);
1976
2148
  }
1977
- var handle2 = handleCnt0++;
1978
- handleTable0.set(handle2, { rep: e, own: true });
1979
- dataView(memory0).setInt32(arg1 + 12, handle2, true);
2149
+ dataView(memory0).setInt32(arg1 + 12, handle3, true);
1980
2150
  break;
1981
2151
  }
1982
2152
  case 'closed': {
@@ -1984,7 +2154,7 @@ function trampoline22(arg0, arg1) {
1984
2154
  break;
1985
2155
  }
1986
2156
  default: {
1987
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`StreamError\``);
2157
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
1988
2158
  }
1989
2159
  }
1990
2160
  break;
@@ -1997,37 +2167,48 @@ function trampoline22(arg0, arg1) {
1997
2167
 
1998
2168
  function trampoline23(arg0, arg1, arg2, arg3) {
1999
2169
  var handle1 = arg0;
2000
- var rsc0 = handleTable2.get(handle1).rep;
2001
- var ptr2 = arg1;
2002
- var len2 = arg2;
2003
- var result2 = new Uint8Array(memory0.buffer.slice(ptr2, ptr2 + len2 * 1));
2170
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
2171
+ var rsc0 = captureTable2.get(rep2);
2172
+ if (!rsc0) {
2173
+ rsc0 = Object.create(OutputStream.prototype);
2174
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2175
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2176
+ }
2177
+ var ptr3 = arg1;
2178
+ var len3 = arg2;
2179
+ var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1));
2004
2180
  let ret;
2005
2181
  try {
2006
- ret = { tag: 'ok', val: OutputStream.prototype.write.call(rsc0, result2) };
2182
+ ret = { tag: 'ok', val: rsc0.write(result3)};
2007
2183
  } catch (e) {
2008
2184
  ret = { tag: 'err', val: getErrorPayload(e) };
2009
2185
  }
2010
- var variant5 = ret;
2011
- switch (variant5.tag) {
2186
+ rsc0[symbolRscHandle] = null;
2187
+ var variant6 = ret;
2188
+ switch (variant6.tag) {
2012
2189
  case 'ok': {
2013
- const e = variant5.val;
2190
+ const e = variant6.val;
2014
2191
  dataView(memory0).setInt8(arg3 + 0, 0, true);
2015
2192
  break;
2016
2193
  }
2017
2194
  case 'err': {
2018
- const e = variant5.val;
2195
+ const e = variant6.val;
2019
2196
  dataView(memory0).setInt8(arg3 + 0, 1, true);
2020
- var variant4 = e;
2021
- switch (variant4.tag) {
2197
+ var variant5 = e;
2198
+ switch (variant5.tag) {
2022
2199
  case 'last-operation-failed': {
2023
- const e = variant4.val;
2200
+ const e = variant5.val;
2024
2201
  dataView(memory0).setInt8(arg3 + 4, 0, true);
2025
2202
  if (!(e instanceof Error$1)) {
2026
- throw new Error('Resource error: Not a valid "Error" resource.');
2203
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2204
+ }
2205
+ var handle4 = e[symbolRscHandle];
2206
+ if (!handle4) {
2207
+ const rep = e[symbolRscRep] || ++captureCnt0;
2208
+ captureTable0.set(rep, e);
2209
+ handle4 = rscTableCreateOwn(handleTable0, rep);
2027
2210
  }
2028
- var handle3 = handleCnt0++;
2029
- handleTable0.set(handle3, { rep: e, own: true });
2030
- dataView(memory0).setInt32(arg3 + 8, handle3, true);
2211
+ dataView(memory0).setInt32(arg3 + 8, handle4, true);
2031
2212
  break;
2032
2213
  }
2033
2214
  case 'closed': {
@@ -2035,7 +2216,7 @@ function trampoline23(arg0, arg1, arg2, arg3) {
2035
2216
  break;
2036
2217
  }
2037
2218
  default: {
2038
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2219
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2039
2220
  }
2040
2221
  }
2041
2222
  break;
@@ -2048,37 +2229,48 @@ function trampoline23(arg0, arg1, arg2, arg3) {
2048
2229
 
2049
2230
  function trampoline24(arg0, arg1, arg2, arg3) {
2050
2231
  var handle1 = arg0;
2051
- var rsc0 = handleTable2.get(handle1).rep;
2052
- var ptr2 = arg1;
2053
- var len2 = arg2;
2054
- var result2 = new Uint8Array(memory0.buffer.slice(ptr2, ptr2 + len2 * 1));
2232
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
2233
+ var rsc0 = captureTable2.get(rep2);
2234
+ if (!rsc0) {
2235
+ rsc0 = Object.create(OutputStream.prototype);
2236
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2237
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2238
+ }
2239
+ var ptr3 = arg1;
2240
+ var len3 = arg2;
2241
+ var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1));
2055
2242
  let ret;
2056
2243
  try {
2057
- ret = { tag: 'ok', val: OutputStream.prototype.blockingWriteAndFlush.call(rsc0, result2) };
2244
+ ret = { tag: 'ok', val: rsc0.blockingWriteAndFlush(result3)};
2058
2245
  } catch (e) {
2059
2246
  ret = { tag: 'err', val: getErrorPayload(e) };
2060
2247
  }
2061
- var variant5 = ret;
2062
- switch (variant5.tag) {
2248
+ rsc0[symbolRscHandle] = null;
2249
+ var variant6 = ret;
2250
+ switch (variant6.tag) {
2063
2251
  case 'ok': {
2064
- const e = variant5.val;
2252
+ const e = variant6.val;
2065
2253
  dataView(memory0).setInt8(arg3 + 0, 0, true);
2066
2254
  break;
2067
2255
  }
2068
2256
  case 'err': {
2069
- const e = variant5.val;
2257
+ const e = variant6.val;
2070
2258
  dataView(memory0).setInt8(arg3 + 0, 1, true);
2071
- var variant4 = e;
2072
- switch (variant4.tag) {
2259
+ var variant5 = e;
2260
+ switch (variant5.tag) {
2073
2261
  case 'last-operation-failed': {
2074
- const e = variant4.val;
2262
+ const e = variant5.val;
2075
2263
  dataView(memory0).setInt8(arg3 + 4, 0, true);
2076
2264
  if (!(e instanceof Error$1)) {
2077
- throw new Error('Resource error: Not a valid "Error" resource.');
2265
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2078
2266
  }
2079
- var handle3 = handleCnt0++;
2080
- handleTable0.set(handle3, { rep: e, own: true });
2081
- dataView(memory0).setInt32(arg3 + 8, handle3, true);
2267
+ var handle4 = e[symbolRscHandle];
2268
+ if (!handle4) {
2269
+ const rep = e[symbolRscRep] || ++captureCnt0;
2270
+ captureTable0.set(rep, e);
2271
+ handle4 = rscTableCreateOwn(handleTable0, rep);
2272
+ }
2273
+ dataView(memory0).setInt32(arg3 + 8, handle4, true);
2082
2274
  break;
2083
2275
  }
2084
2276
  case 'closed': {
@@ -2086,7 +2278,7 @@ function trampoline24(arg0, arg1, arg2, arg3) {
2086
2278
  break;
2087
2279
  }
2088
2280
  default: {
2089
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2281
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``);
2090
2282
  }
2091
2283
  }
2092
2284
  break;
@@ -2099,34 +2291,45 @@ function trampoline24(arg0, arg1, arg2, arg3) {
2099
2291
 
2100
2292
  function trampoline25(arg0, arg1) {
2101
2293
  var handle1 = arg0;
2102
- var rsc0 = handleTable2.get(handle1).rep;
2294
+ var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG;
2295
+ var rsc0 = captureTable2.get(rep2);
2296
+ if (!rsc0) {
2297
+ rsc0 = Object.create(OutputStream.prototype);
2298
+ Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1});
2299
+ Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2});
2300
+ }
2103
2301
  let ret;
2104
2302
  try {
2105
- ret = { tag: 'ok', val: OutputStream.prototype.blockingFlush.call(rsc0) };
2303
+ ret = { tag: 'ok', val: rsc0.blockingFlush()};
2106
2304
  } catch (e) {
2107
2305
  ret = { tag: 'err', val: getErrorPayload(e) };
2108
2306
  }
2109
- var variant4 = ret;
2110
- switch (variant4.tag) {
2307
+ rsc0[symbolRscHandle] = null;
2308
+ var variant5 = ret;
2309
+ switch (variant5.tag) {
2111
2310
  case 'ok': {
2112
- const e = variant4.val;
2311
+ const e = variant5.val;
2113
2312
  dataView(memory0).setInt8(arg1 + 0, 0, true);
2114
2313
  break;
2115
2314
  }
2116
2315
  case 'err': {
2117
- const e = variant4.val;
2316
+ const e = variant5.val;
2118
2317
  dataView(memory0).setInt8(arg1 + 0, 1, true);
2119
- var variant3 = e;
2120
- switch (variant3.tag) {
2318
+ var variant4 = e;
2319
+ switch (variant4.tag) {
2121
2320
  case 'last-operation-failed': {
2122
- const e = variant3.val;
2321
+ const e = variant4.val;
2123
2322
  dataView(memory0).setInt8(arg1 + 4, 0, true);
2124
2323
  if (!(e instanceof Error$1)) {
2125
- throw new Error('Resource error: Not a valid "Error" resource.');
2324
+ throw new TypeError('Resource error: Not a valid "Error" resource.');
2126
2325
  }
2127
- var handle2 = handleCnt0++;
2128
- handleTable0.set(handle2, { rep: e, own: true });
2129
- dataView(memory0).setInt32(arg1 + 8, handle2, true);
2326
+ var handle3 = e[symbolRscHandle];
2327
+ if (!handle3) {
2328
+ const rep = e[symbolRscRep] || ++captureCnt0;
2329
+ captureTable0.set(rep, e);
2330
+ handle3 = rscTableCreateOwn(handleTable0, rep);
2331
+ }
2332
+ dataView(memory0).setInt32(arg1 + 8, handle3, true);
2130
2333
  break;
2131
2334
  }
2132
2335
  case 'closed': {
@@ -2134,7 +2337,7 @@ function trampoline25(arg0, arg1) {
2134
2337
  break;
2135
2338
  }
2136
2339
  default: {
2137
- throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`StreamError\``);
2340
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``);
2138
2341
  }
2139
2342
  }
2140
2343
  break;
@@ -2176,6 +2379,10 @@ function trampoline27(arg0) {
2176
2379
  dataView(memory0).setInt32(arg0 + 4, len3, true);
2177
2380
  dataView(memory0).setInt32(arg0 + 0, result3, true);
2178
2381
  }
2382
+ const handleTable3 = [T_FLAG, 0];
2383
+ const captureTable3= new Map();
2384
+ let captureCnt3 = 0;
2385
+ handleTables[3] = handleTable3;
2179
2386
 
2180
2387
  function trampoline28(arg0) {
2181
2388
  const ret = getTerminalStdin();
@@ -2186,13 +2393,21 @@ function trampoline28(arg0) {
2186
2393
  const e = variant1;
2187
2394
  dataView(memory0).setInt8(arg0 + 0, 1, true);
2188
2395
  if (!(e instanceof TerminalInput)) {
2189
- throw new Error('Resource error: Not a valid "TerminalInput" resource.');
2396
+ throw new TypeError('Resource error: Not a valid "TerminalInput" resource.');
2397
+ }
2398
+ var handle0 = e[symbolRscHandle];
2399
+ if (!handle0) {
2400
+ const rep = e[symbolRscRep] || ++captureCnt3;
2401
+ captureTable3.set(rep, e);
2402
+ handle0 = rscTableCreateOwn(handleTable3, rep);
2190
2403
  }
2191
- var handle0 = handleCnt3++;
2192
- handleTable3.set(handle0, { rep: e, own: true });
2193
2404
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
2194
2405
  }
2195
2406
  }
2407
+ const handleTable4 = [T_FLAG, 0];
2408
+ const captureTable4= new Map();
2409
+ let captureCnt4 = 0;
2410
+ handleTables[4] = handleTable4;
2196
2411
 
2197
2412
  function trampoline29(arg0) {
2198
2413
  const ret = getTerminalStdout();
@@ -2203,10 +2418,14 @@ function trampoline29(arg0) {
2203
2418
  const e = variant1;
2204
2419
  dataView(memory0).setInt8(arg0 + 0, 1, true);
2205
2420
  if (!(e instanceof TerminalOutput)) {
2206
- throw new Error('Resource error: Not a valid "TerminalOutput" resource.');
2421
+ throw new TypeError('Resource error: Not a valid "TerminalOutput" resource.');
2422
+ }
2423
+ var handle0 = e[symbolRscHandle];
2424
+ if (!handle0) {
2425
+ const rep = e[symbolRscRep] || ++captureCnt4;
2426
+ captureTable4.set(rep, e);
2427
+ handle0 = rscTableCreateOwn(handleTable4, rep);
2207
2428
  }
2208
- var handle0 = handleCnt4++;
2209
- handleTable4.set(handle0, { rep: e, own: true });
2210
2429
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
2211
2430
  }
2212
2431
  }
@@ -2220,10 +2439,14 @@ function trampoline30(arg0) {
2220
2439
  const e = variant1;
2221
2440
  dataView(memory0).setInt8(arg0 + 0, 1, true);
2222
2441
  if (!(e instanceof TerminalOutput)) {
2223
- throw new Error('Resource error: Not a valid "TerminalOutput" resource.');
2442
+ throw new TypeError('Resource error: Not a valid "TerminalOutput" resource.');
2443
+ }
2444
+ var handle0 = e[symbolRscHandle];
2445
+ if (!handle0) {
2446
+ const rep = e[symbolRscRep] || ++captureCnt4;
2447
+ captureTable4.set(rep, e);
2448
+ handle0 = rscTableCreateOwn(handleTable4, rep);
2224
2449
  }
2225
- var handle0 = handleCnt4++;
2226
- handleTable4.set(handle0, { rep: e, own: true });
2227
2450
  dataView(memory0).setInt32(arg0 + 4, handle0, true);
2228
2451
  }
2229
2452
  }
@@ -2231,80 +2454,98 @@ let exports3;
2231
2454
  let realloc1;
2232
2455
  let postReturn0;
2233
2456
  let postReturn1;
2457
+ const handleTable6 = [T_FLAG, 0];
2458
+ const captureTable6= new Map();
2459
+ let captureCnt6 = 0;
2460
+ handleTables[6] = handleTable6;
2234
2461
  function trampoline0(handle) {
2235
- const handleEntry = handleTable6.get(handle);
2236
- if (!handleEntry) {
2237
- throw new Error(`Resource error: Invalid handle ${handle}`);
2238
- }
2239
- handleTable6.delete(handle);
2240
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2241
- handleEntry.rep[symbolDispose]();
2462
+ const handleEntry = rscTableRemove(handleTable6, handle);
2463
+ if (handleEntry.own) {
2464
+ throw new TypeError('unreachable resource trampoline')
2242
2465
  }
2243
2466
  }
2244
2467
  function trampoline1(handle) {
2245
- const handleEntry = handleTable0.get(handle);
2246
- if (!handleEntry) {
2247
- throw new Error(`Resource error: Invalid handle ${handle}`);
2248
- }
2249
- handleTable0.delete(handle);
2250
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2251
- handleEntry.rep[symbolDispose]();
2468
+ const handleEntry = rscTableRemove(handleTable0, handle);
2469
+ if (handleEntry.own) {
2470
+
2471
+ const rsc = captureTable0.get(handleEntry.rep);
2472
+ if (rsc) {
2473
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2474
+ captureTable0.delete(handleEntry.rep);
2475
+ } else if (Error$1[symbolCabiDispose]) {
2476
+ Error$1[symbolCabiDispose](handleEntry.rep);
2477
+ }
2252
2478
  }
2253
2479
  }
2254
2480
  function trampoline2(handle) {
2255
- const handleEntry = handleTable1.get(handle);
2256
- if (!handleEntry) {
2257
- throw new Error(`Resource error: Invalid handle ${handle}`);
2258
- }
2259
- handleTable1.delete(handle);
2260
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2261
- handleEntry.rep[symbolDispose]();
2481
+ const handleEntry = rscTableRemove(handleTable1, handle);
2482
+ if (handleEntry.own) {
2483
+
2484
+ const rsc = captureTable1.get(handleEntry.rep);
2485
+ if (rsc) {
2486
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2487
+ captureTable1.delete(handleEntry.rep);
2488
+ } else if (InputStream[symbolCabiDispose]) {
2489
+ InputStream[symbolCabiDispose](handleEntry.rep);
2490
+ }
2262
2491
  }
2263
2492
  }
2264
2493
  function trampoline3(handle) {
2265
- const handleEntry = handleTable2.get(handle);
2266
- if (!handleEntry) {
2267
- throw new Error(`Resource error: Invalid handle ${handle}`);
2268
- }
2269
- handleTable2.delete(handle);
2270
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2271
- handleEntry.rep[symbolDispose]();
2494
+ const handleEntry = rscTableRemove(handleTable2, handle);
2495
+ if (handleEntry.own) {
2496
+
2497
+ const rsc = captureTable2.get(handleEntry.rep);
2498
+ if (rsc) {
2499
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2500
+ captureTable2.delete(handleEntry.rep);
2501
+ } else if (OutputStream[symbolCabiDispose]) {
2502
+ OutputStream[symbolCabiDispose](handleEntry.rep);
2503
+ }
2272
2504
  }
2273
2505
  }
2274
2506
  function trampoline4(handle) {
2275
- const handleEntry = handleTable5.get(handle);
2276
- if (!handleEntry) {
2277
- throw new Error(`Resource error: Invalid handle ${handle}`);
2278
- }
2279
- handleTable5.delete(handle);
2280
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2281
- handleEntry.rep[symbolDispose]();
2507
+ const handleEntry = rscTableRemove(handleTable5, handle);
2508
+ if (handleEntry.own) {
2509
+
2510
+ const rsc = captureTable5.get(handleEntry.rep);
2511
+ if (rsc) {
2512
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2513
+ captureTable5.delete(handleEntry.rep);
2514
+ } else if (Descriptor[symbolCabiDispose]) {
2515
+ Descriptor[symbolCabiDispose](handleEntry.rep);
2516
+ }
2282
2517
  }
2283
2518
  }
2284
- function trampoline5(handle) {
2285
- const handleEntry = handleTable3.get(handle);
2286
- if (!handleEntry) {
2287
- throw new Error(`Resource error: Invalid handle ${handle}`);
2288
- }
2289
- handleTable3.delete(handle);
2290
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2291
- handleEntry.rep[symbolDispose]();
2519
+ function trampoline9(handle) {
2520
+ const handleEntry = rscTableRemove(handleTable3, handle);
2521
+ if (handleEntry.own) {
2522
+
2523
+ const rsc = captureTable3.get(handleEntry.rep);
2524
+ if (rsc) {
2525
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2526
+ captureTable3.delete(handleEntry.rep);
2527
+ } else if (TerminalInput[symbolCabiDispose]) {
2528
+ TerminalInput[symbolCabiDispose](handleEntry.rep);
2529
+ }
2292
2530
  }
2293
2531
  }
2294
- function trampoline6(handle) {
2295
- const handleEntry = handleTable4.get(handle);
2296
- if (!handleEntry) {
2297
- throw new Error(`Resource error: Invalid handle ${handle}`);
2298
- }
2299
- handleTable4.delete(handle);
2300
- if (handleEntry.own && handleEntry.rep[symbolDispose]) {
2301
- handleEntry.rep[symbolDispose]();
2532
+ function trampoline10(handle) {
2533
+ const handleEntry = rscTableRemove(handleTable4, handle);
2534
+ if (handleEntry.own) {
2535
+
2536
+ const rsc = captureTable4.get(handleEntry.rep);
2537
+ if (rsc) {
2538
+ if (rsc[symbolDispose]) rsc[symbolDispose]();
2539
+ captureTable4.delete(handleEntry.rep);
2540
+ } else if (TerminalOutput[symbolCabiDispose]) {
2541
+ TerminalOutput[symbolCabiDispose](handleEntry.rep);
2542
+ }
2302
2543
  }
2303
2544
  }
2304
2545
 
2305
2546
  function generate(arg0, arg1) {
2306
2547
  if (!_initialized) throwUninitialized();
2307
- var ptr0 = realloc1(0, 0, 4, 56);
2548
+ var ptr0 = realloc1(0, 0, 4, 60);
2308
2549
  var val1 = arg0;
2309
2550
  var len1 = val1.byteLength;
2310
2551
  var ptr1 = realloc1(0, 0, 1, len1 * 1);
@@ -2312,7 +2553,7 @@ function generate(arg0, arg1) {
2312
2553
  (new Uint8Array(memory0.buffer, ptr1, len1 * 1)).set(src1);
2313
2554
  dataView(memory0).setInt32(ptr0 + 4, len1, true);
2314
2555
  dataView(memory0).setInt32(ptr0 + 0, ptr1, true);
2315
- var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, map: v2_3, compat: v2_4, noNodejsCompat: v2_5, base64Cutoff: v2_6, tlaCompat: v2_7, validLiftingOptimization: v2_8, tracing: v2_9, noNamespacedExports: v2_10, multiMemory: v2_11 } = arg1;
2556
+ var {name: v2_0, noTypescript: v2_1, instantiation: v2_2, importBindings: v2_3, map: v2_4, compat: v2_5, noNodejsCompat: v2_6, base64Cutoff: v2_7, tlaCompat: v2_8, validLiftingOptimization: v2_9, tracing: v2_10, noNamespacedExports: v2_11, multiMemory: v2_12 } = arg1;
2316
2557
  var ptr3 = utf8Encode(v2_0, realloc1, memory0);
2317
2558
  var len3 = utf8EncodedLen;
2318
2559
  dataView(memory0).setInt32(ptr0 + 12, len3, true);
@@ -2346,71 +2587,84 @@ function generate(arg0, arg1) {
2346
2587
  }
2347
2588
  }
2348
2589
  }
2349
- var variant11 = v2_3;
2350
- if (variant11 === null || variant11=== undefined) {
2590
+ var variant8 = v2_3;
2591
+ if (variant8 === null || variant8=== undefined) {
2351
2592
  dataView(memory0).setInt8(ptr0 + 20, 0, true);
2352
2593
  } else {
2353
- const e = variant11;
2594
+ const e = variant8;
2354
2595
  dataView(memory0).setInt8(ptr0 + 20, 1, true);
2355
- var vec10 = e;
2356
- var len10 = vec10.length;
2357
- var result10 = realloc1(0, 0, 4, len10 * 16);
2358
- for (let i = 0; i < vec10.length; i++) {
2359
- const e = vec10[i];
2360
- const base = result10 + i * 16;var [tuple7_0, tuple7_1] = e;
2361
- var ptr8 = utf8Encode(tuple7_0, realloc1, memory0);
2362
- var len8 = utf8EncodedLen;
2363
- dataView(memory0).setInt32(base + 4, len8, true);
2364
- dataView(memory0).setInt32(base + 0, ptr8, true);
2365
- var ptr9 = utf8Encode(tuple7_1, realloc1, memory0);
2366
- var len9 = utf8EncodedLen;
2367
- dataView(memory0).setInt32(base + 12, len9, true);
2368
- dataView(memory0).setInt32(base + 8, ptr9, true);
2369
- }
2370
- dataView(memory0).setInt32(ptr0 + 28, len10, true);
2371
- dataView(memory0).setInt32(ptr0 + 24, result10, true);
2372
- }
2373
- var variant12 = v2_4;
2374
- if (variant12 === null || variant12=== undefined) {
2375
- dataView(memory0).setInt8(ptr0 + 32, 0, true);
2376
- } else {
2377
- const e = variant12;
2378
- dataView(memory0).setInt8(ptr0 + 32, 1, true);
2379
- dataView(memory0).setInt8(ptr0 + 33, e ? 1 : 0, true);
2596
+ var variant7 = e;
2597
+ switch (variant7.tag) {
2598
+ case 'js': {
2599
+ dataView(memory0).setInt8(ptr0 + 21, 0, true);
2600
+ break;
2601
+ }
2602
+ case 'hybrid': {
2603
+ dataView(memory0).setInt8(ptr0 + 21, 1, true);
2604
+ break;
2605
+ }
2606
+ case 'optimized': {
2607
+ dataView(memory0).setInt8(ptr0 + 21, 2, true);
2608
+ break;
2609
+ }
2610
+ case 'direct-optimized': {
2611
+ dataView(memory0).setInt8(ptr0 + 21, 3, true);
2612
+ break;
2613
+ }
2614
+ default: {
2615
+ throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BindingsMode\``);
2616
+ }
2617
+ }
2380
2618
  }
2381
- var variant13 = v2_5;
2619
+ var variant13 = v2_4;
2382
2620
  if (variant13 === null || variant13=== undefined) {
2383
- dataView(memory0).setInt8(ptr0 + 34, 0, true);
2621
+ dataView(memory0).setInt8(ptr0 + 24, 0, true);
2384
2622
  } else {
2385
2623
  const e = variant13;
2386
- dataView(memory0).setInt8(ptr0 + 34, 1, true);
2387
- dataView(memory0).setInt8(ptr0 + 35, e ? 1 : 0, true);
2624
+ dataView(memory0).setInt8(ptr0 + 24, 1, true);
2625
+ var vec12 = e;
2626
+ var len12 = vec12.length;
2627
+ var result12 = realloc1(0, 0, 4, len12 * 16);
2628
+ for (let i = 0; i < vec12.length; i++) {
2629
+ const e = vec12[i];
2630
+ const base = result12 + i * 16;var [tuple9_0, tuple9_1] = e;
2631
+ var ptr10 = utf8Encode(tuple9_0, realloc1, memory0);
2632
+ var len10 = utf8EncodedLen;
2633
+ dataView(memory0).setInt32(base + 4, len10, true);
2634
+ dataView(memory0).setInt32(base + 0, ptr10, true);
2635
+ var ptr11 = utf8Encode(tuple9_1, realloc1, memory0);
2636
+ var len11 = utf8EncodedLen;
2637
+ dataView(memory0).setInt32(base + 12, len11, true);
2638
+ dataView(memory0).setInt32(base + 8, ptr11, true);
2639
+ }
2640
+ dataView(memory0).setInt32(ptr0 + 32, len12, true);
2641
+ dataView(memory0).setInt32(ptr0 + 28, result12, true);
2388
2642
  }
2389
- var variant14 = v2_6;
2643
+ var variant14 = v2_5;
2390
2644
  if (variant14 === null || variant14=== undefined) {
2391
2645
  dataView(memory0).setInt8(ptr0 + 36, 0, true);
2392
2646
  } else {
2393
2647
  const e = variant14;
2394
2648
  dataView(memory0).setInt8(ptr0 + 36, 1, true);
2395
- dataView(memory0).setInt32(ptr0 + 40, toUint32(e), true);
2649
+ dataView(memory0).setInt8(ptr0 + 37, e ? 1 : 0, true);
2396
2650
  }
2397
- var variant15 = v2_7;
2651
+ var variant15 = v2_6;
2398
2652
  if (variant15 === null || variant15=== undefined) {
2399
- dataView(memory0).setInt8(ptr0 + 44, 0, true);
2653
+ dataView(memory0).setInt8(ptr0 + 38, 0, true);
2400
2654
  } else {
2401
2655
  const e = variant15;
2402
- dataView(memory0).setInt8(ptr0 + 44, 1, true);
2403
- dataView(memory0).setInt8(ptr0 + 45, e ? 1 : 0, true);
2656
+ dataView(memory0).setInt8(ptr0 + 38, 1, true);
2657
+ dataView(memory0).setInt8(ptr0 + 39, e ? 1 : 0, true);
2404
2658
  }
2405
- var variant16 = v2_8;
2659
+ var variant16 = v2_7;
2406
2660
  if (variant16 === null || variant16=== undefined) {
2407
- dataView(memory0).setInt8(ptr0 + 46, 0, true);
2661
+ dataView(memory0).setInt8(ptr0 + 40, 0, true);
2408
2662
  } else {
2409
2663
  const e = variant16;
2410
- dataView(memory0).setInt8(ptr0 + 46, 1, true);
2411
- dataView(memory0).setInt8(ptr0 + 47, e ? 1 : 0, true);
2664
+ dataView(memory0).setInt8(ptr0 + 40, 1, true);
2665
+ dataView(memory0).setInt32(ptr0 + 44, toUint32(e), true);
2412
2666
  }
2413
- var variant17 = v2_9;
2667
+ var variant17 = v2_8;
2414
2668
  if (variant17 === null || variant17=== undefined) {
2415
2669
  dataView(memory0).setInt8(ptr0 + 48, 0, true);
2416
2670
  } else {
@@ -2418,7 +2672,7 @@ function generate(arg0, arg1) {
2418
2672
  dataView(memory0).setInt8(ptr0 + 48, 1, true);
2419
2673
  dataView(memory0).setInt8(ptr0 + 49, e ? 1 : 0, true);
2420
2674
  }
2421
- var variant18 = v2_10;
2675
+ var variant18 = v2_9;
2422
2676
  if (variant18 === null || variant18=== undefined) {
2423
2677
  dataView(memory0).setInt8(ptr0 + 50, 0, true);
2424
2678
  } else {
@@ -2426,7 +2680,7 @@ function generate(arg0, arg1) {
2426
2680
  dataView(memory0).setInt8(ptr0 + 50, 1, true);
2427
2681
  dataView(memory0).setInt8(ptr0 + 51, e ? 1 : 0, true);
2428
2682
  }
2429
- var variant19 = v2_11;
2683
+ var variant19 = v2_10;
2430
2684
  if (variant19 === null || variant19=== undefined) {
2431
2685
  dataView(memory0).setInt8(ptr0 + 52, 0, true);
2432
2686
  } else {
@@ -2434,74 +2688,90 @@ function generate(arg0, arg1) {
2434
2688
  dataView(memory0).setInt8(ptr0 + 52, 1, true);
2435
2689
  dataView(memory0).setInt8(ptr0 + 53, e ? 1 : 0, true);
2436
2690
  }
2691
+ var variant20 = v2_11;
2692
+ if (variant20 === null || variant20=== undefined) {
2693
+ dataView(memory0).setInt8(ptr0 + 54, 0, true);
2694
+ } else {
2695
+ const e = variant20;
2696
+ dataView(memory0).setInt8(ptr0 + 54, 1, true);
2697
+ dataView(memory0).setInt8(ptr0 + 55, e ? 1 : 0, true);
2698
+ }
2699
+ var variant21 = v2_12;
2700
+ if (variant21 === null || variant21=== undefined) {
2701
+ dataView(memory0).setInt8(ptr0 + 56, 0, true);
2702
+ } else {
2703
+ const e = variant21;
2704
+ dataView(memory0).setInt8(ptr0 + 56, 1, true);
2705
+ dataView(memory0).setInt8(ptr0 + 57, e ? 1 : 0, true);
2706
+ }
2437
2707
  const ret = exports1.generate(ptr0);
2438
- let variant29;
2708
+ let variant31;
2439
2709
  switch (dataView(memory0).getUint8(ret + 0, true)) {
2440
2710
  case 0: {
2441
- var len22 = dataView(memory0).getInt32(ret + 8, true);
2442
- var base22 = dataView(memory0).getInt32(ret + 4, true);
2443
- var result22 = [];
2444
- for (let i = 0; i < len22; i++) {
2445
- const base = base22 + i * 16;
2446
- var ptr20 = dataView(memory0).getInt32(base + 0, true);
2447
- var len20 = dataView(memory0).getInt32(base + 4, true);
2448
- var result20 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr20, len20));
2449
- var ptr21 = dataView(memory0).getInt32(base + 8, true);
2450
- var len21 = dataView(memory0).getInt32(base + 12, true);
2451
- var result21 = new Uint8Array(memory0.buffer.slice(ptr21, ptr21 + len21 * 1));
2452
- result22.push([result20, result21]);
2453
- }
2454
- var len24 = dataView(memory0).getInt32(ret + 16, true);
2455
- var base24 = dataView(memory0).getInt32(ret + 12, true);
2711
+ var len24 = dataView(memory0).getInt32(ret + 8, true);
2712
+ var base24 = dataView(memory0).getInt32(ret + 4, true);
2456
2713
  var result24 = [];
2457
2714
  for (let i = 0; i < len24; i++) {
2458
- const base = base24 + i * 8;
2459
- var ptr23 = dataView(memory0).getInt32(base + 0, true);
2460
- var len23 = dataView(memory0).getInt32(base + 4, true);
2461
- var result23 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr23, len23));
2462
- result24.push(result23);
2463
- }
2464
- var len27 = dataView(memory0).getInt32(ret + 24, true);
2465
- var base27 = dataView(memory0).getInt32(ret + 20, true);
2466
- var result27 = [];
2467
- for (let i = 0; i < len27; i++) {
2468
- const base = base27 + i * 12;
2715
+ const base = base24 + i * 16;
2716
+ var ptr22 = dataView(memory0).getInt32(base + 0, true);
2717
+ var len22 = dataView(memory0).getInt32(base + 4, true);
2718
+ var result22 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr22, len22));
2719
+ var ptr23 = dataView(memory0).getInt32(base + 8, true);
2720
+ var len23 = dataView(memory0).getInt32(base + 12, true);
2721
+ var result23 = new Uint8Array(memory0.buffer.slice(ptr23, ptr23 + len23 * 1));
2722
+ result24.push([result22, result23]);
2723
+ }
2724
+ var len26 = dataView(memory0).getInt32(ret + 16, true);
2725
+ var base26 = dataView(memory0).getInt32(ret + 12, true);
2726
+ var result26 = [];
2727
+ for (let i = 0; i < len26; i++) {
2728
+ const base = base26 + i * 8;
2469
2729
  var ptr25 = dataView(memory0).getInt32(base + 0, true);
2470
2730
  var len25 = dataView(memory0).getInt32(base + 4, true);
2471
2731
  var result25 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr25, len25));
2472
- let enum26;
2732
+ result26.push(result25);
2733
+ }
2734
+ var len29 = dataView(memory0).getInt32(ret + 24, true);
2735
+ var base29 = dataView(memory0).getInt32(ret + 20, true);
2736
+ var result29 = [];
2737
+ for (let i = 0; i < len29; i++) {
2738
+ const base = base29 + i * 12;
2739
+ var ptr27 = dataView(memory0).getInt32(base + 0, true);
2740
+ var len27 = dataView(memory0).getInt32(base + 4, true);
2741
+ var result27 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr27, len27));
2742
+ let enum28;
2473
2743
  switch (dataView(memory0).getUint8(base + 8, true)) {
2474
2744
  case 0: {
2475
- enum26 = 'function';
2745
+ enum28 = 'function';
2476
2746
  break;
2477
2747
  }
2478
2748
  case 1: {
2479
- enum26 = 'instance';
2749
+ enum28 = 'instance';
2480
2750
  break;
2481
2751
  }
2482
2752
  default: {
2483
2753
  throw new TypeError('invalid discriminant specified for ExportType');
2484
2754
  }
2485
2755
  }
2486
- result27.push([result25, enum26]);
2756
+ result29.push([result27, enum28]);
2487
2757
  }
2488
- variant29= {
2758
+ variant31= {
2489
2759
  tag: 'ok',
2490
2760
  val: {
2491
- files: result22,
2492
- imports: result24,
2493
- exports: result27,
2761
+ files: result24,
2762
+ imports: result26,
2763
+ exports: result29,
2494
2764
  }
2495
2765
  };
2496
2766
  break;
2497
2767
  }
2498
2768
  case 1: {
2499
- var ptr28 = dataView(memory0).getInt32(ret + 4, true);
2500
- var len28 = dataView(memory0).getInt32(ret + 8, true);
2501
- var result28 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr28, len28));
2502
- variant29= {
2769
+ var ptr30 = dataView(memory0).getInt32(ret + 4, true);
2770
+ var len30 = dataView(memory0).getInt32(ret + 8, true);
2771
+ var result30 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr30, len30));
2772
+ variant31= {
2503
2773
  tag: 'err',
2504
- val: result28
2774
+ val: result30
2505
2775
  };
2506
2776
  break;
2507
2777
  }
@@ -2510,10 +2780,10 @@ function generate(arg0, arg1) {
2510
2780
  }
2511
2781
  }
2512
2782
  postReturn0(ret);
2513
- if (variant29.tag === 'err') {
2514
- throw new ComponentError(variant29.val);
2783
+ if (variant31.tag === 'err') {
2784
+ throw new ComponentError(variant31.val);
2515
2785
  }
2516
- return variant29.val;
2786
+ return variant31.val;
2517
2787
  }
2518
2788
 
2519
2789
  function generateTypes(arg0, arg1) {
@@ -2685,27 +2955,13 @@ function generateTypes(arg0, arg1) {
2685
2955
  }
2686
2956
  return variant20.val;
2687
2957
  }
2688
- const handleTable0= new Map();
2689
- let handleCnt0 = 0;
2690
- const handleTable1= new Map();
2691
- let handleCnt1 = 0;
2692
- const handleTable2= new Map();
2693
- let handleCnt2 = 0;
2694
- const handleTable3= new Map();
2695
- let handleCnt3 = 0;
2696
- const handleTable4= new Map();
2697
- let handleCnt4 = 0;
2698
- const handleTable5= new Map();
2699
- let handleCnt5 = 0;
2700
- const handleTable6= new Map();
2701
- let handleCnt6 = 0;
2702
2958
 
2703
2959
  let _initialized = false;
2704
2960
  export const $init = (async() => {
2705
2961
  const module0 = fetchCompile(new URL('./js-component-bindgen-component.core.wasm', import.meta.url));
2706
2962
  const module1 = fetchCompile(new URL('./js-component-bindgen-component.core2.wasm', import.meta.url));
2707
- const module2 = base64Compile('AGFzbQEAAAABUQxgAX8AYAN/fn8AYAJ/fwBgB39/f39/f38AYAR/f39/AGACfn8AYAl/f39/f35+f38Bf2ACf38Bf2AEf39/fwF/YAF/AX9gA39/fwF/YAF/AAMgHwABAQICAgMCAgEBAgQEAgUAAAAABgcHCAgHBwkHCgsEBQFwAR8fB50BIAEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdAjMwAB4IJGltcG9ydHMBAAqZAx8JACAAQQARAAALDQAgACABIAJBAREBAAsNACAAIAEgAkECEQEACwsAIAAgAUEDEQIACwsAIAAgAUEEEQIACwsAIAAgAUEFEQIACxUAIAAgASACIAMgBCAFIAZBBhEDAAsLACAAIAFBBxECAAsLACAAIAFBCBECAAsNACAAIAEgAkEJEQEACw0AIAAgASACQQoRAQALCwAgACABQQsRAgALDwAgACABIAIgA0EMEQQACw8AIAAgASACIANBDREEAAsLACAAIAFBDhECAAsLACAAIAFBDxEFAAsJACAAQRARAAALCQAgAEEREQAACwkAIABBEhEAAAsJACAAQRMRAAALGQAgACABIAIgAyAEIAUgBiAHIAhBFBEGAAsLACAAIAFBFREHAAsLACAAIAFBFhEHAAsPACAAIAEgAiADQRcRCAALDwAgACABIAIgA0EYEQgACwsAIAAgAUEZEQcACwsAIAAgAUEaEQcACwkAIABBGxEJAAsLACAAIAFBHBEHAAsNACAAIAEgAkEdEQoACwkAIABBHhELAAsALglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAYwLjIxLjAA+g0EbmFtZQATEndpdC1jb21wb25lbnQ6c2hpbQHdDR8AN2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS9wcmVvcGVuc0AwLjIuMC1nZXQtZGlyZWN0b3JpZXMBR2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IucmVhZC12aWEtc3RyZWFtAkhpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLndyaXRlLXZpYS1zdHJlYW0DSWluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IuYXBwZW5kLXZpYS1zdHJlYW0EQGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3IuZ2V0LXR5cGUFPGluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3Iuc3RhdAY/aW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5vcGVuLWF0B0VpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLm1ldGFkYXRhLWhhc2gIOmluZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1maWxlc3lzdGVtLWVycm9yLWNvZGUJOGluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXWlucHV0LXN0cmVhbS5yZWFkCkFpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1pbnB1dC1zdHJlYW0uYmxvY2tpbmctcmVhZAtAaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS5jaGVjay13cml0ZQw6aW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS53cml0ZQ1NaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2Rdb3V0cHV0LXN0cmVhbS5ibG9ja2luZy13cml0ZS1hbmQtZmx1c2gOQ2luZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctZmx1c2gPMmluZGlyZWN0LXdhc2k6cmFuZG9tL3JhbmRvbUAwLjIuMC1nZXQtcmFuZG9tLWJ5dGVzEDNpbmRpcmVjdC13YXNpOmNsaS9lbnZpcm9ubWVudEAwLjIuMC1nZXQtZW52aXJvbm1lbnQROWluZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZGluQDAuMi4wLWdldC10ZXJtaW5hbC1zdGRpbhI7aW5kaXJlY3Qtd2FzaTpjbGkvdGVybWluYWwtc3Rkb3V0QDAuMi4wLWdldC10ZXJtaW5hbC1zdGRvdXQTO2luZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZGVyckAwLjIuMC1nZXQtdGVybWluYWwtc3RkZXJyFCZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXBhdGhfb3BlbhUsYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9maWxlc3RhdF9nZXQWJ2FkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcmFuZG9tX2dldBckYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9yZWFkGCVhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3dyaXRlGShhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWVudmlyb25fZ2V0Gi5hZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWVudmlyb25fc2l6ZXNfZ2V0GyVhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX2Nsb3NlHCthZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3ByZXN0YXRfZ2V0HTBhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLWZkX3ByZXN0YXRfZGlyX25hbWUeJmFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtcHJvY19leGl0');
2708
- const module3 = base64Compile('AGFzbQEAAAABUQxgAX8AYAN/fn8AYAJ/fwBgB39/f39/f38AYAR/f39/AGACfn8AYAl/f39/f35+f38Bf2ACf38Bf2AEf39/fwF/YAF/AX9gA39/fwF/YAF/AALAASAAATAAAAABMQABAAEyAAEAATMAAgABNAACAAE1AAIAATYAAwABNwACAAE4AAIAATkAAQACMTAAAQACMTEAAgACMTIABAACMTMABAACMTQAAgACMTUABQACMTYAAAACMTcAAAACMTgAAAACMTkAAAACMjAABgACMjEABwACMjIABwACMjMACAACMjQACAACMjUABwACMjYABwACMjcACQACMjgABwACMjkACgACMzAACwAIJGltcG9ydHMBcAEfHwklAQBBAAsfAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHgAuCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BjAuMjEuMAAcBG5hbWUAFRR3aXQtY29tcG9uZW50OmZpeHVwcw');
2963
+ const module2 = base64Compile('AGFzbQEAAAABUQxgAX8AYAN/fn8AYAJ/fwBgB39/f39/f38AYAR/f39/AGACfn8AYAl/f39/f35+f38Bf2ACf38Bf2AEf39/fwF/YAF/AX9gA39/fwF/YAF/AAMgHwABAQICAgMCAgEBAgQEAgUAAAAABgcHCAgHBwkHCgsEBQFwAR8fB50BIAEwAAABMQABATIAAgEzAAMBNAAEATUABQE2AAYBNwAHATgACAE5AAkCMTAACgIxMQALAjEyAAwCMTMADQIxNAAOAjE1AA8CMTYAEAIxNwARAjE4ABICMTkAEwIyMAAUAjIxABUCMjIAFgIyMwAXAjI0ABgCMjUAGQIyNgAaAjI3ABsCMjgAHAIyOQAdAjMwAB4IJGltcG9ydHMBAAqZAx8JACAAQQARAAALDQAgACABIAJBAREBAAsNACAAIAEgAkECEQEACwsAIAAgAUEDEQIACwsAIAAgAUEEEQIACwsAIAAgAUEFEQIACxUAIAAgASACIAMgBCAFIAZBBhEDAAsLACAAIAFBBxECAAsLACAAIAFBCBECAAsNACAAIAEgAkEJEQEACw0AIAAgASACQQoRAQALCwAgACABQQsRAgALDwAgACABIAIgA0EMEQQACw8AIAAgASACIANBDREEAAsLACAAIAFBDhECAAsLACAAIAFBDxEFAAsJACAAQRARAAALCQAgAEEREQAACwkAIABBEhEAAAsJACAAQRMRAAALGQAgACABIAIgAyAEIAUgBiAHIAhBFBEGAAsLACAAIAFBFREHAAsLACAAIAFBFhEHAAsPACAAIAEgAiADQRcRCAALDwAgACABIAIgA0EYEQgACwsAIAAgAUEZEQcACwsAIAAgAUEaEQcACwkAIABBGxEJAAsLACAAIAFBHBEHAAsNACAAIAEgAkEdEQoACwkAIABBHhELAAsALwlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQENd2l0LWNvbXBvbmVudAcwLjIwMS4wAPoNBG5hbWUAExJ3aXQtY29tcG9uZW50OnNoaW0B3Q0fADdpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vcHJlb3BlbnNAMC4yLjAtZ2V0LWRpcmVjdG9yaWVzAUdpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLnJlYWQtdmlhLXN0cmVhbQJIaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci53cml0ZS12aWEtc3RyZWFtA0lpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLmFwcGVuZC12aWEtc3RyZWFtBEBpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLmdldC10eXBlBTxpbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtW21ldGhvZF1kZXNjcmlwdG9yLnN0YXQGP2luZGlyZWN0LXdhc2k6ZmlsZXN5c3RlbS90eXBlc0AwLjIuMC1bbWV0aG9kXWRlc2NyaXB0b3Iub3Blbi1hdAdFaW5kaXJlY3Qtd2FzaTpmaWxlc3lzdGVtL3R5cGVzQDAuMi4wLVttZXRob2RdZGVzY3JpcHRvci5tZXRhZGF0YS1oYXNoCDppbmRpcmVjdC13YXNpOmZpbGVzeXN0ZW0vdHlwZXNAMC4yLjAtZmlsZXN5c3RlbS1lcnJvci1jb2RlCThpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1pbnB1dC1zdHJlYW0ucmVhZApBaW5kaXJlY3Qtd2FzaTppby9zdHJlYW1zQDAuMi4wLVttZXRob2RdaW5wdXQtc3RyZWFtLmJsb2NraW5nLXJlYWQLQGluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uY2hlY2std3JpdGUMOmluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0ud3JpdGUNTWluZGlyZWN0LXdhc2k6aW8vc3RyZWFtc0AwLjIuMC1bbWV0aG9kXW91dHB1dC1zdHJlYW0uYmxvY2tpbmctd3JpdGUtYW5kLWZsdXNoDkNpbmRpcmVjdC13YXNpOmlvL3N0cmVhbXNAMC4yLjAtW21ldGhvZF1vdXRwdXQtc3RyZWFtLmJsb2NraW5nLWZsdXNoDzJpbmRpcmVjdC13YXNpOnJhbmRvbS9yYW5kb21AMC4yLjAtZ2V0LXJhbmRvbS1ieXRlcxAzaW5kaXJlY3Qtd2FzaTpjbGkvZW52aXJvbm1lbnRAMC4yLjAtZ2V0LWVudmlyb25tZW50ETlpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRpbkAwLjIuMC1nZXQtdGVybWluYWwtc3RkaW4SO2luZGlyZWN0LXdhc2k6Y2xpL3Rlcm1pbmFsLXN0ZG91dEAwLjIuMC1nZXQtdGVybWluYWwtc3Rkb3V0EztpbmRpcmVjdC13YXNpOmNsaS90ZXJtaW5hbC1zdGRlcnJAMC4yLjAtZ2V0LXRlcm1pbmFsLXN0ZGVychQmYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1wYXRoX29wZW4VLGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfZmlsZXN0YXRfZ2V0FidhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXJhbmRvbV9nZXQXJGFkYXB0LXdhc2lfc25hcHNob3RfcHJldmlldzEtZmRfcmVhZBglYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF93cml0ZRkoYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX2dldBouYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1lbnZpcm9uX3NpemVzX2dldBslYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9jbG9zZRwrYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2dldB0wYWRhcHQtd2FzaV9zbmFwc2hvdF9wcmV2aWV3MS1mZF9wcmVzdGF0X2Rpcl9uYW1lHiZhZGFwdC13YXNpX3NuYXBzaG90X3ByZXZpZXcxLXByb2NfZXhpdA');
2964
+ const module3 = base64Compile('AGFzbQEAAAABUQxgAX8AYAN/fn8AYAJ/fwBgB39/f39/f38AYAR/f39/AGACfn8AYAl/f39/f35+f38Bf2ACf38Bf2AEf39/fwF/YAF/AX9gA39/fwF/YAF/AALAASAAATAAAAABMQABAAEyAAEAATMAAgABNAACAAE1AAIAATYAAwABNwACAAE4AAIAATkAAQACMTAAAQACMTEAAgACMTIABAACMTMABAACMTQAAgACMTUABQACMTYAAAACMTcAAAACMTgAAAACMTkAAAACMjAABgACMjEABwACMjIABwACMjMACAACMjQACAACMjUABwACMjYABwACMjcACQACMjgABwACMjkACgACMzAACwAIJGltcG9ydHMBcAEfHwklAQBBAAsfAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHgAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjAxLjAAHARuYW1lABUUd2l0LWNvbXBvbmVudDpmaXh1cHM');
2709
2965
  ({ exports: exports0 } = await instantiateCore(await module2));
2710
2966
  ({ exports: exports1 } = await instantiateCore(await module0, {
2711
2967
  wasi_snapshot_preview1: {
@@ -2733,22 +2989,22 @@ export const $init = (async() => {
2733
2989
  'get-environment': exports0['16'],
2734
2990
  },
2735
2991
  'wasi:cli/exit@0.2.0': {
2736
- exit: trampoline8,
2992
+ exit: trampoline6,
2737
2993
  },
2738
2994
  'wasi:cli/stderr@0.2.0': {
2739
- 'get-stderr': trampoline7,
2995
+ 'get-stderr': trampoline5,
2740
2996
  },
2741
2997
  'wasi:cli/stdin@0.2.0': {
2742
- 'get-stdin': trampoline9,
2998
+ 'get-stdin': trampoline7,
2743
2999
  },
2744
3000
  'wasi:cli/stdout@0.2.0': {
2745
- 'get-stdout': trampoline10,
3001
+ 'get-stdout': trampoline8,
2746
3002
  },
2747
3003
  'wasi:cli/terminal-input@0.2.0': {
2748
- '[resource-drop]terminal-input': trampoline5,
3004
+ '[resource-drop]terminal-input': trampoline9,
2749
3005
  },
2750
3006
  'wasi:cli/terminal-output@0.2.0': {
2751
- '[resource-drop]terminal-output': trampoline6,
3007
+ '[resource-drop]terminal-output': trampoline10,
2752
3008
  },
2753
3009
  'wasi:cli/terminal-stderr@0.2.0': {
2754
3010
  'get-terminal-stderr': exports0['19'],