@fluffylabs/anan-as 1.1.5 → 1.1.6-8306b17
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/README.md +107 -12
- package/dist/bin/build-inline.js +70 -0
- package/dist/bin/index.js +293 -0
- package/dist/bin/src/fuzz.js +155 -0
- package/dist/bin/src/log-host-call.js +41 -0
- package/dist/bin/src/test-json.js +135 -0
- package/dist/bin/src/trace-parse.js +315 -0
- package/dist/bin/src/trace-replay.js +130 -0
- package/dist/bin/src/tracer.js +64 -0
- package/dist/bin/src/utils.js +25 -0
- package/dist/bin/test.js +1 -0
- package/dist/build/compiler-inline.d.ts +11 -0
- package/dist/build/compiler-inline.js +22 -0
- package/dist/build/compiler.d.ts +26 -0
- package/dist/build/compiler.js +76 -0
- package/dist/build/compiler.wasm +0 -0
- package/{build → dist/build}/debug-inline.d.ts +1 -1
- package/dist/build/debug-inline.js +22 -0
- package/{build → dist/build}/debug-raw-inline.d.ts +1 -1
- package/dist/build/debug-raw-inline.js +22 -0
- package/{build → dist/build}/debug-raw.d.ts +164 -37
- package/{build → dist/build}/debug-raw.js +143 -42
- package/dist/build/debug-raw.wasm +0 -0
- package/{build → dist/build}/debug.d.ts +164 -37
- package/{build → dist/build}/debug.js +156 -44
- package/dist/build/debug.wasm +0 -0
- package/{build → dist/build}/release-inline.d.ts +1 -1
- package/dist/build/release-inline.js +22 -0
- package/{build → dist/build}/release-mini-inline.d.ts +1 -1
- package/dist/build/release-mini-inline.js +22 -0
- package/{build → dist/build}/release-mini.d.ts +164 -37
- package/{build → dist/build}/release-mini.js +156 -44
- package/dist/build/release-mini.wasm +0 -0
- package/{build → dist/build}/release-stub-inline.d.ts +1 -1
- package/dist/build/release-stub-inline.js +22 -0
- package/{build → dist/build}/release-stub.d.ts +164 -37
- package/{build → dist/build}/release-stub.js +156 -44
- package/dist/build/release-stub.wasm +0 -0
- package/{build → dist/build}/release.d.ts +164 -37
- package/{build → dist/build}/release.js +156 -44
- package/dist/build/release.wasm +0 -0
- package/{build → dist/build}/test-inline.d.ts +1 -1
- package/dist/build/test-inline.js +22 -0
- package/dist/build/test.wasm +0 -0
- package/dist/test/test-as.js +3 -0
- package/dist/test/test-gas-cost.js +57 -0
- package/dist/test/test-trace-replay.js +19 -0
- package/dist/test/test-w3f.js +121 -0
- package/dist/web/bump-version.js +7 -0
- package/package.json +47 -36
- package/build/debug-inline.js +0 -22
- package/build/debug-raw-inline.js +0 -22
- package/build/debug-raw.wasm +0 -0
- package/build/debug.wasm +0 -0
- package/build/release-inline.js +0 -22
- package/build/release-mini-inline.js +0 -22
- package/build/release-mini.wasm +0 -0
- package/build/release-stub-inline.js +0 -22
- package/build/release-stub.wasm +0 -0
- package/build/release.wasm +0 -0
- package/build/test-inline.js +0 -22
- package/build/test.wasm +0 -0
- /package/{build → dist/build}/test.d.ts +0 -0
- /package/{build → dist/build}/test.js +0 -0
|
@@ -22,18 +22,8 @@ async function instantiate(module, imports = {}) {
|
|
|
22
22
|
const { exports } = await WebAssembly.instantiate(module, adaptedImports);
|
|
23
23
|
const memory = exports.memory || imports.env.memory;
|
|
24
24
|
const adaptedExports = Object.setPrototypeOf({
|
|
25
|
-
getAssembly(p) {
|
|
26
|
-
// assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
|
|
27
|
-
p = __lowerInternref(p) || __notnull();
|
|
28
|
-
return __liftString(exports.getAssembly(p) >>> 0);
|
|
29
|
-
},
|
|
30
|
-
wrapAsProgram(bytecode) {
|
|
31
|
-
// assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
|
|
32
|
-
bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
|
|
33
|
-
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
34
|
-
},
|
|
35
25
|
resetJAM(program, pc, initialGas, args, hasMetadata) {
|
|
36
|
-
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>,
|
|
26
|
+
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, i64, ~lib/array/Array<u8>, bool?) => void
|
|
37
27
|
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
38
28
|
initialGas = initialGas || 0n;
|
|
39
29
|
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
@@ -118,6 +108,54 @@ async function instantiate(module, imports = {}) {
|
|
|
118
108
|
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
119
109
|
return exports.setMemory(address, data) != 0;
|
|
120
110
|
},
|
|
111
|
+
getAssembly(p) {
|
|
112
|
+
// assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
|
|
113
|
+
p = __lowerInternref(p) || __notnull();
|
|
114
|
+
return __liftString(exports.getAssembly(p) >>> 0);
|
|
115
|
+
},
|
|
116
|
+
buildMemory(builder, pages, chunks) {
|
|
117
|
+
// assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
|
|
118
|
+
builder = __retain(__lowerInternref(builder) || __notnull());
|
|
119
|
+
pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
|
|
120
|
+
chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
|
|
121
|
+
try {
|
|
122
|
+
return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
|
|
123
|
+
} finally {
|
|
124
|
+
__release(builder);
|
|
125
|
+
__release(pages);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
vmInit(input, useSbrkGas) {
|
|
129
|
+
// assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
|
|
130
|
+
input = __lowerInternref(input) || __notnull();
|
|
131
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
132
|
+
exports.__setArgumentsLength(arguments.length);
|
|
133
|
+
return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
|
|
134
|
+
},
|
|
135
|
+
vmRunOnce(input, options) {
|
|
136
|
+
// assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, assembly/api-types/VmRunOptions) => assembly/api-types/VmOutput
|
|
137
|
+
input = __retain(__lowerInternref(input) || __notnull());
|
|
138
|
+
options = __lowerRecord50(options) || __notnull();
|
|
139
|
+
try {
|
|
140
|
+
return __liftRecord51(exports.vmRunOnce(input, options) >>> 0);
|
|
141
|
+
} finally {
|
|
142
|
+
__release(input);
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
vmExecute(int, logs) {
|
|
146
|
+
// assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
|
|
147
|
+
int = __lowerInternref(int) || __notnull();
|
|
148
|
+
logs = logs ? 1 : 0;
|
|
149
|
+
exports.__setArgumentsLength(arguments.length);
|
|
150
|
+
exports.vmExecute(int, logs);
|
|
151
|
+
},
|
|
152
|
+
vmDestroy(int, dumpMemory) {
|
|
153
|
+
// assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
|
|
154
|
+
int = __lowerInternref(int) || __notnull();
|
|
155
|
+
dumpMemory = dumpMemory ? 1 : 0;
|
|
156
|
+
exports.__setArgumentsLength(arguments.length);
|
|
157
|
+
return __liftRecord51(exports.vmDestroy(int, dumpMemory) >>> 0);
|
|
158
|
+
},
|
|
121
159
|
InputKind: (values => (
|
|
122
160
|
// assembly/api-utils/InputKind
|
|
123
161
|
values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
|
|
@@ -133,22 +171,22 @@ async function instantiate(module, imports = {}) {
|
|
|
133
171
|
getGasCosts(input, kind, withMetadata) {
|
|
134
172
|
// assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
|
|
135
173
|
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
136
|
-
return __liftArray(pointer =>
|
|
174
|
+
return __liftArray(pointer => __liftRecord56(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
|
|
137
175
|
},
|
|
138
176
|
disassemble(input, kind, withMetadata) {
|
|
139
177
|
// assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
|
|
140
178
|
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
141
179
|
return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
|
|
142
180
|
},
|
|
143
|
-
prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) {
|
|
144
|
-
// assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-
|
|
181
|
+
prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
|
|
182
|
+
// assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>, ~lib/array/Array<u8>, u32) => assembly/spi/StandardProgram
|
|
145
183
|
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
146
184
|
initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
|
|
147
|
-
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
148
|
-
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
185
|
+
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
|
|
186
|
+
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
|
|
149
187
|
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
150
188
|
try {
|
|
151
|
-
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
|
|
189
|
+
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
|
|
152
190
|
} finally {
|
|
153
191
|
__release(program);
|
|
154
192
|
__release(initialRegisters);
|
|
@@ -156,48 +194,88 @@ async function instantiate(module, imports = {}) {
|
|
|
156
194
|
__release(initialMemory);
|
|
157
195
|
}
|
|
158
196
|
},
|
|
159
|
-
runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
|
|
160
|
-
// assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-
|
|
197
|
+
runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) {
|
|
198
|
+
// assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?, bool?) => assembly/api-types/VmOutput
|
|
161
199
|
program = __lowerInternref(program) || __notnull();
|
|
162
200
|
initialGas = initialGas || 0n;
|
|
163
201
|
logs = logs ? 1 : 0;
|
|
164
202
|
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
203
|
+
dumpMemory = dumpMemory ? 1 : 0;
|
|
204
|
+
exports.__setArgumentsLength(arguments.length);
|
|
205
|
+
return __liftRecord51(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
|
|
206
|
+
},
|
|
207
|
+
pvmStart(program, useSbrkGas) {
|
|
208
|
+
// assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
|
|
209
|
+
program = __lowerInternref(program) || __notnull();
|
|
210
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
211
|
+
exports.__setArgumentsLength(arguments.length);
|
|
212
|
+
return exports.pvmStart(program, useSbrkGas) >>> 0;
|
|
213
|
+
},
|
|
214
|
+
pvmDestroy(pvmId) {
|
|
215
|
+
// assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
|
|
216
|
+
return __liftRecord51(exports.pvmDestroy(pvmId) >>> 0);
|
|
217
|
+
},
|
|
218
|
+
pvmSetRegisters(pvmId, registers) {
|
|
219
|
+
// assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
|
|
220
|
+
registers = __lowerArray(__setU64, 52, 3, registers) || __notnull();
|
|
221
|
+
exports.pvmSetRegisters(pvmId, registers);
|
|
222
|
+
},
|
|
223
|
+
pvmReadMemory(pvmId, address, length) {
|
|
224
|
+
// assembly/api-utils/pvmReadMemory(u32, u32, u32) => ~lib/typedarray/Uint8Array | null
|
|
225
|
+
return __liftTypedArray(Uint8Array, exports.pvmReadMemory(pvmId, address, length) >>> 0);
|
|
226
|
+
},
|
|
227
|
+
pvmWriteMemory(pvmId, address, data) {
|
|
228
|
+
// assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
|
|
229
|
+
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
230
|
+
return exports.pvmWriteMemory(pvmId, address, data) != 0;
|
|
231
|
+
},
|
|
232
|
+
pvmResume(pvmId, gas, pc, logs) {
|
|
233
|
+
// assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
|
|
234
|
+
gas = gas || 0n;
|
|
235
|
+
logs = logs ? 1 : 0;
|
|
165
236
|
exports.__setArgumentsLength(arguments.length);
|
|
166
|
-
return
|
|
237
|
+
return __liftRecord60(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
|
|
238
|
+
},
|
|
239
|
+
wrapAsProgram(bytecode) {
|
|
240
|
+
// assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
|
|
241
|
+
bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
|
|
242
|
+
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
167
243
|
},
|
|
168
244
|
}, exports);
|
|
169
|
-
function
|
|
170
|
-
// assembly/
|
|
171
|
-
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
172
|
-
if (!pointer) return null;
|
|
173
|
-
return {
|
|
174
|
-
pc: __getU32(pointer + 0),
|
|
175
|
-
gas: __getU64(pointer + 8),
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
function __lowerRecord46(value) {
|
|
179
|
-
// assembly/api-internal/InitialPage
|
|
245
|
+
function __lowerRecord44(value) {
|
|
246
|
+
// assembly/api-types/InitialPage
|
|
180
247
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
181
248
|
if (value == null) return 0;
|
|
182
|
-
const pointer = exports.__pin(exports.__new(12,
|
|
249
|
+
const pointer = exports.__pin(exports.__new(12, 44));
|
|
183
250
|
__setU32(pointer + 0, value.address);
|
|
184
251
|
__setU32(pointer + 4, value.length);
|
|
185
252
|
__setU32(pointer + 8, value.access);
|
|
186
253
|
exports.__unpin(pointer);
|
|
187
254
|
return pointer;
|
|
188
255
|
}
|
|
189
|
-
function
|
|
190
|
-
// assembly/api-
|
|
256
|
+
function __lowerRecord46(value) {
|
|
257
|
+
// assembly/api-types/InitialChunk
|
|
191
258
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
192
259
|
if (value == null) return 0;
|
|
193
|
-
const pointer = exports.__pin(exports.__new(8,
|
|
260
|
+
const pointer = exports.__pin(exports.__new(8, 46));
|
|
194
261
|
__setU32(pointer + 0, value.address);
|
|
195
262
|
__setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
|
|
196
263
|
exports.__unpin(pointer);
|
|
197
264
|
return pointer;
|
|
198
265
|
}
|
|
199
|
-
function
|
|
200
|
-
// assembly/api-
|
|
266
|
+
function __lowerRecord50(value) {
|
|
267
|
+
// assembly/api-types/VmRunOptions
|
|
268
|
+
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
269
|
+
if (value == null) return 0;
|
|
270
|
+
const pointer = exports.__pin(exports.__new(3, 50));
|
|
271
|
+
__setU8(pointer + 0, value.useSbrkGas ? 1 : 0);
|
|
272
|
+
__setU8(pointer + 1, value.logs ? 1 : 0);
|
|
273
|
+
__setU8(pointer + 2, value.dumpMemory ? 1 : 0);
|
|
274
|
+
exports.__unpin(pointer);
|
|
275
|
+
return pointer;
|
|
276
|
+
}
|
|
277
|
+
function __liftRecord46(pointer) {
|
|
278
|
+
// assembly/api-types/InitialChunk
|
|
201
279
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
202
280
|
if (!pointer) return null;
|
|
203
281
|
return {
|
|
@@ -205,17 +283,40 @@ async function instantiate(module, imports = {}) {
|
|
|
205
283
|
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
206
284
|
};
|
|
207
285
|
}
|
|
208
|
-
function
|
|
209
|
-
// assembly/api-
|
|
286
|
+
function __liftRecord51(pointer) {
|
|
287
|
+
// assembly/api-types/VmOutput
|
|
210
288
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
211
289
|
if (!pointer) return null;
|
|
212
290
|
return {
|
|
213
291
|
status: __getI32(pointer + 0),
|
|
214
|
-
|
|
292
|
+
exitCode: __getU32(pointer + 4),
|
|
215
293
|
pc: __getU32(pointer + 8),
|
|
216
|
-
memory: __liftArray(pointer => __liftRecord48(__getU32(pointer)), 2, __getU32(pointer + 12)),
|
|
217
294
|
gas: __getI64(pointer + 16),
|
|
218
|
-
|
|
295
|
+
result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
|
|
296
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
|
|
297
|
+
memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
function __liftRecord56(pointer) {
|
|
301
|
+
// assembly/gas-costs/BlockGasCost
|
|
302
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
303
|
+
if (!pointer) return null;
|
|
304
|
+
return {
|
|
305
|
+
pc: __getU32(pointer + 0),
|
|
306
|
+
gas: __getU64(pointer + 8),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
function __liftRecord60(pointer) {
|
|
310
|
+
// assembly/api-types/VmPause
|
|
311
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
312
|
+
if (!pointer) return null;
|
|
313
|
+
return {
|
|
314
|
+
status: __getI32(pointer + 0),
|
|
315
|
+
exitCode: __getU32(pointer + 4),
|
|
316
|
+
pc: __getU32(pointer + 8),
|
|
317
|
+
nextPc: __getU32(pointer + 12),
|
|
318
|
+
gas: __getI64(pointer + 16),
|
|
319
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
|
|
219
320
|
};
|
|
220
321
|
}
|
|
221
322
|
function __liftString(pointer) {
|
|
@@ -376,8 +477,6 @@ async function instantiate(module, imports = {}) {
|
|
|
376
477
|
}
|
|
377
478
|
export const {
|
|
378
479
|
memory,
|
|
379
|
-
getAssembly,
|
|
380
|
-
wrapAsProgram,
|
|
381
480
|
resetJAM,
|
|
382
481
|
resetGeneric,
|
|
383
482
|
resetGenericWithMemory,
|
|
@@ -394,12 +493,25 @@ export const {
|
|
|
394
493
|
getPageDump,
|
|
395
494
|
getMemory,
|
|
396
495
|
setMemory,
|
|
496
|
+
getAssembly,
|
|
497
|
+
buildMemory,
|
|
498
|
+
vmInit,
|
|
499
|
+
vmRunOnce,
|
|
500
|
+
vmExecute,
|
|
501
|
+
vmDestroy,
|
|
397
502
|
InputKind,
|
|
398
503
|
HasMetadata,
|
|
399
504
|
getGasCosts,
|
|
400
505
|
disassemble,
|
|
401
506
|
prepareProgram,
|
|
402
507
|
runProgram,
|
|
508
|
+
pvmStart,
|
|
509
|
+
pvmDestroy,
|
|
510
|
+
pvmSetRegisters,
|
|
511
|
+
pvmReadMemory,
|
|
512
|
+
pvmWriteMemory,
|
|
513
|
+
pvmResume,
|
|
514
|
+
wrapAsProgram,
|
|
403
515
|
} = await (async url => instantiate(
|
|
404
516
|
await (async () => {
|
|
405
517
|
const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
|
|
Binary file
|