porffor 0.37.2 → 0.37.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/compiler/builtins.js +1 -1
- package/compiler/builtins_precompiled.js +4 -4
- package/compiler/codegen.js +50 -82
- package/compiler/index.js +1 -1
- package/compiler/precompile.js +1 -1
- package/compiler/prefs.js +1 -1
- package/compiler/prototype.js +97 -99
- package/package.json +1 -1
- package/runner/index.js +1 -1
package/README.md
CHANGED
@@ -208,7 +208,7 @@ Mostly for reducing size. I do not really care about compiler perf/time as long
|
|
208
208
|
- `i64.extend_i32_s`, `i32.wrap_i64` -> ``
|
209
209
|
- `f64.convert_i32_u`, `i32.trunc_sat_f64_s` -> ``
|
210
210
|
- `return`, `end` -> `end`
|
211
|
-
- Change const, convert to const of converted valtype (eg `f64.const`, `i32.trunc_sat_f64_s -> `i32.const`)
|
211
|
+
- Change const, convert to const of converted valtype (eg `f64.const`, `i32.trunc_sat_f64_s` -> `i32.const`)
|
212
212
|
- Remove some redundant sets/gets
|
213
213
|
- Remove unneeded single just used vars
|
214
214
|
- Remove unneeded blocks (no `br`s inside)
|
package/compiler/builtins.js
CHANGED
@@ -856,7 +856,7 @@ export const BuiltinFuncs = function() {
|
|
856
856
|
typedParams: true,
|
857
857
|
locals: [ Valtype.i32, Valtype.i32 ],
|
858
858
|
returns: [ valtypeBinary ],
|
859
|
-
returnType:
|
859
|
+
returnType: TYPES.bytestring,
|
860
860
|
wasm: (scope, { typeSwitch, makeString }) => {
|
861
861
|
const bc = {};
|
862
862
|
for (const x in TYPE_NAMES) {
|
@@ -647,14 +647,14 @@ params:[124,127],typedParams:1,returns:[124,127],typedReturns:1,
|
|
647
647
|
locals:[],localNames:["arg","arg#type"],
|
648
648
|
};
|
649
649
|
this.__Porffor_miniLog = {
|
650
|
-
wasm:(_,{builtin,internalThrow})=>[[32,1],[33,
|
650
|
+
wasm:(_,{builtin,internalThrow})=>[[32,1],[33,3],[2,64],[32,3],[65,1],[70],[4,64,"TYPESWITCH|Number"],[32,0],[16,0],[12,0],[11],[32,3],[65,2],[70],[4,64,"TYPESWITCH|Boolean"],[32,0],[33,4],[32,1],[33,5],[2,127],[32,5],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,4],[252,3],[40,1,0],[12,1],[11],[32,5],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,4],[252,3],[40,1,0],[12,1],[11],[32,4],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,116],[16,1],[68,114],[16,1],[68,117],[16,1],[68,101],[16,1],[5],[68,102],[16,1],[68,97],[16,1],[68,108],[16,1],[68,115],[16,1],[68,101],[16,1],[11],[12,0],[11],[32,3],[65,195,1],[70],[32,3],[65,195,0],[70],[114],[4,64,"TYPESWITCH|ByteString,String"],[68,39],[16,1],[32,0],[32,1],[16,builtin('__Porffor_printString')],[33,6],[26],[68,39],[16,1],[12,0],[11],[32,3],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,0],[252,3],[40,1,0],[184],[68,1],[161],[34,7],[68,-1],[97],[4,64],[68,91],[16,1],[68,93],[16,1],[5],[68,91],[16,1],[68,32],[16,1],[68,0],[33,8],[3,64],[32,8],[32,7],[101],[4,64],[2,64],[32,0],[33,9],[32,8],[33,10],[32,1],[33,5],[2,124],[32,5],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,12],[65,1],[54,0,0],[32,12],[32,10],[252,3],[65,2],[108],[32,9],[252,3],[106],[47,0,4],[59,0,4],[32,12],[184],[65,195,0],[33,6],[12,1],[11],[32,5],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,10],[252,3],[65,9],[108],[32,9],[252,3],[106],[34,11],[43,0,4],[32,11],[45,0,12],[33,6],[12,1],[11],[32,5],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[106],[45,0,4],[184],[65,1],[33,6],[12,1],[11],[32,5],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[106],[44,0,4],[183],[65,1],[33,6],[12,1],[11],[32,5],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[106],[45,0,4],[184],[65,1],[33,6],[12,1],[11],[32,5],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,2],[108],[106],[47,0,4],[184],[65,1],[33,6],[12,1],[11],[32,5],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,2],[108],[106],[46,0,4],[183],[65,1],[33,6],[12,1],[11],[32,5],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,4],[108],[106],[40,0,4],[184],[65,1],[33,6],[12,1],[11],[32,5],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,4],[108],[106],[40,0,4],[183],[65,1],[33,6],[12,1],[11],[32,5],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,4],[108],[106],[42,0,4],[187],[65,1],[33,6],[12,1],[11],[32,5],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,9],[252,3],[40,0,4],[32,10],[252,3],[65,8],[108],[106],[43,0,4],[65,1],[33,6],[12,1],[11],[32,5],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,5],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,12],[65,1],[54,0,0],[32,12],[32,10],[252,3],[32,9],[252,3],[106],[45,0,4],[58,0,4],[32,12],[184],[65,195,1],[33,6],[12,1],[11],[32,9],[252,3],[32,1],[32,10],[65,1],[16,builtin('__ecma262_ToPropertyKey')],[33,13],[252,3],[32,13],[16,builtin('__Porffor_object_get')],[33,6],[11,"TYPESWITCH_end"],[32,6],[16,builtin('__Porffor_miniLog')],[33,6],[26],[32,8],[32,7],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[11],[32,8],[68,1],[160],[33,8],[12,1],[11],[11],[68,32],[16,1],[68,93],[16,1],[11],[12,0],[11],[32,3],[65,0],[70],[32,3],[65,128,1],[70],[114],[4,64,"TYPESWITCH|empty,undefined"],[68,117],[16,1],[68,110],[16,1],[68,100],[16,1],[68,101],[16,1],[68,102],[16,1],[68,105],[16,1],[68,110],[16,1],[68,101],[16,1],[68,100],[16,1],[12,0],[11],[32,3],[65,7],[70],[4,64,"TYPESWITCH|Object"],[32,0],[33,4],[32,1],[33,5],[2,127],[32,5],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,4],[252,3],[40,1,0],[12,1],[11],[32,5],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,4],[252,3],[40,1,0],[12,1],[11],[32,4],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,91],[16,1],[68,79],[16,1],[68,98],[16,1],[68,106],[16,1],[68,101],[16,1],[68,99],[16,1],[68,116],[16,1],[68,93],[16,1],[5],[68,110],[16,1],[68,117],[16,1],[68,108],[16,1],[68,108],[16,1],[11],[12,0],[11],[11,"TYPESWITCH_end"],[68,10],[16,1],[68,0],[65,128,1],[15]],
|
651
651
|
params:[124,127],typedParams:1,returns:[124,127],typedReturns:1,
|
652
|
-
locals:[124,124,127,127,124,124,124,124,127,127,127
|
652
|
+
locals:[124,127,124,127,127,124,124,124,124,127,127,127],localNames:["arg","arg#type","#switch_disc","#typeswitch_tmp1","#logicinner_tmp","#typeswitch_tmp2","#last_type","arrLen","i","#member_obj","#member_prop","#loadArray_offset","#member_allocd","#swap"],
|
653
653
|
};
|
654
654
|
this.__Porffor_print = {
|
655
|
-
wasm:(_,{allocPage,builtin,internalThrow})=>[[32,3],[65,128,1],[70],[4,64],[68,1],[33,2],[65,2],[33,3],[11],[32,1],[33,32],[2,64],[32,32],[65,1],[70],[4,64,"TYPESWITCH|Number"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[16,0],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,2],[70],[4,64,"TYPESWITCH|Boolean"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[33,5],[32,1],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,116],[16,1],[68,114],[16,1],[68,117],[16,1],[68,101],[16,1],[5],[68,102],[16,1],[68,97],[16,1],[68,108],[16,1],[68,115],[16,1],[68,101],[16,1],[11],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,195,1],[70],[32,32],[65,195,0],[70],[114],[4,64,"TYPESWITCH|ByteString,String"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[68,39],[16,1],[32,0],[32,1],[16,builtin('__Porffor_printString')],[33,7],[26],[68,39],[16,1],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,0],[70],[32,32],[65,128,1],[70],[114],[4,64,"TYPESWITCH|empty,undefined"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[68,117],[16,1],[68,110],[16,1],[68,100],[16,1],[68,101],[16,1],[68,102],[16,1],[68,105],[16,1],[68,110],[16,1],[68,101],[16,1],[68,100],[16,1],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,7],[70],[4,64,"TYPESWITCH|Object"],[32,0],[33,5],[32,1],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[32,0],[32,1],[16,builtin('__Object_keys')],[33,7],[34,8],[252,3],[40,1,0],[184],[68,0],[97],[4,64],[68,123],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[68,123],[16,1],[68,32],[16,1],[32,8],[252,3],[40,1,0],[184],[68,1],[161],[33,9],[68,0],[33,10],[3,64],[32,10],[32,9],[101],[4,64],[32,8],[33,13],[32,10],[34,14],[252,3],[65,9],[108],[32,13],[252,3],[106],[34,15],[43,0,4],[32,15],[45,0,12],[34,7],[33,12],[33,11],[68,32],[16,1],[68,32],[16,1],[32,11],[32,12],[16,builtin('__Porffor_printString')],[33,7],[26],[68,58],[16,1],[68,32],[16,1],[32,0],[252,2],[32,1],[32,11],[32,12],[16,builtin('__ecma262_ToPropertyKey')],[33,7],[252,2],[32,7],[16,builtin('__Porffor_object_get')],[34,7],[68,0],[65,128,1],[16,builtin('__Porffor_print')],[33,7],[26],[32,10],[32,9],[98],[4,64],[68,44],[16,1],[68,10],[16,1],[11],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[5],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,49],[16,1],[68,109],[16,1],[11],[68,110],[16,1],[68,117],[16,1],[68,108],[16,1],[68,108],[16,1],[11],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,6],[70],[4,64,"TYPESWITCH|Function"],[68,91],[16,1],[68,70],[16,1],[68,117],[16,1],[68,110],[16,1],[68,99],[16,1],[68,116],[16,1],[68,105],[16,1],[68,111],[16,1],[68,110],[16,1],[68,32],[16,1],[32,0],[252,2],[16,builtin('__Porffor_funcLut_name')],[183],[65,195,1],[16,builtin('__Porffor_printString')],[33,7],[26],[68,93],[16,1],[68,0],[65,128,1],[15],[11],[32,32],[65,18],[70],[4,64,"TYPESWITCH|Date"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,53],[16,1],[68,109],[16,1],[11],[32,0],[32,1],[16,builtin('__Date_prototype_toISOString')],[34,7],[16,builtin('__Porffor_printString')],[33,7],[26],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,5],[70],[4,64,"TYPESWITCH|Symbol"],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[32,0],[32,1],[16,builtin('__Symbol_prototype_toString')],[34,7],[16,builtin('__Porffor_printString')],[33,7],[26],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,32],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,0],[32,1],[32,2],[32,3],[68,0],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,67],[16,1],[68,108],[16,1],[68,97],[16,1],[68,109],[16,1],[68,112],[16,1],[68,101],[16,1],[68,100],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,49],[16,1],[68,54],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,49],[16,1],[68,54],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[68,70],[16,1],[68,108],[16,1],[68,111],[16,1],[68,97],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[68,70],[16,1],[68,108],[16,1],[68,111],[16,1],[68,97],[16,1],[68,116],[16,1],[68,54],[16,1],[68,52],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,7],[26],[68,0],[65,128,1],[15],[11],[32,32],[65,22],[70],[32,32],[65,21],[70],[114],[4,64,"TYPESWITCH|SharedArrayBuffer,ArrayBuffer"],[32,1],[184],[68,22],[97],[4,64],[68,83],[16,1],[68,104],[16,1],[68,97],[16,1],[68,114],[16,1],[68,101],[16,1],[68,100],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[68,66],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[5],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[68,66],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[11],[68,32],[16,1],[68,123],[16,1],[68,10],[16,1],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,52],[16,1],[68,109],[16,1],[11],[68,32],[16,1],[68,32],[16,1],[68,91],[16,1],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,67],[16,1],[68,111],[16,1],[68,110],[16,1],[68,116],[16,1],[68,101],[16,1],[68,110],[16,1],[68,116],[16,1],[68,115],[16,1],[68,93],[16,1],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,41],[16,1],[68,58],[16,1],[68,32],[16,1],[68,60],[16,1],[68,14],[65,6],[16,builtin('__Porffor_allocate')],[184],[65,7],[32,0],[32,1],[68,0],[65,128,1],[68,0],[65,128,1],[16,builtin('Uint8Array')],[34,7],[33,19],[34,18],[252,3],[40,1,0],[184],[68,1],[161],[33,20],[65,1],[33,21],[68,0],[33,10],[3,64],[32,10],[32,20],[101],[4,64],[2,64],[32,18],[33,13],[32,10],[33,14],[32,19],[33,6],[2,124],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,16],[65,1],[54,0,0],[32,16],[32,14],[252,3],[65,2],[108],[32,13],[252,3],[106],[47,0,4],[59,0,4],[32,16],[184],[65,195,0],[33,7],[12,1],[11],[32,6],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,14],[252,3],[65,9],[108],[32,13],[252,3],[106],[34,15],[43,0,4],[32,15],[45,0,12],[33,7],[12,1],[11],[32,6],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[106],[45,0,4],[184],[65,1],[33,7],[12,1],[11],[32,6],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[106],[44,0,4],[183],[65,1],[33,7],[12,1],[11],[32,6],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[106],[45,0,4],[184],[65,1],[33,7],[12,1],[11],[32,6],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,2],[108],[106],[47,0,4],[184],[65,1],[33,7],[12,1],[11],[32,6],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,2],[108],[106],[46,0,4],[183],[65,1],[33,7],[12,1],[11],[32,6],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,4],[108],[106],[40,0,4],[184],[65,1],[33,7],[12,1],[11],[32,6],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,4],[108],[106],[40,0,4],[183],[65,1],[33,7],[12,1],[11],[32,6],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,4],[108],[106],[42,0,4],[187],[65,1],[33,7],[12,1],[11],[32,6],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,13],[252,3],[40,0,4],[32,14],[252,3],[65,8],[108],[106],[43,0,4],[65,1],[33,7],[12,1],[11],[32,6],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,16],[65,1],[54,0,0],[32,16],[32,14],[252,3],[32,13],[252,3],[106],[45,0,4],[58,0,4],[32,16],[184],[65,195,1],[33,7],[12,1],[11],[32,13],[252,3],[32,19],[32,14],[65,1],[16,builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16,builtin('__Porffor_object_get')],[33,7],[11,"TYPESWITCH_end"],[33,22],[32,7],[33,23],[32,22],[68,240],[16,builtin('f64_&')],[68,16],[163],[65,1],[16,builtin('__Porffor_printHexDigit')],[33,7],[26],[32,22],[68,15],[16,builtin('f64_&')],[65,1],[16,builtin('__Porffor_printHexDigit')],[33,7],[26],[32,10],[32,20],[98],[4,64],[68,32],[16,1],[11],[11],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[68,62],[16,1],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,76],[16,1],[68,101],[16,1],[68,110],[16,1],[68,103],[16,1],[68,116],[16,1],[68,104],[16,1],[68,58],[16,1],[68,32],[16,1],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[33,13],[32,1],[33,24],...number(allocPage(_,'bytestring: __Porffor_print/#member_prop','i8'),124),[34,14],[252,3],[34,25],[65,10],[54,1,0],[32,25],[65,226,0],[58,0,4],[32,25],[65,249,0],[58,0,5],[32,25],[65,244,0],[58,0,6],[32,25],[65,229,0],[58,0,7],[32,25],[65,204,0],[58,0,8],[32,25],[65,229,0],[58,0,9],[32,25],[65,238,0],[58,0,10],[32,25],[65,231,0],[58,0,11],[32,25],[65,244,0],[58,0,12],[32,25],[65,232,0],[58,0,13],[32,25],[184],[33,14],[32,1],[33,6],[2,124],[32,6],[65,21],[70],[4,64,"TYPESWITCH|ArrayBuffer"],[32,13],[32,24],[16,builtin('__ArrayBuffer_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,22],[70],[4,64,"TYPESWITCH|SharedArrayBuffer"],[32,13],[32,24],[16,builtin('__SharedArrayBuffer_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,23],[70],[4,64,"TYPESWITCH|DataView"],[32,13],[32,24],[16,builtin('__DataView_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,16],[65,1],[54,0,0],[32,16],[32,14],[252,3],[65,2],[108],[32,13],[252,3],[106],[47,0,4],[59,0,4],[32,16],[184],[65,195,0],[33,7],[12,1],[11],[32,6],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,14],[252,3],[65,9],[108],[32,13],[252,3],[106],[34,15],[43,0,4],[32,15],[45,0,12],[33,7],[12,1],[11],[32,6],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,13],[32,24],[16,builtin('__Uint8Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,13],[32,24],[16,builtin('__Int8Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,13],[32,24],[16,builtin('__Uint8ClampedArray_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,13],[32,24],[16,builtin('__Uint16Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,13],[32,24],[16,builtin('__Int16Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,13],[32,24],[16,builtin('__Uint32Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,13],[32,24],[16,builtin('__Int32Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,13],[32,24],[16,builtin('__Float32Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,13],[32,24],[16,builtin('__Float64Array_prototype_byteLength$get')],[33,7],[12,1],[11],[32,6],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,16],[65,1],[54,0,0],[32,16],[32,14],[252,3],[32,13],[252,3],[106],[45,0,4],[58,0,4],[32,16],[184],[65,195,1],[33,7],[12,1],[11],[32,13],[252,3],[32,1],[32,14],[252,3],[65,195,1],[16,builtin('__Porffor_object_get')],[33,7],[11,"TYPESWITCH_end"],[16,0],[32,2],[33,5],[32,3],[33,6],[2,127],[32,6],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,6],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,5],[252,3],[40,1,0],[12,1],[11],[32,5],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,10],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,32],[65,23],[70],[4,64,"TYPESWITCH|DataView"],[68,68],[16,1],[68,97],[16,1],[68,116],[16,1],[68,97],[16,1],[68,86],[16,1],[68,105],[16,1],[68,101],[16,1],[68,119],[16,1],[68,32],[16,1],[68,123],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,76],[16,1],[68,101],[16,1],[68,110],[16,1],[68,103],[16,1],[68,116],[16,1],[68,104],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_byteLength$get')],[34,7],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,7],[26],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,79],[16,1],[68,102],[16,1],[68,102],[16,1],[68,115],[16,1],[68,101],[16,1],[68,116],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_byteOffset$get')],[34,7],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,7],[26],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_buffer$get')],[34,7],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,7],[26],[68,10],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,32],[65,35],[70],[32,32],[65,20],[70],[114],[4,64,"TYPESWITCH|WeakMap,Map"],[32,1],[184],[68,35],[97],[4,64],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,77],[16,1],[68,97],[16,1],[68,112],[16,1],[5],[68,77],[16,1],[68,97],[16,1],[68,112],[16,1],[11],[68,40],[16,1],[32,0],[32,1],[16,builtin('__Map_prototype_keys')],[33,7],[34,26],[252,3],[40,1,0],[184],[68,1],[161],[34,27],[68,1],[160],[16,0],[68,41],[16,1],[68,32],[16,1],[68,123],[16,1],[68,32],[16,1],[68,0],[33,10],[3,64],[32,10],[32,27],[99],[4,64],[32,26],[33,13],[65,208,0],[33,24],[32,10],[34,14],[252,3],[65,9],[108],[32,13],[252,3],[106],[34,15],[43,0,4],[32,15],[45,0,12],[34,7],[33,29],[34,28],[32,29],[68,0],[65,128,1],[16,builtin('__Porffor_print')],[33,7],[26],[68,32],[16,1],[68,61],[16,1],[68,62],[16,1],[68,32],[16,1],[32,0],[32,1],[32,28],[32,29],[16,builtin('__Map_prototype_get')],[34,7],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,7],[26],[32,10],[32,27],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,32],[65,34],[70],[32,32],[65,19],[70],[114],[4,64,"TYPESWITCH|WeakSet,Set"],[32,1],[184],[68,34],[97],[4,64],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,83],[16,1],[68,101],[16,1],[68,116],[16,1],[5],[68,83],[16,1],[68,101],[16,1],[68,116],[16,1],[11],[68,40],[16,1],[32,0],[32,1],[16,builtin('__Set_prototype_values')],[33,7],[34,30],[252,3],[40,1,0],[184],[68,1],[161],[34,31],[68,1],[160],[16,0],[68,41],[16,1],[68,32],[16,1],[68,123],[16,1],[68,32],[16,1],[68,0],[33,10],[3,64],[32,10],[32,31],[101],[4,64],[32,30],[33,13],[65,208,0],[33,24],[32,10],[34,14],[252,3],[65,9],[108],[32,13],[252,3],[106],[34,15],[43,0,4],[32,15],[45,0,12],[34,7],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,7],[26],[32,10],[32,31],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[32,10],[68,1],[160],[33,10],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,32],[65,33],[70],[4,64,"TYPESWITCH|WeakRef"],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,82],[16,1],[68,101],[16,1],[68,102],[16,1],[68,32],[16,1],[68,123],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[11,"TYPESWITCH_end"],[68,0],[65,128,1],[15]],
|
655
|
+
wasm:(_,{allocPage,builtin,internalThrow})=>[[32,3],[65,128,1],[70],[4,64],[68,1],[33,2],[65,2],[33,3],[11],[32,1],[33,5],[2,64],[32,5],[65,1],[70],[4,64,"TYPESWITCH|Number"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[16,0],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,2],[70],[4,64,"TYPESWITCH|Boolean"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[33,6],[32,1],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,116],[16,1],[68,114],[16,1],[68,117],[16,1],[68,101],[16,1],[5],[68,102],[16,1],[68,97],[16,1],[68,108],[16,1],[68,115],[16,1],[68,101],[16,1],[11],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,195,1],[70],[32,5],[65,195,0],[70],[114],[4,64,"TYPESWITCH|ByteString,String"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[68,39],[16,1],[32,0],[32,1],[16,builtin('__Porffor_printString')],[33,8],[26],[68,39],[16,1],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,0],[70],[32,5],[65,128,1],[70],[114],[4,64,"TYPESWITCH|empty,undefined"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[68,117],[16,1],[68,110],[16,1],[68,100],[16,1],[68,101],[16,1],[68,102],[16,1],[68,105],[16,1],[68,110],[16,1],[68,101],[16,1],[68,100],[16,1],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,7],[70],[4,64,"TYPESWITCH|Object"],[32,0],[33,6],[32,1],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[32,0],[32,1],[16,builtin('__Object_keys')],[33,8],[34,9],[252,3],[40,1,0],[184],[68,0],[97],[4,64],[68,123],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[68,123],[16,1],[68,32],[16,1],[32,9],[252,3],[40,1,0],[184],[68,1],[161],[33,10],[68,0],[33,11],[3,64],[32,11],[32,10],[101],[4,64],[32,9],[33,14],[32,11],[34,15],[252,3],[65,9],[108],[32,14],[252,3],[106],[34,16],[43,0,4],[32,16],[45,0,12],[34,8],[33,13],[33,12],[68,32],[16,1],[68,32],[16,1],[32,12],[32,13],[16,builtin('__Porffor_printString')],[33,8],[26],[68,58],[16,1],[68,32],[16,1],[32,0],[252,2],[32,1],[32,12],[32,13],[16,builtin('__ecma262_ToPropertyKey')],[33,8],[252,2],[32,8],[16,builtin('__Porffor_object_get')],[34,8],[68,0],[65,128,1],[16,builtin('__Porffor_print')],[33,8],[26],[32,11],[32,10],[98],[4,64],[68,44],[16,1],[68,10],[16,1],[11],[32,11],[68,1],[160],[33,11],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[5],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,49],[16,1],[68,109],[16,1],[11],[68,110],[16,1],[68,117],[16,1],[68,108],[16,1],[68,108],[16,1],[11],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,6],[70],[4,64,"TYPESWITCH|Function"],[68,91],[16,1],[68,70],[16,1],[68,117],[16,1],[68,110],[16,1],[68,99],[16,1],[68,116],[16,1],[68,105],[16,1],[68,111],[16,1],[68,110],[16,1],[68,32],[16,1],[32,0],[252,2],[16,builtin('__Porffor_funcLut_name')],[183],[65,195,1],[16,builtin('__Porffor_printString')],[33,8],[26],[68,93],[16,1],[68,0],[65,128,1],[15],[11],[32,5],[65,18],[70],[4,64,"TYPESWITCH|Date"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,53],[16,1],[68,109],[16,1],[11],[32,0],[32,1],[16,builtin('__Date_prototype_toISOString')],[34,8],[16,builtin('__Porffor_printString')],[33,8],[26],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,5],[70],[4,64,"TYPESWITCH|Symbol"],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,50],[16,1],[68,109],[16,1],[11],[32,0],[32,1],[16,builtin('__Symbol_prototype_toString')],[34,8],[16,builtin('__Porffor_printString')],[33,8],[26],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,0],[65,128,1],[15],[11],[32,5],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,0],[32,1],[32,2],[32,3],[68,0],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,67],[16,1],[68,108],[16,1],[68,97],[16,1],[68,109],[16,1],[68,112],[16,1],[68,101],[16,1],[68,100],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,49],[16,1],[68,54],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,49],[16,1],[68,54],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[68,73],[16,1],[68,110],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[68,70],[16,1],[68,108],[16,1],[68,111],[16,1],[68,97],[16,1],[68,116],[16,1],[68,51],[16,1],[68,50],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[68,70],[16,1],[68,108],[16,1],[68,111],[16,1],[68,97],[16,1],[68,116],[16,1],[68,54],[16,1],[68,52],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[32,0],[32,1],[32,2],[32,3],[68,1],[65,2],[16,builtin('__Porffor_printArray')],[33,8],[26],[68,0],[65,128,1],[15],[11],[32,5],[65,22],[70],[32,5],[65,21],[70],[114],[4,64,"TYPESWITCH|SharedArrayBuffer,ArrayBuffer"],[32,1],[184],[68,22],[97],[4,64],[68,83],[16,1],[68,104],[16,1],[68,97],[16,1],[68,114],[16,1],[68,101],[16,1],[68,100],[16,1],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[68,66],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[5],[68,65],[16,1],[68,114],[16,1],[68,114],[16,1],[68,97],[16,1],[68,121],[16,1],[68,66],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[11],[68,32],[16,1],[68,123],[16,1],[68,10],[16,1],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,52],[16,1],[68,109],[16,1],[11],[68,32],[16,1],[68,32],[16,1],[68,91],[16,1],[68,85],[16,1],[68,105],[16,1],[68,110],[16,1],[68,116],[16,1],[68,56],[16,1],[68,67],[16,1],[68,111],[16,1],[68,110],[16,1],[68,116],[16,1],[68,101],[16,1],[68,110],[16,1],[68,116],[16,1],[68,115],[16,1],[68,93],[16,1],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,41],[16,1],[68,58],[16,1],[68,32],[16,1],[68,60],[16,1],[68,14],[65,6],[16,builtin('__Porffor_allocate')],[184],[65,7],[32,0],[32,1],[68,0],[65,128,1],[68,0],[65,128,1],[16,builtin('Uint8Array')],[34,8],[33,20],[34,19],[252,3],[40,1,0],[184],[68,1],[161],[33,21],[65,1],[33,22],[68,0],[33,11],[3,64],[32,11],[32,21],[101],[4,64],[2,64],[32,19],[33,14],[32,11],[33,15],[32,20],[33,7],[2,124],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,17],[65,1],[54,0,0],[32,17],[32,15],[252,3],[65,2],[108],[32,14],[252,3],[106],[47,0,4],[59,0,4],[32,17],[184],[65,195,0],[33,8],[12,1],[11],[32,7],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,15],[252,3],[65,9],[108],[32,14],[252,3],[106],[34,16],[43,0,4],[32,16],[45,0,12],[33,8],[12,1],[11],[32,7],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[106],[45,0,4],[184],[65,1],[33,8],[12,1],[11],[32,7],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[106],[44,0,4],[183],[65,1],[33,8],[12,1],[11],[32,7],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[106],[45,0,4],[184],[65,1],[33,8],[12,1],[11],[32,7],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,2],[108],[106],[47,0,4],[184],[65,1],[33,8],[12,1],[11],[32,7],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,2],[108],[106],[46,0,4],[183],[65,1],[33,8],[12,1],[11],[32,7],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,4],[108],[106],[40,0,4],[184],[65,1],[33,8],[12,1],[11],[32,7],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,4],[108],[106],[40,0,4],[183],[65,1],[33,8],[12,1],[11],[32,7],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,4],[108],[106],[42,0,4],[187],[65,1],[33,8],[12,1],[11],[32,7],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,14],[252,3],[40,0,4],[32,15],[252,3],[65,8],[108],[106],[43,0,4],[65,1],[33,8],[12,1],[11],[32,7],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,17],[65,1],[54,0,0],[32,17],[32,15],[252,3],[32,14],[252,3],[106],[45,0,4],[58,0,4],[32,17],[184],[65,195,1],[33,8],[12,1],[11],[32,14],[252,3],[32,20],[32,15],[65,1],[16,builtin('__ecma262_ToPropertyKey')],[33,18],[252,3],[32,18],[16,builtin('__Porffor_object_get')],[33,8],[11,"TYPESWITCH_end"],[33,23],[32,8],[33,24],[32,23],[68,240],[16,builtin('f64_&')],[68,16],[163],[65,1],[16,builtin('__Porffor_printHexDigit')],[33,8],[26],[32,23],[68,15],[16,builtin('f64_&')],[65,1],[16,builtin('__Porffor_printHexDigit')],[33,8],[26],[32,11],[32,21],[98],[4,64],[68,32],[16,1],[11],[11],[32,11],[68,1],[160],[33,11],[12,1],[11],[11],[68,62],[16,1],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,76],[16,1],[68,101],[16,1],[68,110],[16,1],[68,103],[16,1],[68,116],[16,1],[68,104],[16,1],[68,58],[16,1],[68,32],[16,1],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,51],[16,1],[68,51],[16,1],[68,109],[16,1],[11],[32,0],[33,14],[32,1],[33,25],...number(allocPage(_,'bytestring: __Porffor_print/#member_prop','i8'),124),[34,15],[252,3],[34,26],[65,10],[54,1,0],[32,26],[65,226,0],[58,0,4],[32,26],[65,249,0],[58,0,5],[32,26],[65,244,0],[58,0,6],[32,26],[65,229,0],[58,0,7],[32,26],[65,204,0],[58,0,8],[32,26],[65,229,0],[58,0,9],[32,26],[65,238,0],[58,0,10],[32,26],[65,231,0],[58,0,11],[32,26],[65,244,0],[58,0,12],[32,26],[65,232,0],[58,0,13],[32,26],[184],[33,15],[32,1],[33,7],[2,124],[32,7],[65,21],[70],[4,64,"TYPESWITCH|ArrayBuffer"],[32,14],[32,25],[16,builtin('__ArrayBuffer_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,22],[70],[4,64,"TYPESWITCH|SharedArrayBuffer"],[32,14],[32,25],[16,builtin('__SharedArrayBuffer_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,23],[70],[4,64,"TYPESWITCH|DataView"],[32,14],[32,25],[16,builtin('__DataView_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,17],[65,1],[54,0,0],[32,17],[32,15],[252,3],[65,2],[108],[32,14],[252,3],[106],[47,0,4],[59,0,4],[32,17],[184],[65,195,0],[33,8],[12,1],[11],[32,7],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,15],[252,3],[65,9],[108],[32,14],[252,3],[106],[34,16],[43,0,4],[32,16],[45,0,12],[33,8],[12,1],[11],[32,7],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,14],[32,25],[16,builtin('__Uint8Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,14],[32,25],[16,builtin('__Int8Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,14],[32,25],[16,builtin('__Uint8ClampedArray_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,14],[32,25],[16,builtin('__Uint16Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,14],[32,25],[16,builtin('__Int16Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,14],[32,25],[16,builtin('__Uint32Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,14],[32,25],[16,builtin('__Int32Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,14],[32,25],[16,builtin('__Float32Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,14],[32,25],[16,builtin('__Float64Array_prototype_byteLength$get')],[33,8],[12,1],[11],[32,7],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,17],[65,1],[54,0,0],[32,17],[32,15],[252,3],[32,14],[252,3],[106],[45,0,4],[58,0,4],[32,17],[184],[65,195,1],[33,8],[12,1],[11],[32,14],[252,3],[32,1],[32,15],[252,3],[65,195,1],[16,builtin('__Porffor_object_get')],[33,8],[11,"TYPESWITCH_end"],[16,0],[32,2],[33,6],[32,3],[33,7],[2,127],[32,7],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,7],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,6],[252,3],[40,1,0],[12,1],[11],[32,6],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,27],[16,1],[68,91],[16,1],[68,48],[16,1],[68,109],[16,1],[11],[68,10],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,5],[65,23],[70],[4,64,"TYPESWITCH|DataView"],[68,68],[16,1],[68,97],[16,1],[68,116],[16,1],[68,97],[16,1],[68,86],[16,1],[68,105],[16,1],[68,101],[16,1],[68,119],[16,1],[68,32],[16,1],[68,123],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,76],[16,1],[68,101],[16,1],[68,110],[16,1],[68,103],[16,1],[68,116],[16,1],[68,104],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_byteLength$get')],[34,8],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,8],[26],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,121],[16,1],[68,116],[16,1],[68,101],[16,1],[68,79],[16,1],[68,102],[16,1],[68,102],[16,1],[68,115],[16,1],[68,101],[16,1],[68,116],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_byteOffset$get')],[34,8],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,8],[26],[68,44],[16,1],[68,10],[16,1],[68,32],[16,1],[68,32],[16,1],[68,98],[16,1],[68,117],[16,1],[68,102],[16,1],[68,102],[16,1],[68,101],[16,1],[68,114],[16,1],[68,58],[16,1],[68,32],[16,1],[32,0],[32,1],[16,builtin('__DataView_prototype_buffer$get')],[34,8],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,8],[26],[68,10],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,5],[65,35],[70],[32,5],[65,20],[70],[114],[4,64,"TYPESWITCH|WeakMap,Map"],[32,1],[184],[68,35],[97],[4,64],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,77],[16,1],[68,97],[16,1],[68,112],[16,1],[5],[68,77],[16,1],[68,97],[16,1],[68,112],[16,1],[11],[68,40],[16,1],[32,0],[32,1],[16,builtin('__Map_prototype_keys')],[33,8],[34,27],[252,3],[40,1,0],[184],[68,1],[161],[34,28],[68,1],[160],[16,0],[68,41],[16,1],[68,32],[16,1],[68,123],[16,1],[68,32],[16,1],[68,0],[33,11],[3,64],[32,11],[32,28],[99],[4,64],[32,27],[33,14],[65,208,0],[33,25],[32,11],[34,15],[252,3],[65,9],[108],[32,14],[252,3],[106],[34,16],[43,0,4],[32,16],[45,0,12],[34,8],[33,30],[34,29],[32,30],[68,0],[65,128,1],[16,builtin('__Porffor_print')],[33,8],[26],[68,32],[16,1],[68,61],[16,1],[68,62],[16,1],[68,32],[16,1],[32,0],[32,1],[32,29],[32,30],[16,builtin('__Map_prototype_get')],[34,8],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,8],[26],[32,11],[32,28],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[32,11],[68,1],[160],[33,11],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,5],[65,34],[70],[32,5],[65,19],[70],[114],[4,64,"TYPESWITCH|WeakSet,Set"],[32,1],[184],[68,34],[97],[4,64],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,83],[16,1],[68,101],[16,1],[68,116],[16,1],[5],[68,83],[16,1],[68,101],[16,1],[68,116],[16,1],[11],[68,40],[16,1],[32,0],[32,1],[16,builtin('__Set_prototype_values')],[33,8],[34,31],[252,3],[40,1,0],[184],[68,1],[161],[34,32],[68,1],[160],[16,0],[68,41],[16,1],[68,32],[16,1],[68,123],[16,1],[68,32],[16,1],[68,0],[33,11],[3,64],[32,11],[32,32],[101],[4,64],[32,31],[33,14],[65,208,0],[33,25],[32,11],[34,15],[252,3],[65,9],[108],[32,14],[252,3],[106],[34,16],[43,0,4],[32,16],[45,0,12],[34,8],[32,2],[32,3],[16,builtin('__Porffor_print')],[33,8],[26],[32,11],[32,32],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[32,11],[68,1],[160],[33,11],[12,1],[11],[11],[68,32],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[32,5],[65,33],[70],[4,64,"TYPESWITCH|WeakRef"],[68,87],[16,1],[68,101],[16,1],[68,97],[16,1],[68,107],[16,1],[68,82],[16,1],[68,101],[16,1],[68,102],[16,1],[68,32],[16,1],[68,123],[16,1],[68,125],[16,1],[68,0],[65,128,1],[15],[11],[11,"TYPESWITCH_end"],[68,0],[65,128,1],[15]],
|
656
656
|
params:[124,127,124,127],typedParams:1,returns:[124,127],typedReturns:1,
|
657
|
-
locals:[124,124,127,127,124,124,124,124,127,124,124,127,127,127,124,127,124,127,124,127,127,127,124,124,124,127,124,124
|
657
|
+
locals:[124,127,124,127,127,124,124,124,124,127,124,124,127,127,127,124,127,124,127,124,127,127,127,124,124,124,127,124,124],localNames:["arg","arg#type","colors","colors#type","#switch_disc","#typeswitch_tmp1","#logicinner_tmp","#typeswitch_tmp2","#last_type","keys","len","i","x","x#type","#member_obj","#member_prop","#loadArray_offset","#member_allocd","#swap","buffer","buffer#type","bufferLen","bufferLen#type","ele","ele#type","#member_obj#type","#makearray_pointer_tmp","map","mapLen","key","key#type","set","setLen"],
|
658
658
|
};
|
659
659
|
this.__Porffor_printArray = {
|
660
660
|
wasm:(_,{builtin,internalThrow})=>[[32,5],[65,128,1],[70],[4,64],[68,0],[33,4],[65,2],[33,5],[11],[32,0],[252,3],[40,1,0],[184],[68,1],[161],[33,6],[32,4],[33,7],[32,5],[33,8],[2,127],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,7],[252,3],[40,1,0],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,7],[252,3],[40,1,0],[12,1],[11],[32,7],[252,3],[11,"TYPESWITCH_end"],[4,64],[68,40],[16,1],[32,6],[68,1],[160],[16,0],[68,41],[16,1],[68,32],[16,1],[11],[32,6],[68,-1],[97],[4,64],[68,91],[16,1],[68,93],[16,1],[5],[68,91],[16,1],[68,32],[16,1],[68,0],[33,9],[3,64],[32,9],[32,6],[101],[4,64],[2,64],[32,0],[33,10],[32,9],[33,11],[32,1],[33,8],[2,124],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[16,builtin('__Porffor_allocate')],[34,14],[65,1],[54,0,0],[32,14],[32,11],[252,3],[65,2],[108],[32,10],[252,3],[106],[47,0,4],[59,0,4],[32,14],[184],[65,195,0],[33,13],[12,1],[11],[32,8],[65,208,0],[70],[4,64,"TYPESWITCH|Array"],[32,11],[252,3],[65,9],[108],[32,10],[252,3],[106],[34,12],[43,0,4],[32,12],[45,0,12],[33,13],[12,1],[11],[32,8],[65,216,0],[70],[4,64,"TYPESWITCH|Uint8Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[106],[45,0,4],[184],[65,1],[33,13],[12,1],[11],[32,8],[65,217,0],[70],[4,64,"TYPESWITCH|Int8Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[106],[44,0,4],[183],[65,1],[33,13],[12,1],[11],[32,8],[65,218,0],[70],[4,64,"TYPESWITCH|Uint8ClampedArray"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[106],[45,0,4],[184],[65,1],[33,13],[12,1],[11],[32,8],[65,219,0],[70],[4,64,"TYPESWITCH|Uint16Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,2],[108],[106],[47,0,4],[184],[65,1],[33,13],[12,1],[11],[32,8],[65,220,0],[70],[4,64,"TYPESWITCH|Int16Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,2],[108],[106],[46,0,4],[183],[65,1],[33,13],[12,1],[11],[32,8],[65,221,0],[70],[4,64,"TYPESWITCH|Uint32Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,4],[108],[106],[40,0,4],[184],[65,1],[33,13],[12,1],[11],[32,8],[65,222,0],[70],[4,64,"TYPESWITCH|Int32Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,4],[108],[106],[40,0,4],[183],[65,1],[33,13],[12,1],[11],[32,8],[65,223,0],[70],[4,64,"TYPESWITCH|Float32Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,4],[108],[106],[42,0,4],[187],[65,1],[33,13],[12,1],[11],[32,8],[65,224,0],[70],[4,64,"TYPESWITCH|Float64Array"],[32,10],[252,3],[40,0,4],[32,11],[252,3],[65,8],[108],[106],[43,0,4],[65,1],[33,13],[12,1],[11],[32,8],[65,128,1],[70],[4,64,"TYPESWITCH|undefined"],...internalThrow(_,'TypeError',`Cannot read property of undefined`),[68,0],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[16,builtin('__Porffor_allocate')],[34,14],[65,1],[54,0,0],[32,14],[32,11],[252,3],[32,10],[252,3],[106],[45,0,4],[58,0,4],[32,14],[184],[65,195,1],[33,13],[12,1],[11],[32,10],[252,3],[32,1],[32,11],[65,1],[16,builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[16,builtin('__Porffor_object_get')],[33,13],[11,"TYPESWITCH_end"],[32,13],[32,2],[65,2],[16,builtin('__Porffor_print')],[33,13],[26],[32,9],[32,6],[98],[4,64],[68,44],[16,1],[68,32],[16,1],[11],[11],[32,9],[68,1],[160],[33,9],[12,1],[11],[11],[68,32],[16,1],[68,93],[16,1],[11],[68,0],[65,128,1],[15]],
|
package/compiler/codegen.js
CHANGED
@@ -1382,7 +1382,7 @@ const getNodeType = (scope, node) => {
|
|
1382
1382
|
if (node.operator === '!') return TYPES.boolean;
|
1383
1383
|
if (node.operator === 'void') return TYPES.undefined;
|
1384
1384
|
if (node.operator === 'delete') return TYPES.boolean;
|
1385
|
-
if (node.operator === 'typeof') return
|
1385
|
+
if (node.operator === 'typeof') return TYPES.bytestring;
|
1386
1386
|
|
1387
1387
|
return TYPES.number;
|
1388
1388
|
}
|
@@ -2717,34 +2717,19 @@ const brTable = (input, bc, returns) => {
|
|
2717
2717
|
|
2718
2718
|
let typeswitchDepth = 0;
|
2719
2719
|
|
2720
|
-
const typeSwitch = (scope, type, bc, returns = valtypeBinary,
|
2721
|
-
if (!Prefs.bytestring) delete bc[TYPES.bytestring];
|
2722
|
-
|
2720
|
+
const typeSwitch = (scope, type, bc, returns = valtypeBinary, fallthrough = false) => {
|
2723
2721
|
const known = knownType(scope, type);
|
2724
2722
|
if (known != null) {
|
2725
2723
|
return bc[known] ?? bc.default;
|
2726
2724
|
}
|
2727
2725
|
|
2728
2726
|
if (Prefs.typeswitchBrtable) {
|
2729
|
-
if (
|
2727
|
+
if (fallthrough) throw new Error(`Fallthrough is not currently supported with --typeswitch-brtable`);
|
2730
2728
|
return brTable(type, bc, returns);
|
2731
2729
|
}
|
2732
2730
|
|
2733
2731
|
typeswitchDepth++;
|
2734
2732
|
|
2735
|
-
let bcArr = bc;
|
2736
|
-
// hack?: we do this so that typeswitchDepth can be properly handled
|
2737
|
-
if (typeof bcArr === 'function') {
|
2738
|
-
bcArr = bcArr();
|
2739
|
-
}
|
2740
|
-
// hack: we need to preserve insertion order for fall through so all objects are converted to entries
|
2741
|
-
if (!Array.isArray(bcArr)) {
|
2742
|
-
bcArr = Object.entries(bc);
|
2743
|
-
} else {
|
2744
|
-
bc = Object.fromEntries(bcArr);
|
2745
|
-
}
|
2746
|
-
|
2747
|
-
|
2748
2733
|
const tmp = localTmp(scope, `#typeswitch_tmp${typeswitchDepth}${Prefs.typeswitchUniqueTmp ? uniqId() : ''}`, Valtype.i32);
|
2749
2734
|
const out = [
|
2750
2735
|
...type,
|
@@ -2752,56 +2737,34 @@ const typeSwitch = (scope, type, bc, returns = valtypeBinary, allowFallThrough =
|
|
2752
2737
|
[ Opcodes.block, returns ]
|
2753
2738
|
];
|
2754
2739
|
|
2755
|
-
|
2756
|
-
|
2757
|
-
|
2758
|
-
|
2759
|
-
|
2760
|
-
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
2764
|
-
|
2765
|
-
|
2766
|
-
|
2767
|
-
|
2768
|
-
wasm = bodyWasm;
|
2769
|
-
break;
|
2770
|
-
}
|
2771
|
-
i++;
|
2772
|
-
}
|
2773
|
-
// if we found any types,
|
2774
|
-
if (types.length > 0) {
|
2775
|
-
for (let j = 0; j < types.length; j++) {
|
2776
|
-
// create the type tests
|
2777
|
-
out.push(
|
2778
|
-
[ Opcodes.local_get, tmp ],
|
2779
|
-
...number(types[j], Valtype.i32),
|
2780
|
-
[ Opcodes.i32_eq ]
|
2781
|
-
);
|
2782
|
-
// for every test but the first, or them together
|
2783
|
-
if (j != 0) out.push([ Opcodes.i32_or ]);
|
2784
|
-
}
|
2785
|
-
out.push(
|
2786
|
-
// create the consequent
|
2787
|
-
[ Opcodes.if, Blocktype.void, `TYPESWITCH|${types.map(t => TYPE_NAMES[t]).join(',')}` ],
|
2788
|
-
...wasm,
|
2789
|
-
// we don't need an `br 1` here because depth[-1] should be 'switch', and that's the only place this is used right now
|
2790
|
-
[ Opcodes.end ]
|
2791
|
-
);
|
2792
|
-
}
|
2793
|
-
} else {
|
2794
|
-
// if type == x
|
2740
|
+
if (typeof bc === 'function') bc = bc();
|
2741
|
+
|
2742
|
+
let arr = bc;
|
2743
|
+
if (!Array.isArray(arr)) {
|
2744
|
+
arr = Object.entries(arr);
|
2745
|
+
}
|
2746
|
+
|
2747
|
+
for (let i = 0; i < arr.length; i++) {
|
2748
|
+
let [ types, wasm ] = arr[i];
|
2749
|
+
if (!Array.isArray(types)) types = [ types ];
|
2750
|
+
if (types[0] === 'default') continue;
|
2751
|
+
|
2752
|
+
for (let j = 0; j < types.length; j++) {
|
2795
2753
|
out.push(
|
2796
2754
|
[ Opcodes.local_get, tmp ],
|
2797
|
-
...number(
|
2798
|
-
[ Opcodes.i32_eq ]
|
2799
|
-
[ Opcodes.if, Blocktype.void, `TYPESWITCH|${TYPE_NAMES[x]}` ],
|
2800
|
-
...bcArr[i][1],
|
2801
|
-
[ Opcodes.br, 1 ],
|
2802
|
-
[ Opcodes.end ]
|
2755
|
+
...number(types[j], Valtype.i32),
|
2756
|
+
[ Opcodes.i32_eq ]
|
2803
2757
|
);
|
2758
|
+
|
2759
|
+
if (j > 0) out.push([ Opcodes.i32_or ]);
|
2804
2760
|
}
|
2761
|
+
|
2762
|
+
out.push(
|
2763
|
+
[ Opcodes.if, Blocktype.void, `TYPESWITCH|${types.map(t => TYPE_NAMES[t]).join(',')}` ],
|
2764
|
+
...wasm,
|
2765
|
+
...(fallthrough ? [] : [ [ Opcodes.br, 1 ] ]),
|
2766
|
+
[ Opcodes.end ]
|
2767
|
+
);
|
2805
2768
|
}
|
2806
2769
|
|
2807
2770
|
// default
|
@@ -2888,8 +2851,6 @@ const extractTypeAnnotation = decl => {
|
|
2888
2851
|
const typeName = type;
|
2889
2852
|
type = typeAnnoToPorfType(type);
|
2890
2853
|
|
2891
|
-
if (type === TYPES.bytestring && !Prefs.bytestring) type = TYPES.string;
|
2892
|
-
|
2893
2854
|
// if (decl.name) console.log(decl.name, { type, elementType });
|
2894
2855
|
|
2895
2856
|
return { type, typeName, elementType };
|
@@ -4423,9 +4384,7 @@ const generateSwitch = (scope, decl) => {
|
|
4423
4384
|
|
4424
4385
|
depth.push('switch');
|
4425
4386
|
|
4426
|
-
if (
|
4427
|
-
decl.discriminant.type === 'CallExpression' && decl.discriminant.callee.type === 'Identifier' && decl.discriminant.callee.name === '__Porffor_rawType'
|
4428
|
-
) {
|
4387
|
+
if (decl.discriminant.type === 'CallExpression' && decl.discriminant.callee.type === 'Identifier' && decl.discriminant.callee.name === '__Porffor_rawType') {
|
4429
4388
|
const cases = []
|
4430
4389
|
let canTypeCheck = true;
|
4431
4390
|
for (const x of decl.cases) {
|
@@ -4437,8 +4396,9 @@ const generateSwitch = (scope, decl) => {
|
|
4437
4396
|
} else if (x.test.type === 'Identifier' && x.test.name.startsWith('__Porffor_TYPES_')) {
|
4438
4397
|
type = TYPES[x.test.name.slice('__Porffor_TYPES_'.length)];
|
4439
4398
|
}
|
4399
|
+
|
4440
4400
|
if (type !== undefined) {
|
4441
|
-
cases.push([type, x.consequent]);
|
4401
|
+
cases.push([ type, x.consequent ]);
|
4442
4402
|
} else {
|
4443
4403
|
canTypeCheck = false;
|
4444
4404
|
break;
|
@@ -4446,16 +4406,26 @@ const generateSwitch = (scope, decl) => {
|
|
4446
4406
|
}
|
4447
4407
|
|
4448
4408
|
if (canTypeCheck) {
|
4449
|
-
const
|
4450
|
-
|
4451
|
-
|
4452
|
-
const
|
4453
|
-
|
4454
|
-
|
4455
|
-
|
4456
|
-
|
4409
|
+
const out = typeSwitch(scope,
|
4410
|
+
getNodeType(scope, decl.discriminant.arguments[0]),
|
4411
|
+
() => {
|
4412
|
+
const bc = [];
|
4413
|
+
let types = [];
|
4414
|
+
for (const [ type, consequent ] of cases) {
|
4415
|
+
types.push(type);
|
4416
|
+
|
4417
|
+
if (consequent.length !== 0) {
|
4418
|
+
const o = generate(scope, { type: 'BlockStatement', body: consequent });
|
4419
|
+
bc.push([ types, o ]);
|
4420
|
+
types = [];
|
4421
|
+
}
|
4422
|
+
}
|
4423
|
+
|
4424
|
+
return bc;
|
4425
|
+
}, Blocktype.void, true);
|
4426
|
+
|
4457
4427
|
depth.pop();
|
4458
|
-
return
|
4428
|
+
return out;
|
4459
4429
|
}
|
4460
4430
|
}
|
4461
4431
|
|
@@ -5030,8 +5000,6 @@ const loadArray = (scope, array, index) => {
|
|
5030
5000
|
};
|
5031
5001
|
|
5032
5002
|
const byteStringable = str => {
|
5033
|
-
if (!Prefs.bytestring) return false;
|
5034
|
-
|
5035
5003
|
for (let i = 0; i < str.length; i++) {
|
5036
5004
|
if (str.charCodeAt(i) > 0xFF) return false;
|
5037
5005
|
}
|
@@ -5041,7 +5009,7 @@ const byteStringable = str => {
|
|
5041
5009
|
|
5042
5010
|
const makeString = (scope, str, global = false, name = '$undeclared', forceBytestring = undefined) => {
|
5043
5011
|
const rawElements = new Array(str.length);
|
5044
|
-
let byteStringable =
|
5012
|
+
let byteStringable = true;
|
5045
5013
|
for (let i = 0; i < str.length; i++) {
|
5046
5014
|
const c = str.charCodeAt(i);
|
5047
5015
|
rawElements[i] = c;
|
package/compiler/index.js
CHANGED
@@ -196,7 +196,7 @@ export default (code, flags) => {
|
|
196
196
|
}
|
197
197
|
|
198
198
|
if (target === 'native') {
|
199
|
-
outFile ??= Prefs.native ? './porffor_tmp' : file.split('/').at(-1).split('.')
|
199
|
+
outFile ??= Prefs.native ? './porffor_tmp' : file.split('/').at(-1).split('.')[0];
|
200
200
|
|
201
201
|
let compiler = Prefs.compiler ?? 'clang';
|
202
202
|
const cO = Prefs._cO ?? 'Ofast';
|
package/compiler/precompile.js
CHANGED
@@ -25,7 +25,7 @@ const compile = async (file, _funcs) => {
|
|
25
25
|
first = source.slice(0, source.indexOf('\n'));
|
26
26
|
}
|
27
27
|
|
28
|
-
let args = ['--
|
28
|
+
let args = ['--todo-time=compile', '--truthy=no_nan_negative', '--no-rm-unused-types', '--scoped-page-names', '--funsafe-no-unlikely-proto-checks', '--fast-length', '--parse-types', '--opt-types', '--no-passive-data', '--active-data'];
|
29
29
|
if (first.startsWith('// @porf')) {
|
30
30
|
args = first.slice('// @porf '.length).split(' ').concat(args);
|
31
31
|
}
|
package/compiler/prefs.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
const onByDefault = [ '
|
1
|
+
const onByDefault = [ 'treeshakeWasmImports', 'alwaysMemory', 'indirectCalls', 'optUnused', 'data', 'passiveData', 'rmUnusedTypes' ];
|
2
2
|
|
3
3
|
const nameToKey = x => x.replace(/[a-z]\-[a-z]/g, y => `${y[0]}${y[2].toUpperCase()}`);
|
4
4
|
|
package/compiler/prototype.js
CHANGED
@@ -306,129 +306,127 @@ export const PrototypeFuncs = function() {
|
|
306
306
|
this[TYPES.string].charCodeAt.local = Valtype.i32;
|
307
307
|
this[TYPES.string].charCodeAt.noPointerCache = zeroChecks.charcodeat;
|
308
308
|
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
const [ newOut, newPointer ] = arrayShell(1, 'i8');
|
313
|
-
|
314
|
-
return [
|
315
|
-
// setup new/out array and use pointer for store later
|
316
|
-
...newOut,
|
309
|
+
this[TYPES.bytestring] = {
|
310
|
+
at: (pointer, length, wIndex, wType, iTmp, _, arrayShell) => {
|
311
|
+
const [ newOut, newPointer ] = arrayShell(1, 'i8');
|
317
312
|
|
318
|
-
|
319
|
-
|
320
|
-
|
313
|
+
return [
|
314
|
+
// setup new/out array and use pointer for store later
|
315
|
+
...newOut,
|
321
316
|
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
[ Opcodes.if, Blocktype.void ],
|
326
|
-
[ Opcodes.local_get, iTmp ],
|
327
|
-
...length.getCachedI32(),
|
328
|
-
[ Opcodes.i32_add ],
|
329
|
-
[ Opcodes.local_set, iTmp ],
|
330
|
-
[ Opcodes.end ],
|
317
|
+
...wIndex,
|
318
|
+
Opcodes.i32_to_u,
|
319
|
+
[ Opcodes.local_tee, iTmp ],
|
331
320
|
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
321
|
+
// if index < 0: access index + array length
|
322
|
+
...number(0, Valtype.i32),
|
323
|
+
[ Opcodes.i32_lt_s ],
|
324
|
+
[ Opcodes.if, Blocktype.void ],
|
325
|
+
[ Opcodes.local_get, iTmp ],
|
326
|
+
...length.getCachedI32(),
|
327
|
+
[ Opcodes.i32_add ],
|
328
|
+
[ Opcodes.local_set, iTmp ],
|
329
|
+
[ Opcodes.end ],
|
336
330
|
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
331
|
+
// if still < 0 or >= length: return undefined
|
332
|
+
[ Opcodes.local_get, iTmp ],
|
333
|
+
...number(0, Valtype.i32),
|
334
|
+
[ Opcodes.i32_lt_s ],
|
341
335
|
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
336
|
+
[ Opcodes.local_get, iTmp ],
|
337
|
+
...length.getCachedI32(),
|
338
|
+
[ Opcodes.i32_ge_s ],
|
339
|
+
[ Opcodes.i32_or ],
|
346
340
|
|
347
|
-
|
341
|
+
[ Opcodes.if, Blocktype.void ],
|
342
|
+
...number(UNDEFINED),
|
343
|
+
[ Opcodes.br, 1 ],
|
344
|
+
[ Opcodes.end ],
|
348
345
|
|
349
|
-
|
350
|
-
[ Opcodes.i32_add ],
|
346
|
+
[ Opcodes.local_get, iTmp ],
|
351
347
|
|
352
|
-
|
353
|
-
|
348
|
+
...pointer,
|
349
|
+
[ Opcodes.i32_add ],
|
354
350
|
|
355
|
-
|
356
|
-
|
351
|
+
// load current string ind {arg}
|
352
|
+
[ Opcodes.i32_load8_u, 0, ValtypeSize.i32 ],
|
357
353
|
|
358
|
-
|
359
|
-
|
360
|
-
Opcodes.i32_from_u
|
361
|
-
];
|
362
|
-
},
|
354
|
+
// store to new string ind 0
|
355
|
+
[ Opcodes.i32_store8, 0, ValtypeSize.i32 ],
|
363
356
|
|
364
|
-
|
365
|
-
|
366
|
-
|
357
|
+
// return new string (pointer)
|
358
|
+
...newPointer,
|
359
|
+
Opcodes.i32_from_u
|
360
|
+
];
|
361
|
+
},
|
367
362
|
|
368
|
-
|
369
|
-
|
370
|
-
|
363
|
+
// todo: out of bounds properly
|
364
|
+
charAt: (pointer, length, wIndex, wType, _1, _2, arrayShell) => {
|
365
|
+
const [ newOut, newPointer ] = arrayShell(1, 'i8');
|
371
366
|
|
372
|
-
|
373
|
-
|
367
|
+
return [
|
368
|
+
// setup new/out array and use pointer for later
|
369
|
+
...newOut,
|
374
370
|
|
375
|
-
|
376
|
-
|
371
|
+
...wIndex,
|
372
|
+
Opcodes.i32_to,
|
377
373
|
|
378
|
-
|
379
|
-
|
374
|
+
...pointer,
|
375
|
+
[ Opcodes.i32_add ],
|
380
376
|
|
381
|
-
|
382
|
-
|
377
|
+
// load current string ind {arg}
|
378
|
+
[ Opcodes.i32_load8_u, 0, ValtypeSize.i32 ],
|
383
379
|
|
384
|
-
|
385
|
-
|
386
|
-
Opcodes.i32_from_u
|
387
|
-
];
|
388
|
-
},
|
380
|
+
// store to new string ind 0
|
381
|
+
[ Opcodes.i32_store8, 0, ValtypeSize.i32 ],
|
389
382
|
|
390
|
-
|
391
|
-
...
|
392
|
-
Opcodes.
|
383
|
+
// return new string (page)
|
384
|
+
...newPointer,
|
385
|
+
Opcodes.i32_from_u
|
386
|
+
];
|
387
|
+
},
|
393
388
|
|
394
|
-
|
395
|
-
|
389
|
+
charCodeAt: (pointer, length, wIndex, wType, iTmp) => [
|
390
|
+
...wIndex,
|
391
|
+
Opcodes.i32_to,
|
396
392
|
|
397
|
-
|
398
|
-
|
399
|
-
[ Opcodes.local_get, iTmp ],
|
400
|
-
...number(0, Valtype.i32),
|
401
|
-
[ Opcodes.i32_lt_s ],
|
402
|
-
]),
|
393
|
+
...(zeroChecks.charcodeat ? [] : [
|
394
|
+
[ Opcodes.local_set, iTmp ],
|
403
395
|
|
404
|
-
|
396
|
+
// index < 0
|
397
|
+
...(noUnlikelyChecks ? [] : [
|
405
398
|
[ Opcodes.local_get, iTmp ],
|
406
|
-
...
|
407
|
-
[ Opcodes.
|
399
|
+
...number(0, Valtype.i32),
|
400
|
+
[ Opcodes.i32_lt_s ],
|
401
|
+
]),
|
408
402
|
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
[ Opcodes.end ],
|
403
|
+
// index >= length
|
404
|
+
[ Opcodes.local_get, iTmp ],
|
405
|
+
...length.getCachedI32(),
|
406
|
+
[ Opcodes.i32_ge_s ],
|
414
407
|
|
415
|
-
|
416
|
-
]
|
408
|
+
...(noUnlikelyChecks ? [] : [ [ Opcodes.i32_or ] ]),
|
409
|
+
[ Opcodes.if, Blocktype.void ],
|
410
|
+
...number(valtype === 'i32' ? -1 : NaN),
|
411
|
+
[ Opcodes.br, 1 ],
|
412
|
+
[ Opcodes.end ],
|
417
413
|
|
418
|
-
|
419
|
-
|
414
|
+
[ Opcodes.local_get, iTmp ],
|
415
|
+
]),
|
420
416
|
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
417
|
+
...pointer,
|
418
|
+
[ Opcodes.i32_add ],
|
419
|
+
|
420
|
+
// load current string ind {arg}
|
421
|
+
[ Opcodes.i32_load8_u, 0, ValtypeSize.i32 ],
|
422
|
+
Opcodes.i32_from_u
|
423
|
+
]
|
424
|
+
};
|
425
|
+
|
426
|
+
this[TYPES.bytestring].at.local = Valtype.i32;
|
427
|
+
this[TYPES.bytestring].at.returnType = TYPES.bytestring;
|
428
|
+
this[TYPES.bytestring].charAt.returnType = TYPES.bytestring;
|
429
|
+
this[TYPES.bytestring].charCodeAt.returnType = TYPES.number;
|
430
|
+
this[TYPES.bytestring].charCodeAt.local = Valtype.i32;
|
431
|
+
this[TYPES.bytestring].charCodeAt.noPointerCache = zeroChecks.charcodeat;
|
434
432
|
};
|
package/package.json
CHANGED