porffor 0.22.7 → 0.22.8

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.
@@ -107,6 +107,8 @@ export default (funcs, globals, tags, pages, data, flags, noTreeshake = false) =
107
107
  }
108
108
 
109
109
  if (inst[0] === Opcodes.call_indirect) {
110
+ if (!funcs.table) funcs.table = true;
111
+
110
112
  const params = [];
111
113
  for (let i = 0; i < inst[1]; i++) {
112
114
  params.push(valtypeBinary, Valtype.i32);
@@ -63,6 +63,33 @@ export const __Porffor_object_checkAllFlags = (_this: object, dataAnd: i32, acce
63
63
  };
64
64
 
65
65
 
66
+ export const __Porffor_object_packAccessor = (get: i32, set: i32): f64 => {
67
+ // pack i32s get & set into a single f64 (i64)
68
+ Porffor.wasm`
69
+ local.get ${set}
70
+ i64.extend_i32_u
71
+ i64.const 32
72
+ i64.shl
73
+ local.get ${get}
74
+ i64.extend_i32_u
75
+ i64.or
76
+
77
+ f64.reinterpret_i64
78
+ i32.const 1
79
+ return`;
80
+ };
81
+
82
+ export const __Porffor_object_accessorGet = (entryPtr: i32): Function => {
83
+ const out: Function = Porffor.wasm.i32.load(entryPtr, 0, 4);
84
+ return out;
85
+ };
86
+
87
+ export const __Porffor_object_accessorSet = (entryPtr: i32): Function => {
88
+ const out: Function = Porffor.wasm.i32.load(entryPtr, 0, 8);
89
+ return out;
90
+ };
91
+
92
+
66
93
  export const __Porffor_object_lookup = (_this: object, target: any): i32 => {
67
94
  const targetType: i32 = Porffor.wasm`local.get ${target+1}`;
68
95
 
@@ -120,11 +147,10 @@ return`;
120
147
 
121
148
  if (tail & 0b0001) {
122
149
  // accessor descriptor
123
- // todo
124
-
150
+ const get: Function = __Porffor_object_accessorGet(entryPtr);
125
151
  Porffor.wasm`
126
- f64.const 0
127
- i32.const 128
152
+ local.get ${get}
153
+ call_indirect 0 0
128
154
  return`;
129
155
  }
130
156
 
@@ -178,7 +204,12 @@ export const __Porffor_object_set = (_this: object, key: any, value: any): any =
178
204
 
179
205
  if (tail & 0b0001) {
180
206
  // accessor descriptor
181
- // todo
207
+ const set: Function = __Porffor_object_accessorSet(entryPtr);
208
+ Porffor.wasm`
209
+ local.get ${value}
210
+ local.get ${value+1}
211
+ local.get ${set}
212
+ call_indirect 1 0`;
182
213
 
183
214
  return value;
184
215
  }
@@ -227,6 +227,7 @@ export const __Object_defineProperty = (target: any, prop: any, descriptor: any)
227
227
  }
228
228
 
229
229
  accessor = true;
230
+ value = Porffor.object.packAccessor(get, set);
230
231
  }
231
232
 
232
233
  let flags: i32 = 0b0000;
@@ -412,7 +413,8 @@ export const __Object_getOwnPropertyDescriptor = (obj: any, prop: any): any => {
412
413
  out.enumerable = Boolean(tail & 0b0100);
413
414
 
414
415
  if (tail & 0b0001) {
415
- // accessor descriptor
416
+ out.get = Porffor.object.accessorGet(entryPtr);
417
+ out.set = Porffor.object.accessorSet(entryPtr);
416
418
 
417
419
  return out;
418
420
  }
@@ -26,6 +26,24 @@ export const BuiltinFuncs = function() {
26
26
  returns: [127,127], typedReturns: 1,
27
27
  locals: [127,127,127,127], localNames: ["_this","_this#type","dataAnd","dataAnd#type","accessorAnd","accessorAnd#type","dataExpected","dataExpected#type","accessorExpected","accessorExpected#type","ptr","size","endPtr","flags"],
28
28
  };
29
+ this.__Porffor_object_packAccessor = {
30
+ wasm: (scope, {}) => [[32,2],[173],[66,32],[134],[32,0],[173],[132],[191],[65,1],[15]],
31
+ params: [127,127,127,127], typedParams: 1,
32
+ returns: [124,127], typedReturns: 1,
33
+ locals: [], localNames: ["get","get#type","set","set#type"],
34
+ };
35
+ this.__Porffor_object_accessorGet = {
36
+ wasm: (scope, {}) => [[32,0],[40,0,4],[34,2],[65,6],[15]],
37
+ params: [127,127], typedParams: 1,
38
+ returns: [127,127], typedReturns: 1,
39
+ locals: [127], localNames: ["entryPtr","entryPtr#type","out"],
40
+ };
41
+ this.__Porffor_object_accessorSet = {
42
+ wasm: (scope, {}) => [[32,0],[40,0,8],[34,2],[65,6],[15]],
43
+ params: [127,127], typedParams: 1,
44
+ returns: [127,127], typedReturns: 1,
45
+ locals: [127], localNames: ["entryPtr","entryPtr#type","out"],
46
+ };
29
47
  this.__Porffor_object_lookup = {
30
48
  wasm: (scope, {}) => [[32,3],[33,4],[32,0],[65,5],[106],[33,5],[32,0],[40,0,0],[33,6],[32,5],[32,6],[65,14],[108],[106],[33,7],[32,4],[65,195,1],[70],[4,64],[32,2],[33,8],[3,64],[32,5],[32,7],[72],[4,64],[2,64],[32,5],[40,0,0],[34,9],[69],[4,64],[12,2],[11],[32,9],[65,31],[118],[4,64],[12,1],[11],[32,9],[34,10],[32,8],[33,13],[34,11],[32,13],[71],[4,127],[32,11],[40,0,0],[34,12],[32,13],[40,0,0],[71],[4,64],[65,0],[12,1],[11],[65,0],[33,14],[32,12],[33,15],[3,64],[32,14],[32,11],[106],[45,0,4],[32,14],[32,13],[106],[45,0,4],[71],[4,64],[65,0],[12,2],[11],[32,14],[65,1],[106],[34,14],[32,15],[72],[13,0],[11],[65,1],[5],[65,1],[11],[4,64],[32,5],[65,1],[15],[11],[11],[32,5],[65,14],[106],[34,5],[12,1],[11],[11],[5],[32,4],[65,195,0],[70],[4,64],[32,2],[33,8],[3,64],[32,5],[32,7],[72],[4,64],[2,64],[32,5],[40,0,0],[34,9],[69],[4,64],[12,2],[11],[32,9],[65,30],[118],[65,2],[70],[4,64],[32,9],[65,255,255,255,255,7],[113],[34,10],[32,8],[33,13],[34,11],[32,13],[71],[4,127],[32,11],[40,0,0],[34,12],[32,13],[40,0,0],[71],[4,64],[65,0],[12,1],[11],[65,0],[33,14],[32,12],[65,2],[108],[33,15],[3,64],[32,14],[32,11],[106],[47,0,4],[32,14],[32,13],[106],[47,0,4],[71],[4,64],[65,0],[12,2],[11],[32,14],[65,2],[106],[34,14],[32,15],[72],[13,0],[11],[65,1],[5],[65,1],[11],[4,64],[32,5],[65,1],[15],[11],[11],[11],[32,5],[65,14],[106],[34,5],[12,1],[11],[11],[5],[32,2],[33,16],[3,64],[32,5],[32,7],[72],[4,64],[2,64],[32,5],[40,0,0],[34,9],[69],[4,64],[12,2],[11],[32,9],[65,30],[118],[65,3],[70],[4,64],[32,9],[65,255,255,255,255,3],[113],[34,17],[32,16],[70],[4,64],[32,5],[65,1],[15],[11],[11],[11],[32,5],[65,14],[106],[34,5],[12,1],[11],[11],[11],[11],[65,127],[65,1],[15]],
31
49
  params: [127,127,127,127], typedParams: 1,
@@ -33,10 +51,10 @@ export const BuiltinFuncs = function() {
33
51
  locals: [127,127,127,127,127,127,127,127,127,127,127,127,127,127], localNames: ["_this","_this#type","target","target#type","targetType","ptr","size","endPtr","targetStr","keyRaw","keyStr","compare_left_pointer","compare_left_length","compare_right_pointer","compare_index","compare_index_end","targetSym","keySym"],
34
52
  };
35
53
  this.__Porffor_object_get = {
36
- wasm: (scope, {builtin}) => [[32,0],[65,7],[32,2],[32,3],[16, ...builtin('__Porffor_object_lookup')],[26],[34,4],[65,127],[70],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[32,4],[47,0,12],[34,6],[65,1],[113],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[32,4],[43,0,4],[32,6],[65,8],[118],[15]],
54
+ wasm: (scope, {builtin}) => [[32,0],[65,7],[32,2],[32,3],[16, ...builtin('__Porffor_object_lookup')],[26],[34,4],[65,127],[70],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[32,4],[47,0,12],[34,6],[65,1],[113],[4,64],[32,4],[65,1],[16, ...builtin('__Porffor_object_accessorGet')],[26],[34,7],[17,0,0],[15],[11],[32,4],[43,0,4],[32,6],[65,8],[118],[15]],
37
55
  params: [127,127,127,127], typedParams: 1,
38
56
  returns: [124,127], typedReturns: 1,
39
- locals: [127,127,127], localNames: ["_this","_this#type","key","key#type","entryPtr","#last_type","tail"],
57
+ locals: [127,127,127,127], localNames: ["_this","_this#type","key","key#type","entryPtr","#last_type","tail","get"],
40
58
  };
41
59
  this.__Porffor_object_writeKey = {
42
60
  wasm: (scope, {}) => [[32,2],[33,4],[32,3],[65,195,0],[70],[4,64],[32,4],[65,128,128,128,128,120],[114],[33,4],[5],[32,3],[65,5],[70],[4,64],[32,4],[65,128,128,128,128,124],[114],[33,4],[11],[11],[32,0],[32,4],[54,0,0],[65,0],[65,128,1],[15]],
@@ -45,10 +63,10 @@ export const BuiltinFuncs = function() {
45
63
  locals: [127], localNames: ["ptr","ptr#type","key","key#type","keyEnc"],
46
64
  };
47
65
  this.__Porffor_object_set = {
48
- wasm: (scope, {builtin}) => [[32,0],[65,7],[32,2],[32,3],[16, ...builtin('__Porffor_object_lookup')],[26],[34,6],[65,127],[70],[4,64],[32,0],[65,7],[16, ...builtin('__Porffor_object_isInextensible')],[33,7],[33,9],[32,7],[33,10],[2,127],[32,10],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,9],[40,1,0],[12,1],[11],[32,10],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,9],[40,1,0],[12,1],[11],[32,9],[11,"TYPESWITCH_end"],[4,64],[32,4],[32,5],[15],[11],[32,0],[40,0,0],[33,11],[32,0],[32,11],[65,1],[106],[54,0,0],[32,0],[65,5],[106],[32,11],[65,14],[108],[106],[34,6],[65,1],[32,2],[32,3],[16, ...builtin('__Porffor_object_writeKey')],[33,7],[26],[65,14],[33,8],[5],[32,6],[47,0,12],[34,12],[65,1],[113],[4,64],[32,4],[32,5],[15],[11],[32,12],[65,8],[113],[69],[4,64],[32,4],[32,5],[15],[11],[32,12],[65,255,1],[113],[33,8],[11],[32,6],[32,4],[57,0,4],[32,6],[32,8],[32,5],[65,8],[116],[106],[59,0,12],[32,4],[32,5],[15]],
66
+ wasm: (scope, {builtin}) => [[32,0],[65,7],[32,2],[32,3],[16, ...builtin('__Porffor_object_lookup')],[26],[34,6],[65,127],[70],[4,64],[32,0],[65,7],[16, ...builtin('__Porffor_object_isInextensible')],[33,7],[33,9],[32,7],[33,10],[2,127],[32,10],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,9],[40,1,0],[12,1],[11],[32,10],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,9],[40,1,0],[12,1],[11],[32,9],[11,"TYPESWITCH_end"],[4,64],[32,4],[32,5],[15],[11],[32,0],[40,0,0],[33,11],[32,0],[32,11],[65,1],[106],[54,0,0],[32,0],[65,5],[106],[32,11],[65,14],[108],[106],[34,6],[65,1],[32,2],[32,3],[16, ...builtin('__Porffor_object_writeKey')],[33,7],[26],[65,14],[33,8],[5],[32,6],[47,0,12],[34,12],[65,1],[113],[4,64],[32,6],[65,1],[16, ...builtin('__Porffor_object_accessorSet')],[26],[33,13],[32,4],[32,5],[32,13],[17,1,0],[26],[26],[32,4],[32,5],[15],[11],[32,12],[65,8],[113],[69],[4,64],[32,4],[32,5],[15],[11],[32,12],[65,255,1],[113],[33,8],[11],[32,6],[32,4],[57,0,4],[32,6],[32,8],[32,5],[65,8],[116],[106],[59,0,12],[32,4],[32,5],[15]],
49
67
  params: [127,127,127,127,124,127], typedParams: 1,
50
68
  returns: [124,127], typedReturns: 1,
51
- locals: [127,127,127,127,127,127,127], localNames: ["_this","_this#type","key","key#type","value","value#type","entryPtr","#last_type","flags","#logicinner_tmp","#typeswitch_tmp","size","tail"],
69
+ locals: [127,127,127,127,127,127,127,127], localNames: ["_this","_this#type","key","key#type","value","value#type","entryPtr","#last_type","flags","#logicinner_tmp","#typeswitch_tmp","size","tail","set"],
52
70
  };
53
71
  this.__Porffor_object_define = {
54
72
  wasm: (scope, {builtin,internalThrow}) => [[32,0],[65,7],[32,2],[32,3],[16, ...builtin('__Porffor_object_lookup')],[26],[34,8],[65,127],[70],[4,64],[32,0],[65,7],[16, ...builtin('__Porffor_object_isInextensible')],[33,9],[33,10],[32,9],[33,11],[2,127],[32,11],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,10],[40,1,0],[12,1],[11],[32,11],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,10],[40,1,0],[12,1],[11],[32,10],[11,"TYPESWITCH_end"],[4,64],...internalThrow(scope, 'TypeError', `Cannot define property, object is inextensible`),[11],[32,0],[40,0,0],[33,12],[32,0],[32,12],[65,1],[106],[54,0,0],[32,0],[65,5],[106],[32,12],[65,14],[108],[106],[34,8],[65,1],[32,2],[32,3],[16, ...builtin('__Porffor_object_writeKey')],[33,9],[26],[5],[32,8],[47,0,12],[34,13],[65,2],[113],[69],[4,64],[32,13],[65,15],[113],[32,6],[71],[4,64],[65,0],[33,14],[32,13],[65,7],[113],[32,6],[71],[4,64],[65,1],[33,14],[5],[32,13],[65,1],[113],[69],[34,15],[4,127],[32,13],[65,8],[113],[69],[65,2],[33,9],[5],[32,15],[65,2],[33,9],[11],[33,10],[32,9],[33,11],[2,127],[32,11],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,10],[40,1,0],[12,1],[11],[32,11],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,10],[40,1,0],[12,1],[11],[32,10],[11,"TYPESWITCH_end"],[4,64],[32,6],[65,8],[113],[4,64],[65,1],[33,14],[5],[32,8],[43,0,4],[32,4],[98],[32,8],[45,0,13],[32,5],[71],[114],[33,14],[11],[11],[11],[32,14],[4,64],...internalThrow(scope, 'TypeError', `Cannot redefine property`),[11],[11],[11],[11],[32,8],[32,4],[57,0,4],[32,8],[32,6],[32,5],[65,8],[116],[106],[59,0,12],[65,0],[65,128,1],[15]],
@@ -1725,7 +1743,7 @@ export const BuiltinFuncs = function() {
1725
1743
  hasRestArgument: 1,
1726
1744
  };
1727
1745
  this.__Object_defineProperty = {
1728
- wasm: (scope, {allocPage,builtin,internalThrow}) => [[32,0],[252,2],[32,1],[16, ...builtin('__Porffor_object_isObject')],[33,6],[183],[33,7],[32,6],[33,8],[2,124],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,7],[68,0,0,0,0,0,0,0,0],[97],[184],[11,"TYPESWITCH_end"],[252,3],[4,64],...internalThrow(scope, 'TypeError', `Target is a non-object`),[11],[32,4],[252,2],[32,5],[16, ...builtin('__Porffor_object_isObject')],[33,6],[183],[33,7],[32,6],[33,8],[2,124],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,7],[68,0,0,0,0,0,0,0,0],[97],[184],[11,"TYPESWITCH_end"],[252,3],[4,64],...internalThrow(scope, 'TypeError', `Descriptor is a non-object`),[11],[32,2],[32,3],[16, ...builtin('__ecma262_ToPropertyKey')],[33,10],[33,9],[32,4],[34,11],[33,14],...number(allocPage(scope, 'bytestring: __Object_defineProperty/#member_prop', 'i8') * pageSize, 124),[34,15],[252,3],[34,18],[65,12],[54,1,0],[32,18],[65,227,0],[58,0,4],[32,18],[65,239,0],[58,0,5],[32,18],[65,238,0],[58,0,6],[32,18],[65,230,0],[58,0,7],[32,18],[65,233,0],[58,0,8],[32,18],[65,231,0],[58,0,9],[32,18],[65,245,0],[58,0,10],[32,18],[65,242,0],[58,0,11],[32,18],[65,225,0],[58,0,12],[32,18],[65,226,0],[58,0,13],[32,18],[65,236,0],[58,0,14],[32,18],[65,229,0],[58,0,15],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,13],[33,12],[32,11],[33,14],[32,15],[252,3],[34,18],[65,10],[54,1,0],[32,18],[65,229,0],[58,0,4],[32,18],[65,238,0],[58,0,5],[32,18],[65,245,0],[58,0,6],[32,18],[65,237,0],[58,0,7],[32,18],[65,229,0],[58,0,8],[32,18],[65,242,0],[58,0,9],[32,18],[65,225,0],[58,0,10],[32,18],[65,226,0],[58,0,11],[32,18],[65,236,0],[58,0,12],[32,18],[65,229,0],[58,0,13],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,20],[33,19],[32,11],[33,14],[32,15],[252,3],[34,18],[65,5],[54,1,0],[32,18],[65,246,0],[58,0,4],[32,18],[65,225,0],[58,0,5],[32,18],[65,236,0],[58,0,6],[32,18],[65,245,0],[58,0,7],[32,18],[65,229,0],[58,0,8],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,22],[33,21],[32,11],[33,14],[32,15],[252,3],[34,18],[65,8],[54,1,0],[32,18],[65,247,0],[58,0,4],[32,18],[65,242,0],[58,0,5],[32,18],[65,233,0],[58,0,6],[32,18],[65,244,0],[58,0,7],[32,18],[65,225,0],[58,0,8],[32,18],[65,226,0],[58,0,9],[32,18],[65,236,0],[58,0,10],[32,18],[65,229,0],[58,0,11],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,24],[33,23],[32,11],[33,14],[32,15],[252,3],[34,18],[65,3],[54,1,0],[32,18],[65,231,0],[58,0,4],[32,18],[65,229,0],[58,0,5],[32,18],[65,244,0],[58,0,6],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,26],[33,25],[32,11],[33,14],[32,15],[252,3],[34,18],[65,3],[54,1,0],[32,18],[65,243,0],[58,0,4],[32,18],[65,229,0],[58,0,5],[32,18],[65,244,0],[58,0,6],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,28],[33,27],[68,0,0,0,0,0,0,0,0],[33,29],[32,25],[68,0,0,0,0,0,0,0,0],[98],[32,26],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[69],[4,127],[32,27],[68,0,0,0,0,0,0,0,0],[98],[32,28],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],[32,25],[68,0,0,0,0,0,0,0,0],[98],[32,26],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[4,127],[32,25],[32,26],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,24,64],[98],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Getter must be a function`),[11],[32,27],[68,0,0,0,0,0,0,0,0],[98],[32,28],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[4,127],[32,27],[32,28],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,24,64],[98],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Setter must be a function`),[11],[32,21],[68,0,0,0,0,0,0,0,0],[98],[32,22],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[69],[4,127],[32,23],[68,0,0,0,0,0,0,0,0],[98],[32,24],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Descriptor cannot define both accessor and data descriptor attributes`),[11],[68,0,0,0,0,0,0,240,63],[33,29],[11],[68,0,0,0,0,0,0,0,0],[33,31],[32,29],[252,3],[4,64],[32,31],[68,0,0,0,0,0,0,240,63],[16, ...builtin('f64_|')],[33,31],[11],[32,12],[33,7],[32,13],[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],[32,31],[68,0,0,0,0,0,0,0,64],[16, ...builtin('f64_|')],[33,31],[11],[32,19],[33,7],[32,20],[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],[32,31],[68,0,0,0,0,0,0,16,64],[16, ...builtin('f64_|')],[33,31],[11],[32,23],[33,7],[32,24],[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],[32,31],[68,0,0,0,0,0,0,32,64],[16, ...builtin('f64_|')],[33,31],[11],[32,0],[252,2],[32,1],[32,9],[252,2],[32,10],[32,21],[32,22],[32,31],[252,2],[65,1],[16, ...builtin('__Porffor_object_define')],[33,6],[183],[26],[32,0],[32,1],[15]],
1746
+ wasm: (scope, {allocPage,builtin,internalThrow}) => [[32,0],[252,2],[32,1],[16, ...builtin('__Porffor_object_isObject')],[33,6],[183],[33,7],[32,6],[33,8],[2,124],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,7],[68,0,0,0,0,0,0,0,0],[97],[184],[11,"TYPESWITCH_end"],[252,3],[4,64],...internalThrow(scope, 'TypeError', `Target is a non-object`),[11],[32,4],[252,2],[32,5],[16, ...builtin('__Porffor_object_isObject')],[33,6],[183],[33,7],[32,6],[33,8],[2,124],[32,8],[65,195,0],[70],[4,64,"TYPESWITCH|String"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,8],[65,195,1],[70],[4,64,"TYPESWITCH|ByteString"],[32,7],[252,3],[40,1,0],[69],[184],[12,1],[11],[32,7],[68,0,0,0,0,0,0,0,0],[97],[184],[11,"TYPESWITCH_end"],[252,3],[4,64],...internalThrow(scope, 'TypeError', `Descriptor is a non-object`),[11],[32,2],[32,3],[16, ...builtin('__ecma262_ToPropertyKey')],[33,10],[33,9],[32,4],[34,11],[33,14],...number(allocPage(scope, 'bytestring: __Object_defineProperty/#member_prop', 'i8') * pageSize, 124),[34,15],[252,3],[34,18],[65,12],[54,1,0],[32,18],[65,227,0],[58,0,4],[32,18],[65,239,0],[58,0,5],[32,18],[65,238,0],[58,0,6],[32,18],[65,230,0],[58,0,7],[32,18],[65,233,0],[58,0,8],[32,18],[65,231,0],[58,0,9],[32,18],[65,245,0],[58,0,10],[32,18],[65,242,0],[58,0,11],[32,18],[65,225,0],[58,0,12],[32,18],[65,226,0],[58,0,13],[32,18],[65,236,0],[58,0,14],[32,18],[65,229,0],[58,0,15],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,13],[33,12],[32,11],[33,14],[32,15],[252,3],[34,18],[65,10],[54,1,0],[32,18],[65,229,0],[58,0,4],[32,18],[65,238,0],[58,0,5],[32,18],[65,245,0],[58,0,6],[32,18],[65,237,0],[58,0,7],[32,18],[65,229,0],[58,0,8],[32,18],[65,242,0],[58,0,9],[32,18],[65,225,0],[58,0,10],[32,18],[65,226,0],[58,0,11],[32,18],[65,236,0],[58,0,12],[32,18],[65,229,0],[58,0,13],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,20],[33,19],[32,11],[33,14],[32,15],[252,3],[34,18],[65,5],[54,1,0],[32,18],[65,246,0],[58,0,4],[32,18],[65,225,0],[58,0,5],[32,18],[65,236,0],[58,0,6],[32,18],[65,245,0],[58,0,7],[32,18],[65,229,0],[58,0,8],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,22],[33,21],[32,11],[33,14],[32,15],[252,3],[34,18],[65,8],[54,1,0],[32,18],[65,247,0],[58,0,4],[32,18],[65,242,0],[58,0,5],[32,18],[65,233,0],[58,0,6],[32,18],[65,244,0],[58,0,7],[32,18],[65,225,0],[58,0,8],[32,18],[65,226,0],[58,0,9],[32,18],[65,236,0],[58,0,10],[32,18],[65,229,0],[58,0,11],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,24],[33,23],[32,11],[33,14],[32,15],[252,3],[34,18],[65,3],[54,1,0],[32,18],[65,231,0],[58,0,4],[32,18],[65,229,0],[58,0,5],[32,18],[65,244,0],[58,0,6],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,26],[33,25],[32,11],[33,14],[32,15],[252,3],[34,18],[65,3],[54,1,0],[32,18],[65,243,0],[58,0,4],[32,18],[65,229,0],[58,0,5],[32,18],[65,244,0],[58,0,6],[32,18],[184],[33,15],[32,14],[252,3],[65,7],[32,15],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,17],[252,3],[32,17],[16, ...builtin('__Porffor_object_get')],[33,28],[33,27],[68,0,0,0,0,0,0,0,0],[33,29],[32,25],[68,0,0,0,0,0,0,0,0],[98],[32,26],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[69],[4,127],[32,27],[68,0,0,0,0,0,0,0,0],[98],[32,28],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],[32,25],[68,0,0,0,0,0,0,0,0],[98],[32,26],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[4,127],[32,25],[32,26],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,24,64],[98],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Getter must be a function`),[11],[32,27],[68,0,0,0,0,0,0,0,0],[98],[32,28],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[4,127],[32,27],[32,28],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,24,64],[98],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Setter must be a function`),[11],[32,21],[68,0,0,0,0,0,0,0,0],[98],[32,22],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[34,30],[69],[4,127],[32,23],[68,0,0,0,0,0,0,0,0],[98],[32,24],[65,128,1],[114],[65,128,1],[65,128,1],[114],[71],[114],[65,2],[33,6],[5],[32,30],[65,2],[33,6],[11],[4,64],...internalThrow(scope, 'TypeError', `Descriptor cannot define both accessor and data descriptor attributes`),[11],[68,0,0,0,0,0,0,240,63],[33,29],[32,25],[252,2],[32,26],[32,27],[252,2],[32,28],[16, ...builtin('__Porffor_object_packAccessor')],[33,22],[33,21],[11],[68,0,0,0,0,0,0,0,0],[33,31],[32,29],[252,3],[4,64],[32,31],[68,0,0,0,0,0,0,240,63],[16, ...builtin('f64_|')],[33,31],[11],[32,12],[33,7],[32,13],[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],[32,31],[68,0,0,0,0,0,0,0,64],[16, ...builtin('f64_|')],[33,31],[11],[32,19],[33,7],[32,20],[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],[32,31],[68,0,0,0,0,0,0,16,64],[16, ...builtin('f64_|')],[33,31],[11],[32,23],[33,7],[32,24],[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],[32,31],[68,0,0,0,0,0,0,32,64],[16, ...builtin('f64_|')],[33,31],[11],[32,0],[252,2],[32,1],[32,9],[252,2],[32,10],[32,21],[32,22],[32,31],[252,2],[65,1],[16, ...builtin('__Porffor_object_define')],[33,6],[183],[26],[32,0],[32,1],[15]],
1729
1747
  params: [124,127,124,127,124,127], typedParams: 1,
1730
1748
  returns: [124,127], typedReturns: 1,
1731
1749
  locals: [127,124,127,124,127,124,124,127,124,124,127,127,127,124,127,124,127,124,127,124,127,124,127,124,127,124], localNames: ["target","target#type","prop","prop#type","descriptor","descriptor#type","#last_type","#logicinner_tmp","#typeswitch_tmp","p","p#type","desc","configurable","configurable#type","#member_obj","#member_prop","#loadArray_offset","#swap","#makearray_pointer_tmp","enumerable","enumerable#type","value","value#type","writable","writable#type","get","get#type","set","set#type","accessor","logictmpi","flags"],
@@ -1791,7 +1809,7 @@ export const BuiltinFuncs = function() {
1791
1809
  locals: [127,124,127], localNames: ["obj","obj#type","#last_type","#logicinner_tmp","#typeswitch_tmp"],
1792
1810
  };
1793
1811
  this.__Object_getOwnPropertyDescriptor = {
1794
- wasm: (scope, {builtin}) => [[32,0],[32,1],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,28,64],[98],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[32,2],[32,3],[16, ...builtin('__ecma262_ToPropertyKey')],[33,5],[33,4],[32,0],[252,2],[32,1],[32,4],[252,2],[32,5],[16, ...builtin('__Porffor_object_lookup')],[33,6],[183],[34,7],[68,0,0,0,0,0,0,240,191],[97],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[16, ...builtin('__Porffor_allocate')],[184],[33,8],[32,7],[252,2],[47,0,12],[183],[33,9],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,12],[54,1,0],[32,14],[65,227,0],[58,0,4],[32,14],[65,239,0],[58,0,5],[32,14],[65,238,0],[58,0,6],[32,14],[65,230,0],[58,0,7],[32,14],[65,233,0],[58,0,8],[32,14],[65,231,0],[58,0,9],[32,14],[65,245,0],[58,0,10],[32,14],[65,242,0],[58,0,11],[32,14],[65,225,0],[58,0,12],[32,14],[65,226,0],[58,0,13],[32,14],[65,236,0],[58,0,14],[32,14],[65,229,0],[58,0,15],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,0,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,10],[54,1,0],[32,14],[65,229,0],[58,0,4],[32,14],[65,238,0],[58,0,5],[32,14],[65,245,0],[58,0,6],[32,14],[65,237,0],[58,0,7],[32,14],[65,229,0],[58,0,8],[32,14],[65,242,0],[58,0,9],[32,14],[65,225,0],[58,0,10],[32,14],[65,226,0],[58,0,11],[32,14],[65,236,0],[58,0,12],[32,14],[65,229,0],[58,0,13],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,16,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,9],[68,0,0,0,0,0,0,240,63],[16, ...builtin('f64_&')],[252,3],[4,64],[32,8],[65,7],[15],[11],[32,7],[252,2],[43,0,4],[33,16],[65,1],[33,17],[32,9],[252,3],[65,8],[118],[33,17],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,8],[54,1,0],[32,14],[65,247,0],[58,0,4],[32,14],[65,242,0],[58,0,5],[32,14],[65,233,0],[58,0,6],[32,14],[65,244,0],[58,0,7],[32,14],[65,225,0],[58,0,8],[32,14],[65,226,0],[58,0,9],[32,14],[65,236,0],[58,0,10],[32,14],[65,229,0],[58,0,11],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,32,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,5],[54,1,0],[32,14],[65,246,0],[58,0,4],[32,14],[65,225,0],[58,0,5],[32,14],[65,236,0],[58,0,6],[32,14],[65,245,0],[58,0,7],[32,14],[65,229,0],[58,0,8],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,16],[32,17],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[65,7],[15]],
1812
+ wasm: (scope, {builtin}) => [[32,0],[32,1],[16, ...builtin('__Porffor_rawType')],[68,0,0,0,0,0,0,28,64],[98],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[32,2],[32,3],[16, ...builtin('__ecma262_ToPropertyKey')],[33,5],[33,4],[32,0],[252,2],[32,1],[32,4],[252,2],[32,5],[16, ...builtin('__Porffor_object_lookup')],[33,6],[183],[34,7],[68,0,0,0,0,0,0,240,191],[97],[4,64],[68,0,0,0,0,0,0,0,0],[65,128,1],[15],[11],[16, ...builtin('__Porffor_allocate')],[184],[33,8],[32,7],[252,2],[47,0,12],[183],[33,9],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,12],[54,1,0],[32,14],[65,227,0],[58,0,4],[32,14],[65,239,0],[58,0,5],[32,14],[65,238,0],[58,0,6],[32,14],[65,230,0],[58,0,7],[32,14],[65,233,0],[58,0,8],[32,14],[65,231,0],[58,0,9],[32,14],[65,245,0],[58,0,10],[32,14],[65,242,0],[58,0,11],[32,14],[65,225,0],[58,0,12],[32,14],[65,226,0],[58,0,13],[32,14],[65,236,0],[58,0,14],[32,14],[65,229,0],[58,0,15],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,0,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,10],[54,1,0],[32,14],[65,229,0],[58,0,4],[32,14],[65,238,0],[58,0,5],[32,14],[65,245,0],[58,0,6],[32,14],[65,237,0],[58,0,7],[32,14],[65,229,0],[58,0,8],[32,14],[65,242,0],[58,0,9],[32,14],[65,225,0],[58,0,10],[32,14],[65,226,0],[58,0,11],[32,14],[65,236,0],[58,0,12],[32,14],[65,229,0],[58,0,13],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,16,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,9],[68,0,0,0,0,0,0,240,63],[16, ...builtin('f64_&')],[252,3],[4,64],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,3],[54,1,0],[32,14],[65,231,0],[58,0,4],[32,14],[65,229,0],[58,0,5],[32,14],[65,244,0],[58,0,6],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,7],[252,2],[65,1],[16, ...builtin('__Porffor_object_accessorGet')],[33,6],[183],[32,6],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,3],[54,1,0],[32,14],[65,243,0],[58,0,4],[32,14],[65,229,0],[58,0,5],[32,14],[65,244,0],[58,0,6],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,7],[252,2],[65,1],[16, ...builtin('__Porffor_object_accessorSet')],[33,6],[183],[32,6],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[65,7],[15],[11],[32,7],[252,2],[43,0,4],[33,16],[65,1],[33,17],[32,9],[252,3],[65,8],[118],[33,17],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,8],[54,1,0],[32,14],[65,247,0],[58,0,4],[32,14],[65,242,0],[58,0,5],[32,14],[65,233,0],[58,0,6],[32,14],[65,244,0],[58,0,7],[32,14],[65,225,0],[58,0,8],[32,14],[65,226,0],[58,0,9],[32,14],[65,236,0],[58,0,10],[32,14],[65,229,0],[58,0,11],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,9],[68,0,0,0,0,0,0,32,64],[16, ...builtin('f64_&')],[252,2],[69],[69],[183],[65,2],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[33,12],[16, ...builtin('__Porffor_allocate')],[34,14],[65,5],[54,1,0],[32,14],[65,246,0],[58,0,4],[32,14],[65,225,0],[58,0,5],[32,14],[65,236,0],[58,0,6],[32,14],[65,245,0],[58,0,7],[32,14],[65,229,0],[58,0,8],[32,14],[184],[33,13],[32,12],[252,3],[65,7],[32,13],[65,195,1],[16, ...builtin('__ecma262_ToPropertyKey')],[33,15],[252,3],[32,15],[32,16],[32,17],[16, ...builtin('__Porffor_object_set')],[26],[26],[32,8],[65,7],[15]],
1795
1813
  params: [124,127,124,127], typedParams: 1,
1796
1814
  returns: [124,127], typedReturns: 1,
1797
1815
  locals: [124,127,127,124,124,124,124,127,124,124,127,127,124,127], localNames: ["obj","obj#type","prop","prop#type","p","p#type","#last_type","entryPtr","out","tail","#member_setter_val_tmp","#member_setter_ptr_tmp","#member_obj","#member_prop_assign","#makearray_pointer_tmp","#swap","value","value#type"],
@@ -43,7 +43,8 @@ const compile = async (file, _funcs) => {
43
43
 
44
44
  const returnOverrides = {
45
45
  __Porffor_object_get: [ Valtype.f64, Valtype.i32 ],
46
- __Porffor_object_set: [ Valtype.f64, Valtype.i32 ]
46
+ __Porffor_object_set: [ Valtype.f64, Valtype.i32 ],
47
+ __Porffor_object_packAccessor: [ Valtype.f64, Valtype.i32 ]
47
48
  };
48
49
 
49
50
  const paramOverrides = {
package/compiler/wrap.js CHANGED
@@ -73,12 +73,19 @@ const porfToJSValue = ({ memory, funcs, pages }, value, type) => {
73
73
 
74
74
  const flags = tail & 0xff;
75
75
 
76
+ let get, set;
77
+ if (flags & 0b0001) {
78
+ 0, [ get, set ] = read(Uint32Array, memory, value + offset + 4, 2);
79
+ }
80
+
76
81
  if (Prefs.d) {
77
82
  const readMem = (ptr, size) => [...read(Uint8Array, memory, ptr, size)].map(x => x.toString(16).padStart(2, '0')).join(' ');
78
83
 
79
84
  console.log(`\x1b[4m\x1b[1m${k}\x1b[0m \x1B[90m(${TYPE_NAMES[kType]}) | ${kValue} (${readMem(value + offset, 4)})\x1B[0m
80
85
  value: \x1B[92m${v}\x1B[0m \x1B[90m(${TYPE_NAMES[vType]}) | ${vValue} (${readMem(value + offset + 4, 8)})\x1B[0m
81
- flags: 0b\x1B[93m${flags.toString(2).padStart(4, '0')}\x1B[0m\x1B[90m ${readMem(value + offset + 12, 2)}
86
+ ${flags & 0b0001 ? ` get func idx: ${get}
87
+ set func idx: ${set}
88
+ ` : ''} flags: 0b\x1B[93m${flags.toString(2).padStart(4, '0')}\x1B[0m\x1B[90m ${readMem(value + offset + 12, 2)}
82
89
  accessor: ${!!(flags & 0b0001)}
83
90
  configurable: ${!!(flags & 0b0010)}
84
91
  enumerable: ${!!(flags & 0b0100)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "porffor",
3
3
  "description": "a basic experimental wip aot optimizing js -> wasm engine/compiler/runtime in js",
4
- "version": "0.22.7+b8fea85a7",
4
+ "version": "0.22.8+ad11daa09",
5
5
  "author": "CanadaHonk",
6
6
  "license": "MIT",
7
7
  "scripts": {},
package/runner/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from 'node:fs';
3
- globalThis.version = '0.22.7+b8fea85a7';
3
+ globalThis.version = '0.22.8+ad11daa09';
4
4
 
5
5
  // deno compat
6
6
  if (typeof process === 'undefined' && typeof Deno !== 'undefined') {