@@ -40,27 +40,50 @@ export async function instantiate(module, imports = {}) {
4040 ( values [ ( values . SPI = exports [ "InputKind.SPI" ] . valueOf ( ) ) ] = "SPI" ) ,
4141 values
4242 ) ) ( { } ) ,
43- disassemble ( input , kind ) {
44- // assembly/index/disassemble(~lib/array/Array<u8>, i32) => ~lib/string/String
45- input = __lowerArray ( __setU8 , 4 , 0 , input ) || __notnull ( ) ;
46- return __liftString ( exports . disassemble ( input , kind ) >>> 0 ) ;
43+ HasMetadata : ( ( values ) =>
44+ (
45+ // assembly/index/HasMetadata
46+ ( values [ ( values . Yes = exports [ "HasMetadata.Yes" ] . valueOf ( ) ) ] = "Yes" ) ,
47+ ( values [ ( values . No = exports [ "HasMetadata.No" ] . valueOf ( ) ) ] = "No" ) ,
48+ values
49+ ) ) ( { } ) ,
50+ disassemble ( input , kind , withMetadata ) {
51+ // assembly/index/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
52+ input = __lowerArray ( __setU8 , 27 , 0 , input ) || __notnull ( ) ;
53+ return __liftString ( exports . disassemble ( input , kind , withMetadata ) >>> 0 ) ;
4754 } ,
48- runProgram ( input , kind ) {
49- // assembly/index/runProgram(~lib/array/Array<u8>, i32) => void
50- input = __lowerArray ( __setU8 , 4 , 0 , input ) || __notnull ( ) ;
51- exports . runProgram ( input , kind ) ;
55+ runProgram ( input , registers , kind ) {
56+ // assembly/index/runProgram(~lib/array/Array<u8>, ~lib/array/Array<u64>, i32) => assembly/api-generic/VmOutput
57+ input = __retain ( __lowerArray ( __setU8 , 27 , 0 , input ) || __notnull ( ) ) ;
58+ registers = __lowerArray ( __setU64 , 43 , 3 , registers ) || __notnull ( ) ;
59+ try {
60+ return __liftRecord44 ( exports . runProgram ( input , registers , kind ) >>> 0 ) ;
61+ } finally {
62+ __release ( input ) ;
63+ }
5264 } ,
53- runVm ( input , logs ) {
54- // assembly/api-generic/runVm(assembly/api-generic/VmInput, bool?) => assembly/api-generic/VmOutput
55- input = __lowerRecord39 ( input ) || __notnull ( ) ;
65+ runVm ( input , logs , useSbrkGas ) {
66+ // assembly/api-generic/runVm(assembly/api-generic/VmInput, bool?, bool? ) => assembly/api-generic/VmOutput
67+ input = __lowerRecord47 ( input ) || __notnull ( ) ;
5668 logs = logs ? 1 : 0 ;
69+ useSbrkGas = useSbrkGas ? 1 : 0 ;
5770 exports . __setArgumentsLength ( arguments . length ) ;
58- return __liftRecord44 ( exports . runVm ( input , logs ) >>> 0 ) ;
71+ return __liftRecord44 ( exports . runVm ( input , logs , useSbrkGas ) >>> 0 ) ;
72+ } ,
73+ getAssembly ( p ) {
74+ // assembly/api-generic/getAssembly(assembly/program/Program) => ~lib/string/String
75+ p = __lowerInternref ( p ) || __notnull ( ) ;
76+ return __liftString ( exports . getAssembly ( p ) >>> 0 ) ;
77+ } ,
78+ wrapAsProgram ( bytecode ) {
79+ // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
80+ bytecode = __lowerTypedArray ( Uint8Array , 5 , 0 , bytecode ) || __notnull ( ) ;
81+ return __liftTypedArray ( Uint8Array , exports . wrapAsProgram ( bytecode ) >>> 0 ) ;
5982 } ,
6083 resetGeneric ( program , flatRegisters , initialGas ) {
61- // assembly/api/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, u64 ) => void
62- program = __retain ( __lowerArray ( __setU8 , 4 , 0 , program ) || __notnull ( ) ) ;
63- flatRegisters = __lowerArray ( __setU8 , 4 , 0 , flatRegisters ) || __notnull ( ) ;
84+ // assembly/api/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, i64 ) => void
85+ program = __retain ( __lowerArray ( __setU8 , 27 , 0 , program ) || __notnull ( ) ) ;
86+ flatRegisters = __lowerArray ( __setU8 , 27 , 0 , flatRegisters ) || __notnull ( ) ;
6487 initialGas = initialGas || 0n ;
6588 try {
6689 exports . resetGeneric ( program , flatRegisters , initialGas ) ;
@@ -69,9 +92,9 @@ export async function instantiate(module, imports = {}) {
6992 }
7093 } ,
7194 resetGenericWithMemory ( program , flatRegisters , pageMap , chunks , initialGas ) {
72- // assembly/api/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, u64 ) => void
73- program = __retain ( __lowerArray ( __setU8 , 4 , 0 , program ) || __notnull ( ) ) ;
74- flatRegisters = __retain ( __lowerArray ( __setU8 , 4 , 0 , flatRegisters ) || __notnull ( ) ) ;
95+ // assembly/api/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, i64 ) => void
96+ program = __retain ( __lowerArray ( __setU8 , 27 , 0 , program ) || __notnull ( ) ) ;
97+ flatRegisters = __retain ( __lowerArray ( __setU8 , 27 , 0 , flatRegisters ) || __notnull ( ) ) ;
7598 pageMap = __retain ( __lowerTypedArray ( Uint8Array , 5 , 0 , pageMap ) || __notnull ( ) ) ;
7699 chunks = __lowerTypedArray ( Uint8Array , 5 , 0 , chunks ) || __notnull ( ) ;
77100 initialGas = initialGas || 0n ;
@@ -87,9 +110,9 @@ export async function instantiate(module, imports = {}) {
87110 // assembly/api/nextStep() => bool
88111 return exports . nextStep ( ) != 0 ;
89112 } ,
90- run ( steps ) {
91- // assembly/api/run (u32) => bool
92- return exports . run ( steps ) != 0 ;
113+ nSteps ( steps ) {
114+ // assembly/api/nSteps (u32) => bool
115+ return exports . nSteps ( steps ) != 0 ;
93116 } ,
94117 getProgramCounter ( ) {
95118 // assembly/api/getProgramCounter() => u32
@@ -110,7 +133,7 @@ export async function instantiate(module, imports = {}) {
110133 } ,
111134 setRegisters ( flatRegisters ) {
112135 // assembly/api/setRegisters(~lib/array/Array<u8>) => void
113- flatRegisters = __lowerArray ( __setU8 , 4 , 0 , flatRegisters ) || __notnull ( ) ;
136+ flatRegisters = __lowerArray ( __setU8 , 27 , 0 , flatRegisters ) || __notnull ( ) ;
114137 exports . setRegisters ( flatRegisters ) ;
115138 } ,
116139 getPageDump ( index ) {
@@ -125,43 +148,65 @@ export async function instantiate(module, imports = {}) {
125148 } ,
126149 exports ,
127150 ) ;
128- function __lowerRecord40 ( value ) {
151+ function __liftRecord45 ( pointer ) {
152+ // assembly/api-generic/InitialChunk
153+ // Hint: Opt-out from lifting as a record by providing an empty constructor
154+ if ( ! pointer ) return null ;
155+ return {
156+ address : __getU32 ( pointer + 0 ) ,
157+ data : __liftArray ( __getU8 , 0 , __getU32 ( pointer + 4 ) ) ,
158+ } ;
159+ }
160+ function __liftRecord44 ( pointer ) {
161+ // assembly/api-generic/VmOutput
162+ // Hint: Opt-out from lifting as a record by providing an empty constructor
163+ if ( ! pointer ) return null ;
164+ return {
165+ status : __getI32 ( pointer + 0 ) ,
166+ registers : __liftArray ( ( pointer ) => BigInt . asUintN ( 64 , __getU64 ( pointer ) ) , 3 , __getU32 ( pointer + 4 ) ) ,
167+ pc : __getU32 ( pointer + 8 ) ,
168+ memory : __liftArray ( ( pointer ) => __liftRecord45 ( __getU32 ( pointer ) ) , 2 , __getU32 ( pointer + 12 ) ) ,
169+ gas : __getI64 ( pointer + 16 ) ,
170+ exitCode : __getU32 ( pointer + 24 ) ,
171+ } ;
172+ }
173+ function __lowerRecord48 ( value ) {
129174 // assembly/api-generic/InitialPage
130175 // Hint: Opt-out from lowering as a record by providing an empty constructor
131176 if ( value == null ) return 0 ;
132- const pointer = exports . __pin ( exports . __new ( 12 , 40 ) ) ;
177+ const pointer = exports . __pin ( exports . __new ( 12 , 48 ) ) ;
133178 __setU32 ( pointer + 0 , value . address ) ;
134179 __setU32 ( pointer + 4 , value . length ) ;
135180 __setU32 ( pointer + 8 , value . access ) ;
136181 exports . __unpin ( pointer ) ;
137182 return pointer ;
138183 }
139- function __lowerRecord42 ( value ) {
184+ function __lowerRecord45 ( value ) {
140185 // assembly/api-generic/InitialChunk
141186 // Hint: Opt-out from lowering as a record by providing an empty constructor
142187 if ( value == null ) return 0 ;
143- const pointer = exports . __pin ( exports . __new ( 8 , 42 ) ) ;
188+ const pointer = exports . __pin ( exports . __new ( 8 , 45 ) ) ;
144189 __setU32 ( pointer + 0 , value . address ) ;
145- __setU32 ( pointer + 4 , __lowerArray ( __setU8 , 4 , 0 , value . data ) || __notnull ( ) ) ;
190+ __setU32 ( pointer + 4 , __lowerArray ( __setU8 , 27 , 0 , value . data ) || __notnull ( ) ) ;
146191 exports . __unpin ( pointer ) ;
147192 return pointer ;
148193 }
149- function __lowerRecord39 ( value ) {
194+ function __lowerRecord47 ( value ) {
150195 // assembly/api-generic/VmInput
151196 // Hint: Opt-out from lowering as a record by providing an empty constructor
152197 if ( value == null ) return 0 ;
153- const pointer = exports . __pin ( exports . __new ( 28 , 39 ) ) ;
154- __setU32 ( pointer + 0 , __lowerArray ( __setU32 , 38 , 2 , value . registers ) || __notnull ( ) ) ;
198+ const pointer = exports . __pin ( exports . __new ( 28 , 47 ) ) ;
199+ __setU32 ( pointer + 0 , __lowerArray ( __setU64 , 43 , 3 , value . registers ) || __notnull ( ) ) ;
155200 __setU32 ( pointer + 4 , value . pc ) ;
156201 __setU64 ( pointer + 8 , value . gas || 0n ) ;
157- __setU32 ( pointer + 16 , __lowerArray ( __setU8 , 4 , 0 , value . program ) || __notnull ( ) ) ;
202+ __setU32 ( pointer + 16 , __lowerArray ( __setU8 , 27 , 0 , value . program ) || __notnull ( ) ) ;
158203 __setU32 (
159204 pointer + 20 ,
160205 __lowerArray (
161206 ( pointer , value ) => {
162- __setU32 ( pointer , __lowerRecord40 ( value ) || __notnull ( ) ) ;
207+ __setU32 ( pointer , __lowerRecord48 ( value ) || __notnull ( ) ) ;
163208 } ,
164- 41 ,
209+ 49 ,
165210 2 ,
166211 value . pageMap ,
167212 ) || __notnull ( ) ,
@@ -170,37 +215,16 @@ export async function instantiate(module, imports = {}) {
170215 pointer + 24 ,
171216 __lowerArray (
172217 ( pointer , value ) => {
173- __setU32 ( pointer , __lowerRecord42 ( value ) || __notnull ( ) ) ;
218+ __setU32 ( pointer , __lowerRecord45 ( value ) || __notnull ( ) ) ;
174219 } ,
175- 43 ,
220+ 46 ,
176221 2 ,
177222 value . memory ,
178223 ) || __notnull ( ) ,
179224 ) ;
180225 exports . __unpin ( pointer ) ;
181226 return pointer ;
182227 }
183- function __liftRecord42 ( pointer ) {
184- // assembly/api-generic/InitialChunk
185- // Hint: Opt-out from lifting as a record by providing an empty constructor
186- if ( ! pointer ) return null ;
187- return {
188- address : __getU32 ( pointer + 0 ) ,
189- data : __liftArray ( __getU8 , 0 , __getU32 ( pointer + 4 ) ) ,
190- } ;
191- }
192- function __liftRecord44 ( pointer ) {
193- // assembly/api-generic/VmOutput
194- // Hint: Opt-out from lifting as a record by providing an empty constructor
195- if ( ! pointer ) return null ;
196- return {
197- status : __getI32 ( pointer + 0 ) ,
198- registers : __liftArray ( ( pointer ) => __getU32 ( pointer ) >>> 0 , 2 , __getU32 ( pointer + 4 ) ) ,
199- pc : __getU32 ( pointer + 8 ) ,
200- memory : __liftArray ( ( pointer ) => __liftRecord42 ( __getU32 ( pointer ) ) , 2 , __getU32 ( pointer + 12 ) ) ,
201- gas : __getI64 ( pointer + 16 ) ,
202- } ;
203- }
204228 function __liftString ( pointer ) {
205229 if ( ! pointer ) return null ;
206230 const end = ( pointer + new Uint32Array ( memory . buffer ) [ ( pointer - 4 ) >>> 2 ] ) >>> 1 ,
@@ -252,6 +276,12 @@ export async function instantiate(module, imports = {}) {
252276 exports . __unpin ( buffer ) ;
253277 return header ;
254278 }
279+ class Internref extends Number { }
280+ function __lowerInternref ( value ) {
281+ if ( value == null ) return 0 ;
282+ if ( value instanceof Internref ) return value . valueOf ( ) ;
283+ throw TypeError ( "internref expected" ) ;
284+ }
255285 const refcounts = new Map ( ) ;
256286 function __retain ( pointer ) {
257287 if ( pointer ) {
@@ -329,5 +359,44 @@ export async function instantiate(module, imports = {}) {
329359 return __dataview . getBigInt64 ( pointer , true ) ;
330360 }
331361 }
362+ function __getU64 ( pointer ) {
363+ try {
364+ return __dataview . getBigUint64 ( pointer , true ) ;
365+ } catch {
366+ __dataview = new DataView ( memory . buffer ) ;
367+ return __dataview . getBigUint64 ( pointer , true ) ;
368+ }
369+ }
332370 return adaptedExports ;
333371}
372+ // export const {
373+ // memory,
374+ // InputKind,
375+ // HasMetadata,
376+ // disassemble,
377+ // runProgram,
378+ // runVm,
379+ // getAssembly,
380+ // wrapAsProgram,
381+ // resetGeneric,
382+ // resetGenericWithMemory,
383+ // nextStep,
384+ // nSteps,
385+ // getProgramCounter,
386+ // setNextProgramCounter,
387+ // getStatus,
388+ // getExitArg,
389+ // getGasLeft,
390+ // setGasLeft,
391+ // getRegisters,
392+ // setRegisters,
393+ // getPageDump,
394+ // setMemory,
395+ // } = await (async url => instantiate(
396+ // await (async () => {
397+ // const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
398+ // if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
399+ // else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
400+ // })(), {
401+ // }
402+ // ))(new URL("release.wasm", import.meta.url));
0 commit comments