errors.mjs raw
1 // Package errors
2 // Generated by MoxieJS — Moxie JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 // Package-level variables
7 export let ErrUnsupported = { $value: null, $get() { return this.$value; }, $set(v) { this.$value = v; } };
8
9 $rt.types.registerType('errors.errorString', {
10 id: 'errors.errorString',
11 kind: 'struct',
12 methods: new Map(),
13 fields: [
14 { name: 's', type: 'string', tag: '', embedded: false },
15 ],
16 zero: () => ({ s: '' }),
17 });
18 $rt.types.registerType('errors.joinError', {
19 id: 'errors.joinError',
20 kind: 'struct',
21 methods: new Map(),
22 fields: [
23 { name: 'errs', type: '[]error', tag: '', embedded: false },
24 ],
25 zero: () => ({ errs: null }),
26 });
27 export function init() {
28 let $t0_1;
29 $t0_1 = New('unsupported operation');
30 ErrUnsupported.$set($t0_1);
31 return;
32 }
33
34 export function New(text) {
35 let $t0_1, $t1_2, $t2_3;
36 $t0_1 = { $value: { s: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
37 $t1_2 = { $get() { return $t0_1.$get().s; }, $set(v) { const obj = $t0_1.$get(); obj.s = v; $t0_1.$set(obj); } };
38 $t1_2.$set(text);
39 $t2_3 = $rt.types.makeInterface('*errors.errorString', $t0_1);
40 return $t2_3;
41 }
42
43 export function Join(errs) {
44 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39;
45 let $block = 0;
46 while (true) {
47 switch ($block) {
48 case 0: {
49 $t0_1 = $rt.builtin.len(errs);
50 $t1_2 = 0;
51 $t2_3 = -1;
52 $block = 1; break;
53 break;
54 }
55 case 1: {
56 $t3_4 = ($t2_3 + 1);
57 $t4_5 = ($t3_4 < $t0_1);
58 if ($t4_5) {
59 $block = 2; break;
60 }
61 else {
62 $block = 3; break;
63 }
64 break;
65 }
66 case 2: {
67 $t5_6 = errs.addr($t3_4);
68 $t6_7 = $t5_6.$get();
69 $t7_8 = ($t6_7 !== null);
70 if ($t7_8) {
71 $block = 4; break;
72 }
73 else {
74 let $phi0 = $t1_2;
75 let $phi1 = $t3_4;
76 $t1_2 = $phi0;
77 $t2_3 = $phi1;
78 $block = 1; break;
79 }
80 break;
81 }
82 case 3: {
83 $t8_9 = ($t1_2 === 0);
84 if ($t8_9) {
85 $block = 5; break;
86 }
87 else {
88 $block = 6; break;
89 }
90 break;
91 }
92 case 4: {
93 $t9_10 = ($t1_2 + 1);
94 $t1_2 = $t9_10;
95 $t2_3 = $t3_4;
96 $block = 1; break;
97 break;
98 }
99 case 5: {
100 return null;
101 break;
102 }
103 case 6: {
104 $t10_11 = ($t1_2 === 1);
105 if ($t10_11) {
106 $block = 7; break;
107 }
108 else {
109 $block = 8; break;
110 }
111 break;
112 }
113 case 7: {
114 $t11_12 = $rt.builtin.len(errs);
115 $t16_17 = -1;
116 $block = 9; break;
117 break;
118 }
119 case 8: {
120 $t12_13 = { $value: { errs: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
121 $t13_14 = { $get() { return $t12_13.$get().errs; }, $set(v) { const obj = $t12_13.$get(); obj.errs = v; $t12_13.$set(obj); } };
122 $t14_15 = $rt.builtin.makeSlice(0, $t1_2, null);
123 $t13_14.$set($t14_15);
124 $t15_16 = $rt.builtin.len(errs);
125 $t25_26 = -1;
126 $block = 13; break;
127 break;
128 }
129 case 9: {
130 $t17_18 = ($t16_17 + 1);
131 $t18_19 = ($t17_18 < $t11_12);
132 if ($t18_19) {
133 $block = 10; break;
134 }
135 else {
136 $block = 8; break;
137 }
138 break;
139 }
140 case 10: {
141 $t19_20 = errs.addr($t17_18);
142 $t20_21 = $t19_20.$get();
143 $t21_22 = ($t20_21 !== null);
144 if ($t21_22) {
145 $block = 11; break;
146 }
147 else {
148 $t16_17 = $t17_18;
149 $block = 9; break;
150 }
151 break;
152 }
153 case 11: {
154 { try { $t22_23 = [$rt.types.interfaceAssert($t20_21, '$iface_1').$value, true]; } catch(e) { $t22_23 = [null, false]; } }
155 $t23_24 = $t22_23[0];
156 $t24_25 = $t22_23[1];
157 if ($t24_25) {
158 $block = 12; break;
159 }
160 else {
161 $t16_17 = $t17_18;
162 $block = 9; break;
163 }
164 break;
165 }
166 case 12: {
167 return $t20_21;
168 break;
169 }
170 case 13: {
171 $t26_27 = ($t25_26 + 1);
172 $t27_28 = ($t26_27 < $t15_16);
173 if ($t27_28) {
174 $block = 14; break;
175 }
176 else {
177 $block = 15; break;
178 }
179 break;
180 }
181 case 14: {
182 $t28_29 = errs.addr($t26_27);
183 $t29_30 = $t28_29.$get();
184 $t30_31 = ($t29_30 !== null);
185 if ($t30_31) {
186 $block = 16; break;
187 }
188 else {
189 $t25_26 = $t26_27;
190 $block = 13; break;
191 }
192 break;
193 }
194 case 15: {
195 $t31_32 = $rt.types.makeInterface('*errors.joinError', $t12_13);
196 return $t31_32;
197 break;
198 }
199 case 16: {
200 $t32_33 = { $get() { return $t12_13.$get().errs; }, $set(v) { const obj = $t12_13.$get(); obj.errs = v; $t12_13.$set(obj); } };
201 $t33_34 = $t32_33.$get();
202 $t34_35 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
203 $t35_36 = $t34_35.$get().addr(0);
204 $t35_36.$set($t29_30);
205 $t36_37 = $rt.builtin.sliceSlice($t34_35.$get(), undefined, undefined, undefined);
206 $t37_38 = $rt.builtin.appendSlice($t33_34, $t36_37);
207 $t38_39 = { $get() { return $t12_13.$get().errs; }, $set(v) { const obj = $t12_13.$get(); obj.errs = v; $t12_13.$set(obj); } };
208 $t38_39.$set($t37_38);
209 $t25_26 = $t26_27;
210 $block = 13; break;
211 break;
212 }
213 }
214 }
215 }
216
217 export function Unwrap(err) {
218 let $t0_1, $t1_2, $t2_3, $t3_4;
219 let $block = 0;
220 while (true) {
221 switch ($block) {
222 case 0: {
223 { try { $t0_1 = [$rt.types.interfaceAssert(err, '$iface_2').$value, true]; } catch(e) { $t0_1 = [null, false]; } }
224 $t1_2 = $t0_1[0];
225 $t2_3 = $t0_1[1];
226 if ($t2_3) {
227 $block = 2; break;
228 }
229 else {
230 $block = 1; break;
231 }
232 break;
233 }
234 case 1: {
235 return null;
236 break;
237 }
238 case 2: {
239 $t3_4 = $rt.types.methodCall($t1_2, 'Unwrap', []);
240 return $t3_4;
241 break;
242 }
243 }
244 }
245 }
246
247 export function Is(err, target) {
248 let $t0_1, $t1_2, $t2_3, $t3_4;
249 let $block = 0;
250 while (true) {
251 switch ($block) {
252 case 0: {
253 $t0_1 = (err === null);
254 if ($t0_1) {
255 $block = 1; break;
256 }
257 else {
258 $block = 3; break;
259 }
260 break;
261 }
262 case 1: {
263 $t1_2 = (err === target);
264 return $t1_2;
265 break;
266 }
267 case 2: {
268 $t2_3 = is(err, target, true);
269 return $t2_3;
270 break;
271 }
272 case 3: {
273 $t3_4 = (target === null);
274 if ($t3_4) {
275 $block = 1; break;
276 }
277 else {
278 $block = 2; break;
279 }
280 break;
281 }
282 }
283 }
284 }
285
286 export function is(err, target, targetComparable) {
287 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22;
288 let $block = 0;
289 while (true) {
290 switch ($block) {
291 case 0: {
292 $t0_1 = err;
293 $block = 1; break;
294 break;
295 }
296 case 1: {
297 if (targetComparable) {
298 $block = 4; break;
299 }
300 else {
301 $block = 3; break;
302 }
303 break;
304 }
305 case 2: {
306 return true;
307 break;
308 }
309 case 3: {
310 { try { $t1_2 = [$rt.types.interfaceAssert($t0_1, '$iface_3').$value, true]; } catch(e) { $t1_2 = [null, false]; } }
311 $t2_3 = $t1_2[0];
312 $t3_4 = $t1_2[1];
313 if ($t3_4) {
314 $block = 7; break;
315 }
316 else {
317 $block = 6; break;
318 }
319 break;
320 }
321 case 4: {
322 $t4_5 = ($t0_1 === target);
323 if ($t4_5) {
324 $block = 2; break;
325 }
326 else {
327 $block = 3; break;
328 }
329 break;
330 }
331 case 5: {
332 return true;
333 break;
334 }
335 case 6: {
336 { try { $t5_6 = [$rt.types.interfaceAssert($t0_1, '$iface_4').$value, true]; } catch(e) { $t5_6 = [null, false]; } }
337 $t6_7 = $t5_6[0];
338 $t7_8 = $t5_6[1];
339 if ($t7_8) {
340 $block = 8; break;
341 }
342 else {
343 $block = 9; break;
344 }
345 break;
346 }
347 case 7: {
348 $t8_9 = $rt.types.methodCall($t2_3, 'Is', [target]);
349 if ($t8_9) {
350 $block = 5; break;
351 }
352 else {
353 $block = 6; break;
354 }
355 break;
356 }
357 case 8: {
358 $t9_10 = $rt.types.methodCall($t6_7, 'Unwrap', []);
359 $t10_11 = ($t9_10 === null);
360 if ($t10_11) {
361 $block = 10; break;
362 }
363 else {
364 $t0_1 = $t9_10;
365 $block = 1; break;
366 }
367 break;
368 }
369 case 9: {
370 { try { $t11_12 = [$rt.types.interfaceAssert($t0_1, '$iface_5').$value, true]; } catch(e) { $t11_12 = [null, false]; } }
371 $t12_13 = $t11_12[0];
372 $t13_14 = $t11_12[1];
373 if ($t13_14) {
374 $block = 11; break;
375 }
376 else {
377 $block = 12; break;
378 }
379 break;
380 }
381 case 10: {
382 return false;
383 break;
384 }
385 case 11: {
386 $t14_15 = $rt.types.methodCall($t12_13, 'Unwrap', []);
387 $t15_16 = $rt.builtin.len($t14_15);
388 $t16_17 = -1;
389 $block = 13; break;
390 break;
391 }
392 case 12: {
393 return false;
394 break;
395 }
396 case 13: {
397 $t17_18 = ($t16_17 + 1);
398 $t18_19 = ($t17_18 < $t15_16);
399 if ($t18_19) {
400 $block = 14; break;
401 }
402 else {
403 $block = 15; break;
404 }
405 break;
406 }
407 case 14: {
408 $t19_20 = $t14_15.addr($t17_18);
409 $t20_21 = $t19_20.$get();
410 $t21_22 = is($t20_21, target, targetComparable);
411 if ($t21_22) {
412 $block = 16; break;
413 }
414 else {
415 $t16_17 = $t17_18;
416 $block = 13; break;
417 }
418 break;
419 }
420 case 15: {
421 return false;
422 break;
423 }
424 case 16: {
425 return true;
426 break;
427 }
428 }
429 }
430 }
431
432 export function errorString$Error(e) {
433 let $t0_1, $t1_2;
434 $t0_1 = { $get() { return e.$get().s; }, $set(v) { const obj = e.$get(); obj.s = v; e.$set(obj); } };
435 $t1_2 = $t0_1.$get();
436 return $t1_2;
437 }
438
439 $rt.types.getType('errors.errorString')?.methods?.set('Error', errorString$Error);
440 export function joinError$Error(e) {
441 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30;
442 let $block = 0;
443 while (true) {
444 switch ($block) {
445 case 0: {
446 $t0_1 = { $get() { return e.$get().errs; }, $set(v) { const obj = e.$get(); obj.errs = v; e.$set(obj); } };
447 $t1_2 = $t0_1.$get();
448 $t2_3 = $rt.builtin.len($t1_2);
449 $t3_4 = ($t2_3 === 1);
450 if ($t3_4) {
451 $block = 1; break;
452 }
453 else {
454 $block = 2; break;
455 }
456 break;
457 }
458 case 1: {
459 $t4_5 = { $get() { return e.$get().errs; }, $set(v) { const obj = e.$get(); obj.errs = v; e.$set(obj); } };
460 $t5_6 = $t4_5.$get();
461 $t6_7 = $t5_6.addr(0);
462 $t7_8 = $t6_7.$get();
463 $t8_9 = $rt.types.methodCall($t7_8, 'Error', []);
464 return $t8_9;
465 break;
466 }
467 case 2: {
468 $t9_10 = { $get() { return e.$get().errs; }, $set(v) { const obj = e.$get(); obj.errs = v; e.$set(obj); } };
469 $t10_11 = $t9_10.$get();
470 $t11_12 = $t10_11.addr(0);
471 $t12_13 = $t11_12.$get();
472 $t13_14 = $rt.types.methodCall($t12_13, 'Error', []);
473 $t14_15 = { $get() { return e.$get().errs; }, $set(v) { const obj = e.$get(); obj.errs = v; e.$set(obj); } };
474 $t15_16 = $t14_15.$get();
475 $t16_17 = $rt.builtin.sliceSlice($t15_16, 1, undefined, undefined);
476 $t17_18 = $rt.builtin.len($t16_17);
477 $t18_19 = $t13_14;
478 $t19_20 = -1;
479 $block = 3; break;
480 break;
481 }
482 case 3: {
483 $t20_21 = ($t19_20 + 1);
484 $t21_22 = ($t20_21 < $t17_18);
485 if ($t21_22) {
486 $block = 4; break;
487 }
488 else {
489 $block = 5; break;
490 }
491 break;
492 }
493 case 4: {
494 $t22_23 = $t16_17.addr($t20_21);
495 $t23_24 = $t22_23.$get();
496 $t24_25 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
497 $t25_26 = $t24_25.$get().addr(0);
498 $t25_26.$set(10);
499 $t26_27 = $rt.builtin.sliceSlice($t24_25.$get(), undefined, undefined, undefined);
500 $t27_28 = $rt.builtin.appendSlice($t18_19, $t26_27);
501 $t28_29 = $rt.types.methodCall($t23_24, 'Error', []);
502 $t29_30 = $rt.builtin.appendString($t27_28, $t28_29);
503 $t18_19 = $t29_30;
504 $t19_20 = $t20_21;
505 $block = 3; break;
506 break;
507 }
508 case 5: {
509 return $t18_19;
510 break;
511 }
512 }
513 }
514 }
515
516 $rt.types.getType('errors.joinError')?.methods?.set('Error', joinError$Error);
517 export function joinError$Unwrap(e) {
518 let $t0_1, $t1_2;
519 $t0_1 = { $get() { return e.$get().errs; }, $set(v) { const obj = e.$get(); obj.errs = v; e.$set(obj); } };
520 $t1_2 = $t0_1.$get();
521 return $t1_2;
522 }
523
524 $rt.types.getType('errors.joinError')?.methods?.set('Unwrap', joinError$Unwrap);
525