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