porffor 0.18.23 → 0.18.24

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
@@ -56,6 +56,7 @@ registerInternalType('Set', ['iterable']);
56
56
 
57
57
  registerInternalType('ArrayBuffer');
58
58
  registerInternalType('SharedArrayBuffer');
59
+ registerInternalType('DataView');
59
60
  registerInternalType('Uint8Array', ['iterable', 'length']);
60
61
  registerInternalType('Int8Array', ['iterable', 'length']);
61
62
  registerInternalType('Uint8ClampedArray', ['iterable', 'length']);
package/compiler/wrap.js CHANGED
@@ -134,6 +134,14 @@ const porfToJSValue = ({ memory, funcs, pages }, value, type) => {
134
134
  return buf;
135
135
  }
136
136
 
137
+ case TYPES.dataview: {
138
+ const [ length, ptr, byteOffset ] = (new Uint32Array(memory.buffer.slice(value, value + 12), 0, 3));
139
+ const bufferPtr = ptr - byteOffset;
140
+ const bufferLen = (new Uint32Array(memory.buffer.slice(bufferPtr, bufferPtr + 4), 0, 1))[0];
141
+ const buffer = memory.buffer.slice(bufferPtr + 4, bufferPtr + 4 + bufferLen);
142
+ return new DataView(buffer, byteOffset, length);
143
+ }
144
+
137
145
  case TYPES.uint8array:
138
146
  case TYPES.int8array:
139
147
  case TYPES.uint8clampedarray:
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.23+8066aaac0",
4
+ "version": "0.18.24+417eeea99",
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.23+8066aaac0';
3
+ globalThis.version = '0.18.24+417eeea99';
4
4
 
5
5
  // deno compat
6
6
  if (typeof process === 'undefined' && typeof Deno !== 'undefined') {