porffor 0.18.20 → 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/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, 1))[0];
128
- return new globalThis[TYPE_NAMES[type]](memory.buffer, value + 4, length);
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
@@ -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.18.20+490d49194",
4
+ "version": "0.18.21+9f5e4a85d",
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.18.20+490d49194';
3
+ globalThis.version = '0.18.21+9f5e4a85d';
4
4
 
5
5
  // deno compat
6
6
  if (typeof process === 'undefined' && typeof Deno !== 'undefined') {