porffor 0.60.28 → 0.60.29

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.
@@ -1,169 +1,222 @@
1
1
  import type {} from './porffor.d.ts';
2
2
 
3
- export const __Porffor_json_serialize = (value: any, depth: i32, space: bytestring|undefined): bytestring|undefined => {
3
+ export const __Porffor_bytestring_bufferStr = (buffer: i32, str: bytestring): i32 => {
4
+ const len: i32 = str.length;
5
+ let strPtr: i32 = Porffor.wasm`local.get ${str}`;
6
+ let ptr: i32 = Porffor.wasm`local.get ${buffer}`;
7
+ let endPtr: i32 = ptr + len;
8
+
9
+ while (ptr + 4 <= endPtr) {
10
+ Porffor.wasm.i32.store(ptr, Porffor.wasm.i32.load(strPtr, 0, 4), 0, 4);
11
+ ptr += 4;
12
+ strPtr += 4;
13
+ }
14
+
15
+ while (ptr < endPtr) {
16
+ Porffor.wasm.i32.store8(ptr++, Porffor.wasm.i32.load8_u(strPtr++, 0, 4), 0, 4);
17
+ }
18
+
19
+ return ptr;
20
+ };
21
+
22
+ export const __Porffor_bytestring_bufferChar = (buffer: i32, char: i32): i32 => {
23
+ Porffor.wasm.i32.store8(buffer, char, 0, 4);
24
+ return buffer + 1;
25
+ };
26
+
27
+ export const __Porffor_bytestring_buffer2Char = (buffer: i32, char1: i32, char2: i32): i32 => {
28
+ Porffor.wasm.i32.store8(buffer, char1, 0, 4);
29
+ Porffor.wasm.i32.store8(buffer + 1, char2, 0, 4);
30
+ return buffer + 2;
31
+ };
32
+
33
+ export const __Porffor_json_canSerialize = (value: any): boolean => {
34
+ if (Porffor.fastOr(
35
+ value === null,
36
+ value === true,
37
+ value === false,
38
+ (Porffor.type(value) | 0b10000000) == Porffor.TYPES.bytestring,
39
+ Porffor.type(value) == Porffor.TYPES.stringobject,
40
+ Porffor.type(value) == Porffor.TYPES.number,
41
+ Porffor.type(value) == Porffor.TYPES.numberobject,
42
+ Porffor.type(value) == Porffor.TYPES.array,
43
+ Porffor.type(value) > Porffor.TYPES.function
44
+ )) return true;
45
+
46
+ if (Porffor.type(value) == Porffor.TYPES.bigint) {
47
+ throw new TypeError('Cannot serialize BigInts');
48
+ }
49
+
50
+ return false;
51
+ };
52
+
53
+ export const __Porffor_json_serialize = (_buffer: i32, value: any, depth: i32, space: bytestring|undefined): i32 => {
4
54
  // somewhat modelled after 25.5.2.2 SerializeJSONProperty: https://tc39.es/ecma262/#sec-serializejsonproperty
5
- if (value === null) return 'null';
6
- if (value === true) return 'true';
7
- if (value === false) return 'false';
55
+ let buffer: i32 = Porffor.wasm`local.get ${_buffer}`;
56
+ if (value === null) return __Porffor_bytestring_bufferStr(buffer, 'null');
57
+ if (value === true) return __Porffor_bytestring_bufferStr(buffer, 'true');
58
+ if (value === false) return __Porffor_bytestring_bufferStr(buffer, 'false');
8
59
 
9
60
  if (Porffor.fastOr(
10
61
  (Porffor.type(value) | 0b10000000) == Porffor.TYPES.bytestring,
11
62
  Porffor.type(value) == Porffor.TYPES.stringobject
12
63
  )) { // string
13
- const out: bytestring = Porffor.allocate();
14
- Porffor.bytestring.appendChar(out, 34); // start "
64
+ buffer = __Porffor_bytestring_bufferChar(buffer, 34); // start "
15
65
 
16
66
  const len: i32 = value.length;
17
67
  for (let i: i32 = 0; i < len; i++) {
18
68
  const c: i32 = value.charCodeAt(i);
19
69
  if (c < 0x20) {
20
70
  if (c == 0x08) {
21
- Porffor.bytestring.append2Char(out, 92, 98); // \b
71
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 98); // \b
22
72
  continue;
23
73
  }
24
74
 
25
75
  if (c == 0x09) {
26
- Porffor.bytestring.append2Char(out, 92, 116); // \t
76
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 116); // \t
27
77
  continue;
28
78
  }
29
79
 
30
80
  if (c == 0x0a) {
31
- Porffor.bytestring.append2Char(out, 92, 110); // \n
81
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 110); // \n
32
82
  continue;
33
83
  }
34
84
 
35
85
  if (c == 0x0c) {
36
- Porffor.bytestring.append2Char(out, 92, 102); // \f
86
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 102); // \f
37
87
  continue;
38
88
  }
39
89
 
40
90
  if (c == 0x0d) {
41
- Porffor.bytestring.append2Char(out, 92, 114); // \r
91
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 114); // \r
42
92
  continue;
43
93
  }
44
94
 
45
95
  // \u00FF
46
- Porffor.bytestring.append2Char(out, 92, 117); // \u
47
- Porffor.bytestring.append2Char(out, 48, 48); // 00
96
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 117); // \u
97
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 48, 48); // 00
48
98
 
49
99
  const h1: i32 = (c & 0xf0) / 0x10;
50
100
  const h2: i32 = c & 0x0f;
51
- Porffor.bytestring.appendChar(out, h1 < 10 ? h1 + 48 : h1 + 55); // 0-9 or A-F
52
- Porffor.bytestring.appendChar(out, h2 < 10 ? h2 + 48 : h2 + 55); // 0-9 or A-F
101
+ buffer = __Porffor_bytestring_buffer2Char(buffer, h1 < 10 ? h1 + 48 : h1 + 55, h2 < 10 ? h2 + 48 : h2 + 55); // 0-9 or A-F
53
102
  continue;
54
103
  }
55
104
 
56
105
  if (c == 0x22) { // "
57
- Porffor.bytestring.append2Char(out, 92, 34); // \"
106
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 34); // \"
58
107
  continue;
59
108
  }
60
109
 
61
110
  if (c == 0x5c) { // \
62
- Porffor.bytestring.append2Char(out, 92, 92); // \\
111
+ buffer = __Porffor_bytestring_buffer2Char(buffer, 92, 92); // \\
63
112
  continue;
64
113
  }
65
114
 
66
115
  // todo: support non-bytestrings
67
- Porffor.bytestring.appendChar(out, c);
116
+ buffer = __Porffor_bytestring_bufferChar(buffer, c);
68
117
  }
69
118
 
70
- Porffor.bytestring.appendChar(out, 34); // final "
71
- return out;
119
+ return __Porffor_bytestring_bufferChar(buffer, 34); // final "
72
120
  }
73
121
 
74
122
  if (Porffor.fastOr(
75
123
  Porffor.type(value) == Porffor.TYPES.number,
76
124
  Porffor.type(value) == Porffor.TYPES.numberobject
77
125
  )) { // number
78
- if (Number.isFinite(value)) return value + '';
79
- return 'null';
126
+ if (Number.isFinite(value)) {
127
+ return __Porffor_bytestring_bufferStr(buffer, __Number_prototype_toString(value, 10));
128
+ }
129
+
130
+ return __Porffor_bytestring_bufferStr(buffer, 'null');
80
131
  }
81
132
 
82
133
  if (Porffor.type(value) == Porffor.TYPES.array) {
83
- const out: bytestring = Porffor.allocate();
84
- Porffor.bytestring.appendChar(out, 91); // [
134
+ buffer = __Porffor_bytestring_bufferChar(buffer, 91); // [
85
135
 
86
136
  const hasSpace: boolean = space !== undefined;
87
137
  depth += 1;
88
138
 
89
139
  for (const x of (value as any[])) {
90
140
  if (hasSpace) {
91
- Porffor.bytestring.appendChar(out, 10); // \n
92
- for (let i: i32 = 0; i < depth; i++) Porffor.bytestring.appendStr(out, space as bytestring);
141
+ buffer = __Porffor_bytestring_bufferChar(buffer, 10); // \n
142
+ for (let i: i32 = 0; i < depth; i++) buffer = __Porffor_bytestring_bufferStr(buffer, space as bytestring);
93
143
  }
94
144
 
95
- Porffor.bytestring.appendStr(out, __Porffor_json_serialize(x, depth, space) ?? 'null');
145
+ if (__Porffor_json_canSerialize(x)) {
146
+ buffer = __Porffor_json_serialize(buffer, x, depth, space);
147
+ } else {
148
+ // non-serializable value, write null
149
+ buffer = __Porffor_bytestring_bufferStr(buffer, 'null');
150
+ }
96
151
 
97
- Porffor.bytestring.appendChar(out, 44); // ,
152
+ buffer = __Porffor_bytestring_bufferChar(buffer, 44); // ,
98
153
  }
99
154
 
100
155
  depth -= 1;
101
156
 
102
- // swap trailing , with ] (or append if empty)
103
- if (out.length > 1) {
157
+ // swap trailing , with ] (or \n or append if empty)
158
+ if ((buffer - _buffer) > 1) {
104
159
  if (hasSpace) {
105
- Porffor.bytestring.appendChar(out, 10); // \n
106
- for (let i: i32 = 0; i < depth; i++) Porffor.bytestring.appendStr(out, space as bytestring);
107
- Porffor.bytestring.appendChar(out, 93); // ]
108
- } else {
109
- Porffor.wasm.i32.store8(Porffor.wasm`local.get ${out}` + out.length, 93, 0, 3); // ]
160
+ Porffor.wasm.i32.store8(buffer, 10, 0, 3); // \n
161
+ for (let i: i32 = 0; i < depth; i++) buffer = __Porffor_bytestring_bufferStr(buffer, space as bytestring);
162
+ return __Porffor_bytestring_bufferChar(buffer, 93); // ]
110
163
  }
111
- } else {
112
- Porffor.bytestring.appendChar(out, 93); // ]
164
+
165
+ Porffor.wasm.i32.store8(buffer, 93, 0, 3); // ]
166
+ return buffer;
113
167
  }
114
168
 
115
- return out;
169
+ return __Porffor_bytestring_bufferChar(buffer, 93); // ]
116
170
  }
117
171
 
118
172
  if (Porffor.type(value) > 0x06) {
119
173
  // non-function object
120
- const out: bytestring = Porffor.allocate();
121
- Porffor.bytestring.appendChar(out, 123); // {
174
+ buffer = __Porffor_bytestring_bufferChar(buffer, 123); // {
122
175
 
123
176
  const hasSpace: boolean = space !== undefined;
124
177
  depth += 1;
125
178
 
126
- for (const key in (value as object)) {
179
+ for (const key: bytestring in (value as object)) {
127
180
  // skip symbol keys
128
181
  if (Porffor.type(key) == Porffor.TYPES.symbol) continue;
129
182
 
130
- // skip non-serializable values (functions, etc)
131
- const val: bytestring|undefined = __Porffor_json_serialize((value as object)[key], depth, space);
132
- if (val == null) continue;
183
+ const val: any = (value as object)[key];
184
+ if (!__Porffor_json_canSerialize(val)) {
185
+ // skip non-serializable value
186
+ continue;
187
+ }
133
188
 
134
189
  if (hasSpace) {
135
- Porffor.bytestring.appendChar(out, 10); // \n
136
- for (let i: i32 = 0; i < depth; i++) Porffor.bytestring.appendStr(out, space as bytestring);
190
+ buffer = __Porffor_bytestring_bufferChar(buffer, 10); // \n
191
+ for (let i: i32 = 0; i < depth; i++) buffer = __Porffor_bytestring_bufferStr(buffer, space as bytestring);
137
192
  }
138
193
 
139
- Porffor.bytestring.appendChar(out, 34); // "
140
- Porffor.bytestring.appendStr(out, key);
141
- Porffor.bytestring.appendChar(out, 34); // "
142
-
143
- Porffor.bytestring.appendChar(out, 58); // :
144
- if (hasSpace) Porffor.bytestring.appendChar(out, 32); // space
194
+ buffer = __Porffor_bytestring_bufferChar(buffer, 34); // "
195
+ buffer = __Porffor_bytestring_bufferStr(buffer, key);
196
+ buffer = __Porffor_bytestring_bufferChar(buffer, 34); // "
145
197
 
146
- Porffor.bytestring.appendStr(out, val);
198
+ buffer = __Porffor_bytestring_bufferChar(buffer, 58); // :
199
+ if (hasSpace) buffer = __Porffor_bytestring_bufferChar(buffer, 32); // space
147
200
 
148
- Porffor.bytestring.appendChar(out, 44); // ,
201
+ buffer = __Porffor_json_serialize(buffer, val, depth, space);
202
+ buffer = __Porffor_bytestring_bufferChar(buffer, 44); // ,
149
203
  }
150
204
 
151
205
  depth -= 1;
152
206
 
153
- // swap trailing , with } (or append if empty)
154
- if (out.length > 1) {
207
+ // swap trailing , with } (or \n or append if empty)
208
+ if ((buffer - _buffer) > 1) {
155
209
  if (hasSpace) {
156
- Porffor.bytestring.appendChar(out, 10); // \n
157
- for (let i: i32 = 0; i < depth; i++) Porffor.bytestring.appendStr(out, space as bytestring);
158
- Porffor.bytestring.appendChar(out, 125); // }
159
- } else {
160
- Porffor.wasm.i32.store8(Porffor.wasm`local.get ${out}` + out.length, 125, 0, 3); // }
210
+ Porffor.wasm.i32.store8(buffer, 10, 0, 3); // \n
211
+ for (let i: i32 = 0; i < depth; i++) buffer = __Porffor_bytestring_bufferStr(buffer, space as bytestring);
212
+ return __Porffor_bytestring_bufferChar(buffer, 125); // }
161
213
  }
162
- } else {
163
- Porffor.bytestring.appendChar(out, 125); // }
214
+
215
+ Porffor.wasm.i32.store8(buffer, 125, 0, 3); // }
216
+ return buffer;
164
217
  }
165
218
 
166
- return out;
219
+ return __Porffor_bytestring_bufferChar(buffer, 125); // }
167
220
  }
168
221
 
169
222
  if (Porffor.type(value) == 0x04) {
@@ -171,7 +224,7 @@ export const __Porffor_json_serialize = (value: any, depth: i32, space: bytestri
171
224
  throw new TypeError('Cannot serialize BigInts');
172
225
  }
173
226
 
174
- return undefined;
227
+ return -1;
175
228
  };
176
229
 
177
230
  export const __JSON_stringify = (value: any, replacer: any, space: any) => {
@@ -187,7 +240,7 @@ export const __JSON_stringify = (value: any, replacer: any, space: any) => {
187
240
  if (space < 1) {
188
241
  space = undefined;
189
242
  } else {
190
- const spaceStr: bytestring = Porffor.allocate();
243
+ const spaceStr: bytestring = Porffor.allocateBytes(4 + space);
191
244
  for (let i: i32 = 0; i < space; i++) Porffor.bytestring.appendChar(spaceStr, 32);
192
245
 
193
246
  space = spaceStr;
@@ -209,7 +262,12 @@ export const __JSON_stringify = (value: any, replacer: any, space: any) => {
209
262
  }
210
263
  }
211
264
 
212
- return __Porffor_json_serialize(value, 0, space);
265
+ const buffer: bytestring = Porffor.allocate();
266
+ const out = __Porffor_json_serialize(buffer, value, 0, space);
267
+ if (out == -1) return undefined;
268
+
269
+ buffer.length = out - (buffer as i32);
270
+ return buffer;
213
271
  };
214
272
 
215
273
 
@@ -1411,6 +1411,17 @@ export const BuiltinFuncs = () => {
1411
1411
  ]
1412
1412
  };
1413
1413
 
1414
+ _.__Porffor_memorySize = {
1415
+ params: [],
1416
+ returns: [ Valtype.i32 ],
1417
+ returnType: TYPES.number,
1418
+ wasm: () => [
1419
+ [ Opcodes.memory_size, 0 ],
1420
+ number(PageSize, Valtype.i32),
1421
+ [ Opcodes.i32_mul ]
1422
+ ]
1423
+ };
1424
+
1414
1425
  // allow non-comptime redefinition later in precompiled
1415
1426
  const comptime = (name, returnType, comptime) => {
1416
1427
  let v = {
@@ -1516,7 +1527,7 @@ export const BuiltinFuncs = () => {
1516
1527
  );
1517
1528
 
1518
1529
  // Porffor.call(func, argArray, this, newTarget)
1519
- comptime('__Porffor_call', TYPES.number, (scope, decl, { generate, getNodeType }) => generate(scope, {
1530
+ comptime('__Porffor_call', undefined, (scope, decl, { generate, getNodeType }) => generate(scope, {
1520
1531
  type: 'CallExpression',
1521
1532
  callee: decl.arguments[0],
1522
1533
  arguments: [ {
@@ -1539,21 +1550,23 @@ export const BuiltinFuncs = () => {
1539
1550
  // todo: this breaks console.group, etc - disable this if those are used but edge case for now
1540
1551
  comptime('__console_log', TYPES.undefined, (scope, decl, { generate, getNodeType, knownTypeWithGuess, printStaticStr }) => {
1541
1552
  const slow = () => {
1542
- decl._noInternalConstr = true;
1553
+ decl._noComptime = true;
1543
1554
  return generate(scope, decl);
1544
1555
  };
1545
1556
  const fast = name => {
1546
1557
  return [
1547
- ...generate(scope, {
1558
+ ...(!name ? [ number(UNDEFINED) ] : generate(scope, {
1548
1559
  ...decl,
1549
1560
  callee: {
1550
1561
  type: 'Identifier',
1551
1562
  name
1552
1563
  }
1553
- }),
1564
+ })),
1554
1565
  ...printStaticStr(scope, '\n')
1555
1566
  ];
1556
1567
  };
1568
+
1569
+ if (decl.arguments.length === 0) return fast();
1557
1570
  if (decl.arguments.length !== 1) return slow();
1558
1571
 
1559
1572
  generate(scope, decl.arguments[0]); // generate first to get accurate type
@@ -1967,16 +1967,37 @@ params:[124,127,124,127],typedParams:1,returns:[124,127],jsLength:1,
1967
1967
  locals:[124,127],localNames:["vals","vals#type","value","value#type","#async_out_promise","#last_type"],
1968
1968
  usesTag:1
1969
1969
  }
1970
+ x.__Porffor_bytestring_bufferStr={
1971
+ wasm:()=>eval("[[32,2],[252,3],[40,1,0],[184],[33,4],[32,2],[33,5],[32,0],[34,6],[32,4],[160],[33,7],[3,64],[32,6],[68,4],[160],[32,7],[101],[4,64],[32,6],[252,2],[32,5],[252,2],[40,0,4],[54,0,4],[32,6],[68,4],[160],[33,6],[32,5],[68,4],[160],[33,5],[12,1],[11],[11],[3,64],[32,6],[32,7],[99],[4,64],[32,6],[32,6],[68,1],[160],[33,6],[252,2],[32,5],[32,5],[68,1],[160],[33,5],[252,2],[45,0,4],[58,0,4],[12,1],[11],[11],[32,6],[15]]"),
1972
+ params:[124,127,124,127],typedParams:1,returns:[124],returnType:1,jsLength:2,
1973
+ locals:[124,124,124,124],localNames:["buffer","buffer#type","str","str#type","len","strPtr","ptr","endPtr"]
1974
+ }
1975
+ x.__Porffor_bytestring_bufferChar={
1976
+ wasm:()=>eval("[[32,0],[252,2],[32,2],[252,2],[58,0,4],[32,0],[68,1],[160],[15]]"),
1977
+ params:[124,127,124,127],typedParams:1,returns:[124],returnType:1,jsLength:2,
1978
+ locals:[],localNames:["buffer","buffer#type","char","char#type"]
1979
+ }
1980
+ x.__Porffor_bytestring_buffer2Char={
1981
+ wasm:()=>eval("[[32,0],[252,2],[32,2],[252,2],[58,0,4],[32,0],[68,1],[160],[252,2],[32,4],[252,2],[58,0,4],[32,0],[68,2],[160],[15]]"),
1982
+ params:[124,127,124,127,124,127],typedParams:1,returns:[124],returnType:1,jsLength:3,
1983
+ locals:[],localNames:["buffer","buffer#type","char1","char1#type","char2","char2#type"]
1984
+ }
1985
+ x.__Porffor_json_canSerialize={
1986
+ wasm:(_,{internalThrow})=>eval("[[32,0],[68,0],[97],[32,1],[65,128],[114],[65,7],[65,128],[114],[70],[113],[32,0],[68,1],[97],[32,1],[65,128],[114],[65,2],[65,128],[114],[70],[113],[114],[32,0],[68,0],[97],[32,1],[65,128],[114],[65,2],[65,128],[114],[70],[113],[114],[32,1],[65,128],[114],[183],[68,195],[97],[114],[32,1],[184],[68,33],[97],[114],[32,1],[184],[68,1],[97],[114],[32,1],[184],[68,32],[97],[114],[32,1],[184],[68,72],[97],[114],[32,1],[184],[68,6],[100],[114],[4,64],[68,1],[15],[26],[11],[32,1],[184],[68,4],[97],[4,64],...internalThrow(_,'TypeError',`Cannot serialize BigInts`),[26],[11],[68,0],[15]]"),
1987
+ params:[124,127],typedParams:1,returns:[124],returnType:2,jsLength:1,
1988
+ locals:[],localNames:["value","value#type"],
1989
+ usesTag:1
1990
+ }
1970
1991
  x.__Porffor_json_serialize={
1971
- wasm:(_,{t,makeString,builtin,internalThrow})=>eval("[[32,0],[68,0],[97],[32,1],[65,128],[114],[65,7],[65,128],[114],[70],[113],[4,64],...makeString(_,\"null\",1),[65,195],[15],[26],[11],[32,0],[68,1],[97],[32,1],[65,128],[114],[65,2],[65,128],[114],[70],[113],[4,64],...makeString(_,\"true\",1),[65,195],[15],[26],[11],[32,0],[68,0],[97],[32,1],[65,128],[114],[65,2],[65,128],[114],[70],[113],[4,64],...makeString(_,\"false\",1),[65,195],[15],[26],[11],[32,1],[65,128],[114],[183],[68,195],[97],[32,1],[184],[68,33],[97],[114],[4,64],[16,builtin('__Porffor_allocate')],[183],[34,6],[65,195],[68,34],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,0],[252,3],[40,1,0],[184],[33,7],[68,0],[33,8],[3,64],[32,8],[32,7],[99],[4,64],[2,64],[32,0],[33,10],[32,1],[33,11],[32,1],[33,12],[2,124],...t([33],()=>[[32,12],[65,33],[70],[4,64],[32,10],[32,11],[32,8],[65,1],[16,builtin('__String_prototype_charCodeAt')],[33,13],[12,1],[11]]),...t([67],()=>[[32,12],[65,67],[70],[4,64],[32,10],[32,11],[32,8],[65,1],[16,builtin('__String_prototype_charCodeAt')],[33,13],[12,1],[11]]),[32,12],[65,195],[70],[4,64],[32,10],[32,11],[32,8],[65,1],[16,builtin('__ByteString_prototype_charCodeAt')],[33,13],[12,1],[11],...internalThrow(_,'TypeError',`'charCodeAt' proto func tried to be called on a type without an impl`),[68,0],[11],[34,9],[68,32],[99],[4,64],[32,9],[68,8],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,98],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,2],[26],[11],[32,9],[68,9],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,116],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,2],[26],[11],[32,9],[68,10],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,110],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,2],[26],[11],[32,9],[68,12],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,102],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,2],[26],[11],[32,9],[68,13],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,114],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,2],[26],[11],[32,6],[65,195],[68,92],[65,1],[68,117],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[32,6],[65,195],[68,48],[65,1],[68,48],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[32,9],[252,2],[65,240],[113],[183],[68,16],[163],[33,14],[32,9],[252,2],[65,15],[113],[183],[33,15],[32,6],[65,195],[32,14],[68,10],[99],[4,124],[32,14],[68,48],[160],[65,1],[33,13],[5],[32,14],[68,55],[160],[65,1],[33,13],[11],[32,13],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,6],[65,195],[32,15],[68,10],[99],[4,124],[32,15],[68,48],[160],[65,1],[33,13],[5],[32,15],[68,55],[160],[65,1],[33,13],[11],[32,13],[16,builtin('__Porffor_bytestring_appendChar')],[26],[12,1],[26],[11],[32,9],[68,34],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,1],[26],[11],[32,9],[68,92],[97],[4,64],[32,6],[65,195],[68,92],[65,1],[68,92],[65,1],[16,builtin('__Porffor_bytestring_append2Char')],[26],[12,1],[26],[11],[32,6],[65,195],[32,9],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[11],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[32,6],[65,195],[68,34],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,6],[65,195],[15],[26],[11],[32,1],[184],[68,1],[97],[32,1],[184],[68,32],[97],[114],[4,64],[32,0],[16,builtin('__Number_isFinite')],[252,3],[4,64],[32,0],[32,1],[68,0],[65,195],[16,builtin('__Porffor_concatStrings')],[34,13],[15],[26],[11],...makeString(_,\"null\",1),[65,195],[15],[26],[11],[32,1],[184],[68,72],[97],[4,64],[16,builtin('__Porffor_allocate')],[183],[34,6],[65,195],[68,91],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,4],[68,0],[98],[32,5],[65,128],[114],[65,0],[65,128],[114],[71],[114],[184],[33,16],[32,2],[68,1],[160],[33,2],[32,0],[252,3],[33,17],[65,72],[33,20],[65,0],[33,19],[32,20],[65,72],[70],[32,20],[65,11],[70],[114],[32,20],[65,12],[70],[114],[32,20],[65,67],[70],[114],[32,20],[65,195],[70],[114],[32,20],[65,34],[70],[114],[32,20],[65,80],[78],[32,20],[65,90],[76],[113],[114],[69],[4,64],...internalThrow(_,'TypeError',`Tried for..of on non-iterable type`),[11],[32,17],[40,1,0],[33,18],[3,64],[2,64],[32,20],[33,12],[2,124],[32,12],[65,72],[70],[32,12],[65,11],[70],[114],[4,64],[32,18],[69],[13,2],[32,17],[43,0,4],[32,17],[45,0,12],[32,17],[65,9],[106],[33,17],[32,18],[65,1],[107],[33,18],[33,13],[12,1],[11],...t([67],()=>[[32,12],[65,67],[70],[4,64],[32,18],[69],[13,2],[65,8],[16,builtin('__Porffor_allocateBytes')],[34,23],[65,1],[54,0,0],[32,23],[32,17],[47,1,4],[59,1,4],[32,17],[65,2],[106],[33,17],[32,18],[65,1],[107],[33,18],[32,23],[184],[65,67],[33,13],[12,1],[11]]),[32,12],[65,195],[70],[4,64],[32,18],[69],[13,2],[65,8],[16,builtin('__Porffor_allocateBytes')],[34,23],[65,1],[54,0,0],[32,23],[32,17],[45,0,4],[58,0,4],[32,17],[65,1],[106],[33,17],[32,18],[65,1],[107],[33,18],[32,23],[184],[65,195],[33,13],[12,1],[11],...t([81,80],()=>[[32,12],[65,81],[70],[32,12],[65,80],[70],[114],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[106],[45,0,4],[184],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([82],()=>[[32,12],[65,82],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[106],[44,0,4],[183],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([83],()=>[[32,12],[65,83],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,2],[108],[106],[47,0,4],[184],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([84],()=>[[32,12],[65,84],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,2],[108],[106],[47,0,4],[184],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([85],()=>[[32,12],[65,85],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,4],[108],[106],[40,0,4],[184],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([86],()=>[[32,12],[65,86],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,4],[108],[106],[40,0,4],[183],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([89],()=>[[32,12],[65,89],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,4],[108],[106],[42,0,4],[187],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([90],()=>[[32,12],[65,90],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,8],[108],[106],[43,0,4],[32,19],[65,1],[106],[33,19],[65,1],[33,13],[12,1],[11]]),...t([88],()=>[[32,12],[65,88],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,8],[108],[106],[41,0,4],[16,builtin('__Porffor_bigint_fromS64')],[32,19],[65,1],[106],[33,19],[65,4],[33,13],[12,1],[11]]),...t([87],()=>[[32,12],[65,87],[70],[4,64],[32,19],[32,18],[70],[13,2],[32,17],[40,0,4],[32,19],[65,8],[108],[106],[41,0,4],[16,builtin('__Porffor_bigint_fromU64')],[32,19],[65,1],[106],[33,19],[65,4],[33,13],[12,1],[11]]),...t([34],()=>[[32,12],[65,34],[70],[4,64],[12,2],[12,1],[11]]),...t([12],()=>[[32,12],[65,12],[70],[4,64],[32,19],[32,18],[40,1,0],[70],[13,2],[65,128],[16,builtin('__Porffor_allocateBytes')],[34,23],[65,2],[54,0,0],[32,23],[32,23],[32,23],[32,23],[32,18],[32,19],[65,9],[108],[106],[34,24],[43,0,4],[57,0,4],[32,24],[45,0,12],[58,0,12],[32,17],[40,1,4],[32,19],[65,9],[108],[106],[34,24],[43,0,4],[57,0,13],[32,24],[45,0,12],[58,0,21],[32,19],[65,1],[106],[33,19],[32,23],[184],[65,72],[33,13],[12,1],[11]]),[0],[11],[33,21],[32,13],[33,22],[32,16],[252,3],[4,64],[32,6],[65,195],[68,10],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[68,0],[33,8],[3,64],[32,8],[32,2],[99],[4,64],[32,6],[65,195],[32,4],[65,195],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[11],[32,6],[65,195],[32,21],[32,22],[32,2],[65,1],[32,4],[32,5],[16,builtin('__Porffor_json_serialize')],[33,13],[34,25],[33,26],[32,13],[33,12],[2,127],[32,12],[65,0],[70],[4,64],[65,1],[12,1],[11],[32,12],[65,7],[70],[4,64],[32,26],[68,0],[97],[12,1],[11],[65,0],[11],[4,124],...makeString(_,\"null\",1),[65,195],[33,13],[5],[32,25],[32,13],[33,13],[11],[32,13],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,6],[65,195],[68,44],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[12,1],[11],[11],[32,2],[68,1],[161],[33,2],[32,6],[252,3],[40,1,0],[184],[68,1],[100],[4,64],[32,16],[252,3],[4,64],[32,6],[65,195],[68,10],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[68,0],[33,8],[3,64],[32,8],[32,2],[99],[4,64],[32,6],[65,195],[32,4],[65,195],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[32,6],[65,195],[68,93],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[5],[32,6],[32,6],[252,3],[40,1,0],[184],[160],[252,2],[65,93],[58,0,3],[11],[5],[32,6],[65,195],[68,93],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[11],[32,6],[65,195],[15],[26],[11],[32,1],[184],[68,6],[100],[4,64],[16,builtin('__Porffor_allocate')],[183],[34,6],[65,195],[68,123],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,4],[68,0],[98],[32,5],[65,128],[114],[65,0],[65,128],[114],[71],[114],[184],[33,16],[32,2],[68,1],[160],[33,2],[32,0],[252,3],[33,27],[65,0],[33,29],[32,27],[47,0,0],[34,28],[4,64],[3,64],[32,27],[40,0,12],[34,30],[65,31],[118],[4,127],[32,30],[65,1073741823],[113],[33,30],[65,67],[65,5],[32,30],[65,1073741824],[113],[27],[5],[65,195],[11],[33,31],[32,30],[184],[33,32],[32,31],[33,33],[2,64],[32,27],[45,0,24],[65,4],[113],[4,64],[32,33],[184],[68,5],[97],[4,64],[12,1],[26],[11],[32,32],[33,37],[32,0],[34,36],[252,2],[65,7],[32,37],[32,33],[16,builtin('__ecma262_ToPropertyKey')],[33,38],[252,2],[32,38],[16,builtin('__Porffor_object_get')],[34,13],[32,2],[65,1],[32,4],[32,5],[16,builtin('__Porffor_json_serialize')],[34,13],[33,35],[34,34],[33,26],[32,35],[33,12],[2,127],[32,12],[65,0],[70],[4,64],[65,1],[12,1],[11],[32,12],[65,7],[70],[4,64],[32,26],[68,0],[97],[12,1],[11],[65,0],[11],[4,64],[12,1],[26],[11],[32,16],[252,3],[4,64],[32,6],[65,195],[68,10],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[68,0],[33,8],[3,64],[32,8],[32,2],[99],[4,64],[32,6],[65,195],[32,4],[65,195],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[11],[32,6],[65,195],[68,34],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,6],[65,195],[32,32],[32,33],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,6],[65,195],[68,34],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,6],[65,195],[68,58],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,16],[252,3],[4,64],[32,6],[65,195],[68,32],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[11],[32,6],[65,195],[32,34],[32,35],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,6],[65,195],[68,44],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[11],[32,27],[65,18],[106],[33,27],[32,29],[65,1],[106],[34,29],[32,28],[71],[13,1],[11],[11],[11],[32,2],[68,1],[161],[33,2],[32,6],[252,3],[40,1,0],[184],[68,1],[100],[4,64],[32,16],[252,3],[4,64],[32,6],[65,195],[68,10],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[68,0],[33,8],[3,64],[32,8],[32,2],[99],[4,64],[32,6],[65,195],[32,4],[65,195],[16,builtin('__Porffor_bytestring_appendStr')],[26],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[32,6],[65,195],[68,125],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[5],[32,6],[32,6],[252,3],[40,1,0],[184],[160],[252,2],[65,125],[58,0,3],[11],[5],[32,6],[65,195],[68,125],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[11],[32,6],[65,195],[15],[26],[11],[32,1],[184],[68,4],[97],[4,64],...internalThrow(_,'TypeError',`Cannot serialize BigInts`),[26],[11],[68,0],[65,0],[15]]"),
1972
- params:[124,127,124,127,124,127],typedParams:1,returns:[124,127],returnTypes:[195],jsLength:3,
1973
- locals:[124,124,124,124,124,127,127,127,124,124,124,127,127,127,127,124,127,127,127,124,124,127,127,127,127,127,124,127,124,127,124,124,127],localNames:["value","value#type","depth","depth#type","space","space#type","out","len","i","c","#proto_target","#proto_target#type","#typeswitch_tmp1","#last_type","h1","h2","hasSpace","#forof_base_pointer0","#forof_length0","#forof_counter0","#forof_itertype0","x","x#type","#forof_allocd","#forof_mapptr","logictmp","#logicinner_tmp","#forin_base_pointer0","#forin_length0","#forin_counter0","#forin_tmp0","#forin_tmp0#type","key","key#type","val","val#type","#member_obj_172","#member_prop_172","#swap"],
1992
+ wasm:(_,{t,makeString,builtin,internalThrow})=>eval("[[32,0],[33,8],[32,2],[68,0],[97],[32,3],[65,128],[114],[65,7],[65,128],[114],[70],[113],[4,64],[32,8],[65,1],...makeString(_,\"null\",1),[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[15],[26],[11],[32,2],[68,1],[97],[32,3],[65,128],[114],[65,2],[65,128],[114],[70],[113],[4,64],[32,8],[65,1],...makeString(_,\"true\",1),[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[15],[26],[11],[32,2],[68,0],[97],[32,3],[65,128],[114],[65,2],[65,128],[114],[70],[113],[4,64],[32,8],[65,1],...makeString(_,\"false\",1),[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[15],[26],[11],[32,3],[65,128],[114],[183],[68,195],[97],[32,3],[184],[68,33],[97],[114],[4,64],[32,8],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[32,2],[252,3],[40,1,0],[184],[33,9],[68,0],[33,10],[3,64],[32,10],[32,9],[99],[4,64],[2,64],[32,2],[33,12],[32,3],[33,13],[32,3],[33,14],[2,124],...t([33],()=>[[32,14],[65,33],[70],[4,64],[32,12],[32,13],[32,10],[65,1],[16,builtin('__String_prototype_charCodeAt')],[33,15],[12,1],[11]]),...t([67],()=>[[32,14],[65,67],[70],[4,64],[32,12],[32,13],[32,10],[65,1],[16,builtin('__String_prototype_charCodeAt')],[33,15],[12,1],[11]]),[32,14],[65,195],[70],[4,64],[32,12],[32,13],[32,10],[65,1],[16,builtin('__ByteString_prototype_charCodeAt')],[33,15],[12,1],[11],...internalThrow(_,'TypeError',`'charCodeAt' proto func tried to be called on a type without an impl`),[68,0],[11],[34,11],[68,32],[99],[4,64],[32,11],[68,8],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,98],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,2],[26],[11],[32,11],[68,9],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,116],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,2],[26],[11],[32,11],[68,10],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,110],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,2],[26],[11],[32,11],[68,12],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,102],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,2],[26],[11],[32,11],[68,13],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,114],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,2],[26],[11],[32,8],[65,1],[68,92],[65,1],[68,117],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[34,8],[65,1],[68,48],[65,1],[68,48],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[32,11],[252,2],[65,240],[113],[183],[68,16],[163],[33,16],[32,11],[252,2],[65,15],[113],[183],[33,17],[32,8],[65,1],[32,16],[68,10],[99],[4,124],[32,16],[68,48],[160],[65,1],[33,15],[5],[32,16],[68,55],[160],[65,1],[33,15],[11],[32,15],[32,17],[68,10],[99],[4,124],[32,17],[68,48],[160],[65,1],[33,15],[5],[32,17],[68,55],[160],[65,1],[33,15],[11],[32,15],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,1],[26],[11],[32,11],[68,34],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,1],[26],[11],[32,11],[68,92],[97],[4,64],[32,8],[65,1],[68,92],[65,1],[68,92],[65,1],[16,builtin('__Porffor_bytestring_buffer2Char')],[33,8],[12,1],[26],[11],[32,8],[65,1],[32,11],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[11],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[32,8],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[15],[26],[11],[32,3],[184],[68,1],[97],[32,3],[184],[68,32],[97],[114],[4,64],[32,2],[16,builtin('__Number_isFinite')],[252,3],[4,64],[32,8],[65,1],[32,2],[32,3],[68,10],[65,1],[16,builtin('__Number_prototype_toString')],[34,15],[16,builtin('__Porffor_bytestring_bufferStr')],[15],[26],[11],[32,8],[65,1],...makeString(_,\"null\",1),[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[15],[26],[11],[32,3],[184],[68,72],[97],[4,64],[32,8],[65,1],[68,91],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[32,6],[68,0],[98],[32,7],[65,128],[114],[65,0],[65,128],[114],[71],[114],[184],[33,18],[32,4],[68,1],[160],[33,4],[32,2],[252,3],[33,19],[65,72],[33,22],[65,0],[33,21],[32,22],[65,72],[70],[32,22],[65,11],[70],[114],[32,22],[65,12],[70],[114],[32,22],[65,67],[70],[114],[32,22],[65,195],[70],[114],[32,22],[65,34],[70],[114],[32,22],[65,80],[78],[32,22],[65,90],[76],[113],[114],[69],[4,64],...internalThrow(_,'TypeError',`Tried for..of on non-iterable type`),[11],[32,19],[40,1,0],[33,20],[3,64],[2,64],[32,22],[33,14],[2,124],[32,14],[65,72],[70],[32,14],[65,11],[70],[114],[4,64],[32,20],[69],[13,2],[32,19],[43,0,4],[32,19],[45,0,12],[32,19],[65,9],[106],[33,19],[32,20],[65,1],[107],[33,20],[33,15],[12,1],[11],...t([67],()=>[[32,14],[65,67],[70],[4,64],[32,20],[69],[13,2],[65,8],[16,builtin('__Porffor_allocateBytes')],[34,25],[65,1],[54,0,0],[32,25],[32,19],[47,1,4],[59,1,4],[32,19],[65,2],[106],[33,19],[32,20],[65,1],[107],[33,20],[32,25],[184],[65,67],[33,15],[12,1],[11]]),[32,14],[65,195],[70],[4,64],[32,20],[69],[13,2],[65,8],[16,builtin('__Porffor_allocateBytes')],[34,25],[65,1],[54,0,0],[32,25],[32,19],[45,0,4],[58,0,4],[32,19],[65,1],[106],[33,19],[32,20],[65,1],[107],[33,20],[32,25],[184],[65,195],[33,15],[12,1],[11],...t([81,80],()=>[[32,14],[65,81],[70],[32,14],[65,80],[70],[114],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[106],[45,0,4],[184],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([82],()=>[[32,14],[65,82],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[106],[44,0,4],[183],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([83],()=>[[32,14],[65,83],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,2],[108],[106],[47,0,4],[184],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([84],()=>[[32,14],[65,84],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,2],[108],[106],[47,0,4],[184],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([85],()=>[[32,14],[65,85],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,4],[108],[106],[40,0,4],[184],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([86],()=>[[32,14],[65,86],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,4],[108],[106],[40,0,4],[183],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([89],()=>[[32,14],[65,89],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,4],[108],[106],[42,0,4],[187],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([90],()=>[[32,14],[65,90],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,8],[108],[106],[43,0,4],[32,21],[65,1],[106],[33,21],[65,1],[33,15],[12,1],[11]]),...t([88],()=>[[32,14],[65,88],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,8],[108],[106],[41,0,4],[16,builtin('__Porffor_bigint_fromS64')],[32,21],[65,1],[106],[33,21],[65,4],[33,15],[12,1],[11]]),...t([87],()=>[[32,14],[65,87],[70],[4,64],[32,21],[32,20],[70],[13,2],[32,19],[40,0,4],[32,21],[65,8],[108],[106],[41,0,4],[16,builtin('__Porffor_bigint_fromU64')],[32,21],[65,1],[106],[33,21],[65,4],[33,15],[12,1],[11]]),...t([34],()=>[[32,14],[65,34],[70],[4,64],[12,2],[12,1],[11]]),...t([12],()=>[[32,14],[65,12],[70],[4,64],[32,21],[32,20],[40,1,0],[70],[13,2],[65,128],[16,builtin('__Porffor_allocateBytes')],[34,25],[65,2],[54,0,0],[32,25],[32,25],[32,25],[32,25],[32,20],[32,21],[65,9],[108],[106],[34,26],[43,0,4],[57,0,4],[32,26],[45,0,12],[58,0,12],[32,19],[40,1,4],[32,21],[65,9],[108],[106],[34,26],[43,0,4],[57,0,13],[32,26],[45,0,12],[58,0,21],[32,21],[65,1],[106],[33,21],[32,25],[184],[65,72],[33,15],[12,1],[11]]),[0],[11],[33,23],[32,15],[33,24],[32,18],[252,3],[4,64],[32,8],[65,1],[68,10],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[68,0],[33,10],[3,64],[32,10],[32,4],[99],[4,64],[32,8],[65,1],[32,6],[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[33,8],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[11],[32,23],[32,24],[16,builtin('__Porffor_json_canSerialize')],[252,3],[4,64],[32,8],[65,1],[32,23],[32,24],[32,4],[65,1],[32,6],[32,7],[16,builtin('__Porffor_json_serialize')],[33,8],[5],[32,8],[65,1],...makeString(_,\"null\",1),[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[33,8],[11],[32,8],[65,1],[68,44],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[12,1],[11],[11],[32,4],[68,1],[161],[33,4],[32,8],[32,0],[161],[68,1],[100],[4,64],[32,18],[252,3],[4,64],[32,8],[252,2],[65,10],[58,0,3],[68,0],[33,10],[3,64],[32,10],[32,4],[99],[4,64],[32,8],[65,1],[32,6],[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[33,8],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[32,8],[65,1],[68,93],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[15],[26],[11],[32,8],[252,2],[65,93],[58,0,3],[32,8],[15],[26],[11],[32,8],[65,1],[68,93],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[15],[26],[11],[32,3],[184],[68,6],[100],[4,64],[32,8],[65,1],[68,123],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[32,6],[68,0],[98],[32,7],[65,128],[114],[65,0],[65,128],[114],[71],[114],[184],[33,18],[32,4],[68,1],[160],[33,4],[32,2],[252,3],[33,27],[65,0],[33,29],[32,27],[47,0,0],[34,28],[4,64],[3,64],[32,27],[40,0,12],[34,30],[65,31],[118],[4,127],[32,30],[65,1073741823],[113],[33,30],[65,67],[65,5],[32,30],[65,1073741824],[113],[27],[5],[65,195],[11],[33,31],[32,30],[184],[33,32],[2,64],[32,27],[45,0,24],[65,4],[113],[4,64],[68,195],[68,5],[97],[4,64],[12,1],[26],[11],[32,32],[33,36],[32,2],[34,35],[252,2],[65,7],[32,36],[65,195],[16,builtin('__ecma262_ToPropertyKey')],[33,37],[252,2],[32,37],[16,builtin('__Porffor_object_get')],[34,15],[33,34],[34,33],[32,34],[16,builtin('__Porffor_json_canSerialize')],[68,0],[97],[4,64],[12,1],[26],[11],[32,18],[252,3],[4,64],[32,8],[65,1],[68,10],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[68,0],[33,10],[3,64],[32,10],[32,4],[99],[4,64],[32,8],[65,1],[32,6],[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[33,8],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[11],[32,8],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[34,8],[65,1],[32,32],[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[34,8],[65,1],[68,34],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[34,8],[65,1],[68,58],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[32,18],[252,3],[4,64],[32,8],[65,1],[68,32],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[11],[32,8],[65,1],[32,33],[32,34],[32,4],[65,1],[32,6],[32,7],[16,builtin('__Porffor_json_serialize')],[34,8],[65,1],[68,44],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[33,8],[11],[32,27],[65,18],[106],[33,27],[32,29],[65,1],[106],[34,29],[32,28],[71],[13,1],[11],[11],[11],[32,4],[68,1],[161],[33,4],[32,8],[32,0],[161],[68,1],[100],[4,64],[32,18],[252,3],[4,64],[32,8],[252,2],[65,10],[58,0,3],[68,0],[33,10],[3,64],[32,10],[32,4],[99],[4,64],[32,8],[65,1],[32,6],[65,195],[16,builtin('__Porffor_bytestring_bufferStr')],[33,8],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[32,8],[65,1],[68,125],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[15],[26],[11],[32,8],[252,2],[65,125],[58,0,3],[32,8],[15],[26],[11],[32,8],[65,1],[68,125],[65,1],[16,builtin('__Porffor_bytestring_bufferChar')],[15],[26],[11],[32,3],[184],[68,4],[97],[4,64],...internalThrow(_,'TypeError',`Cannot serialize BigInts`),[26],[11],[68,-1],[15]]"),
1993
+ params:[124,127,124,127,124,127,124,127],typedParams:1,returns:[124],returnType:1,jsLength:4,
1994
+ locals:[124,124,124,124,124,127,127,127,124,124,124,127,127,127,127,124,127,127,127,127,127,127,127,127,124,124,127,124,124,127],localNames:["_buffer","_buffer#type","value","value#type","depth","depth#type","space","space#type","buffer","len","i","c","#proto_target","#proto_target#type","#typeswitch_tmp1","#last_type","h1","h2","hasSpace","#forof_base_pointer0","#forof_length0","#forof_counter0","#forof_itertype0","x","x#type","#forof_allocd","#forof_mapptr","#forin_base_pointer0","#forin_length0","#forin_counter0","#forin_tmp0","#forin_tmp0#type","key","val","val#type","#member_obj_172","#member_prop_172","#swap"],
1974
1995
  usesTag:1
1975
1996
  }
1976
1997
  x.__JSON_stringify={
1977
- wasm:(_,{t,builtin,internalThrow})=>eval("[[32,4],[68,0],[98],[32,5],[65,128],[114],[65,0],[65,128],[114],[71],[114],[4,64],[32,5],[184],[68,1],[97],[32,5],[184],[68,32],[97],[114],[4,64],[68,\"Infinity\"],[32,4],[16,builtin('__Math_trunc')],[164],[68,10],[164],[33,4],[65,1],[33,5],[32,4],[68,1],[99],[4,64],[68,0],[33,4],[65,0],[33,5],[5],[16,builtin('__Porffor_allocate')],[183],[33,6],[68,0],[33,7],[3,64],[32,7],[32,4],[99],[4,64],[32,6],[65,195],[68,32],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,7],[68,1],[160],[33,7],[12,1],[11],[11],[32,6],[33,4],[65,195],[33,5],[11],[5],[32,5],[65,128],[114],[183],[68,195],[97],[32,5],[184],[68,33],[97],[114],[4,64],[32,4],[252,3],[40,1,0],[184],[34,8],[68,0],[97],[4,64],[68,0],[33,4],[65,0],[33,5],[5],[32,8],[68,10],[100],[4,64],[32,4],[33,9],[32,5],[33,10],[32,5],[33,11],[2,124],...t([13],()=>[[32,11],[65,13],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__ArrayBuffer_prototype_slice')],[33,12],[12,1],[11]]),...t([14],()=>[[32,11],[65,14],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__SharedArrayBuffer_prototype_slice')],[33,12],[12,1],[11]]),...t([33],()=>[[32,11],[65,33],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__String_prototype_slice')],[33,12],[183],[12,1],[11]]),...t([67],()=>[[32,11],[65,67],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__String_prototype_slice')],[33,12],[183],[12,1],[11]]),...t([72],()=>[[32,11],[65,72],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Array_prototype_slice')],[33,12],[12,1],[11]]),...t([80],()=>[[32,11],[65,80],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint8ClampedArray_prototype_slice')],[33,12],[12,1],[11]]),...t([81],()=>[[32,11],[65,81],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint8Array_prototype_slice')],[33,12],[12,1],[11]]),...t([82],()=>[[32,11],[65,82],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int8Array_prototype_slice')],[33,12],[12,1],[11]]),...t([83],()=>[[32,11],[65,83],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint16Array_prototype_slice')],[33,12],[12,1],[11]]),...t([84],()=>[[32,11],[65,84],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int16Array_prototype_slice')],[33,12],[12,1],[11]]),...t([85],()=>[[32,11],[65,85],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([86],()=>[[32,11],[65,86],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([87],()=>[[32,11],[65,87],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__BigUint64Array_prototype_slice')],[33,12],[12,1],[11]]),...t([88],()=>[[32,11],[65,88],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__BigInt64Array_prototype_slice')],[33,12],[12,1],[11]]),...t([89],()=>[[32,11],[65,89],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Float32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([90],()=>[[32,11],[65,90],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Float64Array_prototype_slice')],[33,12],[12,1],[11]]),[32,11],[65,195],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__ByteString_prototype_slice')],[33,12],[183],[12,1],[11],...internalThrow(_,'TypeError',`'slice' proto func tried to be called on a type without an impl`),[68,0],[11],[33,4],[32,12],[33,5],[11],[11],[5],[68,0],[33,4],[65,0],[33,5],[11],[11],[11],[32,0],[32,1],[68,0],[65,1],[32,4],[32,5],[16,builtin('__Porffor_json_serialize')],[34,12],[15]]"),
1998
+ wasm:(_,{t,builtin,internalThrow})=>eval("[[32,4],[68,0],[98],[32,5],[65,128],[114],[65,0],[65,128],[114],[71],[114],[4,64],[32,5],[184],[68,1],[97],[32,5],[184],[68,32],[97],[114],[4,64],[68,\"Infinity\"],[32,4],[16,builtin('__Math_trunc')],[164],[68,10],[164],[33,4],[65,1],[33,5],[32,4],[68,1],[99],[4,64],[68,0],[33,4],[65,0],[33,5],[5],[68,4],[32,4],[160],[252,2],[16,builtin('__Porffor_allocateBytes')],[183],[33,6],[68,0],[33,7],[3,64],[32,7],[32,4],[99],[4,64],[32,6],[65,195],[68,32],[65,1],[16,builtin('__Porffor_bytestring_appendChar')],[26],[32,7],[68,1],[160],[33,7],[12,1],[11],[11],[32,6],[33,4],[65,195],[33,5],[11],[5],[32,5],[65,128],[114],[183],[68,195],[97],[32,5],[184],[68,33],[97],[114],[4,64],[32,4],[252,3],[40,1,0],[184],[34,8],[68,0],[97],[4,64],[68,0],[33,4],[65,0],[33,5],[5],[32,8],[68,10],[100],[4,64],[32,4],[33,9],[32,5],[33,10],[32,5],[33,11],[2,124],...t([13],()=>[[32,11],[65,13],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__ArrayBuffer_prototype_slice')],[33,12],[12,1],[11]]),...t([14],()=>[[32,11],[65,14],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__SharedArrayBuffer_prototype_slice')],[33,12],[12,1],[11]]),...t([33],()=>[[32,11],[65,33],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__String_prototype_slice')],[33,12],[183],[12,1],[11]]),...t([67],()=>[[32,11],[65,67],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__String_prototype_slice')],[33,12],[183],[12,1],[11]]),...t([72],()=>[[32,11],[65,72],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Array_prototype_slice')],[33,12],[12,1],[11]]),...t([80],()=>[[32,11],[65,80],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint8ClampedArray_prototype_slice')],[33,12],[12,1],[11]]),...t([81],()=>[[32,11],[65,81],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint8Array_prototype_slice')],[33,12],[12,1],[11]]),...t([82],()=>[[32,11],[65,82],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int8Array_prototype_slice')],[33,12],[12,1],[11]]),...t([83],()=>[[32,11],[65,83],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint16Array_prototype_slice')],[33,12],[12,1],[11]]),...t([84],()=>[[32,11],[65,84],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int16Array_prototype_slice')],[33,12],[12,1],[11]]),...t([85],()=>[[32,11],[65,85],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Uint32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([86],()=>[[32,11],[65,86],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Int32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([87],()=>[[32,11],[65,87],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__BigUint64Array_prototype_slice')],[33,12],[12,1],[11]]),...t([88],()=>[[32,11],[65,88],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__BigInt64Array_prototype_slice')],[33,12],[12,1],[11]]),...t([89],()=>[[32,11],[65,89],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Float32Array_prototype_slice')],[33,12],[12,1],[11]]),...t([90],()=>[[32,11],[65,90],[70],[4,64],[32,9],[32,10],[68,0],[65,1],[68,10],[65,1],[16,builtin('__Float64Array_prototype_slice')],[33,12],[12,1],[11]]),[32,11],[65,195],[70],[4,64],[32,9],[252,2],[32,10],[65,0],[65,1],[65,10],[65,1],[16,builtin('__ByteString_prototype_slice')],[33,12],[183],[12,1],[11],...internalThrow(_,'TypeError',`'slice' proto func tried to be called on a type without an impl`),[68,0],[11],[33,4],[32,12],[33,5],[11],[11],[5],[68,0],[33,4],[65,0],[33,5],[11],[11],[11],[16,builtin('__Porffor_allocate')],[183],[34,13],[65,195],[32,0],[32,1],[68,0],[65,1],[32,4],[32,5],[16,builtin('__Porffor_json_serialize')],[33,14],[65,1],[33,15],[32,14],[68,-1],[97],[4,64],[68,0],[65,0],[15],[26],[11],[32,13],[252,3],[32,14],[32,13],[161],[252,3],[54,1,0],[32,13],[65,195],[15]]"),
1978
1999
  params:[124,127,124,127,124,127],typedParams:1,returns:[124,127],jsLength:3,
1979
- locals:[124,124,124,124,127,127,127],localNames:["value","value#type","replacer","replacer#type","space","space#type","spaceStr","i","len","#proto_target","#proto_target#type","#typeswitch_tmp1","#last_type"],
2000
+ locals:[124,124,124,124,127,127,127,124,124,127],localNames:["value","value#type","replacer","replacer#type","space","space#type","spaceStr","i","len","#proto_target","#proto_target#type","#typeswitch_tmp1","#last_type","buffer","out","out#type"],
1980
2001
  usesTag:1
1981
2002
  }
1982
2003
  x.__JSON_parse={
package/jsr.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@honk/porffor",
3
- "version": "0.60.28",
3
+ "version": "0.60.29",
4
4
  "exports": "./compiler/wrap.js",
5
5
  "publish": {
6
6
  "exclude": [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "porffor",
3
3
  "description": "An ahead-of-time JavaScript compiler",
4
- "version": "0.60.28",
4
+ "version": "0.60.29",
5
5
  "author": "Oliver Medhurst <honk@goose.icu>",
6
6
  "license": "MIT",
7
7
  "scripts": {},
package/runtime/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from 'node:fs';
3
- globalThis.version = '0.60.28';
3
+ globalThis.version = '0.60.29';
4
4
 
5
5
  // deno compat
6
6
  if (typeof process === 'undefined' && typeof Deno !== 'undefined') {