porffor 0.18.19 → 0.18.21
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/builtins/array.ts +39 -27
- package/compiler/builtins/typedarray.js +50 -14
- package/compiler/builtins/typedarray.ts +19 -0
- package/compiler/builtins.js +12 -5
- package/compiler/codegen.js +7 -2
- package/compiler/generated_builtins.js +505 -378
- package/compiler/types.js +1 -0
- package/compiler/wrap.js +7 -2
- package/package.json +1 -1
- package/runner/index.js +1 -1
package/compiler/types.js
CHANGED
@@ -54,6 +54,7 @@ registerInternalType('ByteString', ['iterable', 'length'], TYPES.string | TYPE_F
|
|
54
54
|
registerInternalType('Date');
|
55
55
|
registerInternalType('Set', ['iterable']);
|
56
56
|
|
57
|
+
registerInternalType('ArrayBuffer');
|
57
58
|
registerInternalType('Uint8Array', ['iterable', 'length']);
|
58
59
|
registerInternalType('Int8Array', ['iterable', 'length']);
|
59
60
|
registerInternalType('Uint8ClampedArray', ['iterable', 'length']);
|
package/compiler/wrap.js
CHANGED
@@ -115,6 +115,11 @@ const porfToJSValue = ({ memory, funcs, pages }, value, type) => {
|
|
115
115
|
return Symbol(desc);
|
116
116
|
}
|
117
117
|
|
118
|
+
case TYPES.arraybuffer: {
|
119
|
+
const length = (new Int32Array(memory.buffer.slice(value, value + 4), 0, 1))[0];
|
120
|
+
return memory.buffer.slice(value + 4, value + 4 + length);
|
121
|
+
}
|
122
|
+
|
118
123
|
case TYPES.uint8array:
|
119
124
|
case TYPES.int8array:
|
120
125
|
case TYPES.uint8clampedarray:
|
@@ -124,8 +129,8 @@ const porfToJSValue = ({ memory, funcs, pages }, value, type) => {
|
|
124
129
|
case TYPES.int32array:
|
125
130
|
case TYPES.float32array:
|
126
131
|
case TYPES.float64array: {
|
127
|
-
const length = (new Int32Array(memory.buffer, value,
|
128
|
-
return new globalThis[TYPE_NAMES[type]](memory.buffer,
|
132
|
+
const [ length, ptr ] = (new Int32Array(memory.buffer.slice(value, value + 8), 0, 2));
|
133
|
+
return new globalThis[TYPE_NAMES[type]](memory.buffer, ptr + 4, length);
|
129
134
|
}
|
130
135
|
|
131
136
|
default: return value;
|
package/package.json
CHANGED