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.
- package/compiler/assemble.js +2 -0
- package/compiler/builtins/_internal_object.ts +36 -5
- package/compiler/builtins/object.ts +3 -1
- package/compiler/generated_builtins.js +24 -6
- package/compiler/precompile.js +2 -1
- package/compiler/wrap.js +8 -1
- package/package.json +1 -1
- package/runner/index.js +1 -1
package/compiler/assemble.js
CHANGED
@@ -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
|
-
|
124
|
-
|
150
|
+
const get: Function = __Porffor_object_accessorGet(entryPtr);
|
125
151
|
Porffor.wasm`
|
126
|
-
|
127
|
-
|
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
|
-
|
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
|
-
|
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],[
|
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"],
|
package/compiler/precompile.js
CHANGED
@@ -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
|
-
|
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