@@ -40,27 +40,50 @@ export async function instantiate(module, imports = {}) {
40
40
( values [ ( values . SPI = exports [ "InputKind.SPI" ] . valueOf ( ) ) ] = "SPI" ) ,
41
41
values
42
42
) ) ( { } ) ,
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 ) ;
47
54
} ,
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
+ }
52
64
} ,
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 ( ) ;
56
68
logs = logs ? 1 : 0 ;
69
+ useSbrkGas = useSbrkGas ? 1 : 0 ;
57
70
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 ) ;
59
82
} ,
60
83
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 ( ) ;
64
87
initialGas = initialGas || 0n ;
65
88
try {
66
89
exports . resetGeneric ( program , flatRegisters , initialGas ) ;
@@ -69,9 +92,9 @@ export async function instantiate(module, imports = {}) {
69
92
}
70
93
} ,
71
94
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 ( ) ) ;
75
98
pageMap = __retain ( __lowerTypedArray ( Uint8Array , 5 , 0 , pageMap ) || __notnull ( ) ) ;
76
99
chunks = __lowerTypedArray ( Uint8Array , 5 , 0 , chunks ) || __notnull ( ) ;
77
100
initialGas = initialGas || 0n ;
@@ -87,9 +110,9 @@ export async function instantiate(module, imports = {}) {
87
110
// assembly/api/nextStep() => bool
88
111
return exports . nextStep ( ) != 0 ;
89
112
} ,
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 ;
93
116
} ,
94
117
getProgramCounter ( ) {
95
118
// assembly/api/getProgramCounter() => u32
@@ -110,7 +133,7 @@ export async function instantiate(module, imports = {}) {
110
133
} ,
111
134
setRegisters ( flatRegisters ) {
112
135
// assembly/api/setRegisters(~lib/array/Array<u8>) => void
113
- flatRegisters = __lowerArray ( __setU8 , 4 , 0 , flatRegisters ) || __notnull ( ) ;
136
+ flatRegisters = __lowerArray ( __setU8 , 27 , 0 , flatRegisters ) || __notnull ( ) ;
114
137
exports . setRegisters ( flatRegisters ) ;
115
138
} ,
116
139
getPageDump ( index ) {
@@ -125,43 +148,65 @@ export async function instantiate(module, imports = {}) {
125
148
} ,
126
149
exports ,
127
150
) ;
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 ) {
129
174
// assembly/api-generic/InitialPage
130
175
// Hint: Opt-out from lowering as a record by providing an empty constructor
131
176
if ( value == null ) return 0 ;
132
- const pointer = exports . __pin ( exports . __new ( 12 , 40 ) ) ;
177
+ const pointer = exports . __pin ( exports . __new ( 12 , 48 ) ) ;
133
178
__setU32 ( pointer + 0 , value . address ) ;
134
179
__setU32 ( pointer + 4 , value . length ) ;
135
180
__setU32 ( pointer + 8 , value . access ) ;
136
181
exports . __unpin ( pointer ) ;
137
182
return pointer ;
138
183
}
139
- function __lowerRecord42 ( value ) {
184
+ function __lowerRecord45 ( value ) {
140
185
// assembly/api-generic/InitialChunk
141
186
// Hint: Opt-out from lowering as a record by providing an empty constructor
142
187
if ( value == null ) return 0 ;
143
- const pointer = exports . __pin ( exports . __new ( 8 , 42 ) ) ;
188
+ const pointer = exports . __pin ( exports . __new ( 8 , 45 ) ) ;
144
189
__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 ( ) ) ;
146
191
exports . __unpin ( pointer ) ;
147
192
return pointer ;
148
193
}
149
- function __lowerRecord39 ( value ) {
194
+ function __lowerRecord47 ( value ) {
150
195
// assembly/api-generic/VmInput
151
196
// Hint: Opt-out from lowering as a record by providing an empty constructor
152
197
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 ( ) ) ;
155
200
__setU32 ( pointer + 4 , value . pc ) ;
156
201
__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 ( ) ) ;
158
203
__setU32 (
159
204
pointer + 20 ,
160
205
__lowerArray (
161
206
( pointer , value ) => {
162
- __setU32 ( pointer , __lowerRecord40 ( value ) || __notnull ( ) ) ;
207
+ __setU32 ( pointer , __lowerRecord48 ( value ) || __notnull ( ) ) ;
163
208
} ,
164
- 41 ,
209
+ 49 ,
165
210
2 ,
166
211
value . pageMap ,
167
212
) || __notnull ( ) ,
@@ -170,37 +215,16 @@ export async function instantiate(module, imports = {}) {
170
215
pointer + 24 ,
171
216
__lowerArray (
172
217
( pointer , value ) => {
173
- __setU32 ( pointer , __lowerRecord42 ( value ) || __notnull ( ) ) ;
218
+ __setU32 ( pointer , __lowerRecord45 ( value ) || __notnull ( ) ) ;
174
219
} ,
175
- 43 ,
220
+ 46 ,
176
221
2 ,
177
222
value . memory ,
178
223
) || __notnull ( ) ,
179
224
) ;
180
225
exports . __unpin ( pointer ) ;
181
226
return pointer ;
182
227
}
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
- }
204
228
function __liftString ( pointer ) {
205
229
if ( ! pointer ) return null ;
206
230
const end = ( pointer + new Uint32Array ( memory . buffer ) [ ( pointer - 4 ) >>> 2 ] ) >>> 1 ,
@@ -252,6 +276,12 @@ export async function instantiate(module, imports = {}) {
252
276
exports . __unpin ( buffer ) ;
253
277
return header ;
254
278
}
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
+ }
255
285
const refcounts = new Map ( ) ;
256
286
function __retain ( pointer ) {
257
287
if ( pointer ) {
@@ -329,5 +359,44 @@ export async function instantiate(module, imports = {}) {
329
359
return __dataview . getBigInt64 ( pointer , true ) ;
330
360
}
331
361
}
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
+ }
332
370
return adaptedExports ;
333
371
}
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