@fluffylabs/anan-as 1.0.0-5213fac → 1.0.0-6e0dc16
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/build/debug-inline.js +16 -0
- package/build/debug-raw-inline.js +16 -0
- package/build/debug-raw.d.ts +4 -3
- package/build/debug-raw.js +3 -3
- package/build/debug-raw.wasm +0 -0
- package/build/debug.d.ts +4 -3
- package/build/debug.js +3 -3
- package/build/debug.wasm +0 -0
- package/build/release-inline.js +16 -0
- package/build/release-mini-inline.js +16 -0
- package/build/release-mini.d.ts +4 -3
- package/build/release-mini.js +3 -3
- package/build/release-mini.wasm +0 -0
- package/build/release-stub-inline.js +16 -0
- package/build/release-stub.d.ts +218 -0
- package/build/release-stub.js +415 -0
- package/build/release-stub.wasm +0 -0
- package/build/release.d.ts +4 -3
- package/build/release.js +3 -3
- package/build/release.wasm +0 -0
- package/build/test-inline.js +16 -0
- package/package.json +28 -12
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/** Exported memory */
|
|
2
|
+
export declare const memory: WebAssembly.Memory;
|
|
3
|
+
// Exported runtime interface
|
|
4
|
+
export declare function __new(size: number, id: number): number;
|
|
5
|
+
export declare function __pin(ptr: number): number;
|
|
6
|
+
export declare function __unpin(ptr: number): void;
|
|
7
|
+
export declare function __collect(): void;
|
|
8
|
+
export declare const __rtti_base: number;
|
|
9
|
+
/**
|
|
10
|
+
* assembly/api-internal/getAssembly
|
|
11
|
+
* @param p `assembly/program/Program`
|
|
12
|
+
* @returns `~lib/string/String`
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAssembly(p: __Internref26): string;
|
|
15
|
+
/**
|
|
16
|
+
* assembly/program-build/wrapAsProgram
|
|
17
|
+
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
18
|
+
* @returns `~lib/typedarray/Uint8Array`
|
|
19
|
+
*/
|
|
20
|
+
export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
|
|
21
|
+
/**
|
|
22
|
+
* assembly/api-debugger/resetJAM
|
|
23
|
+
* @param program `~lib/array/Array<u8>`
|
|
24
|
+
* @param pc `f64`
|
|
25
|
+
* @param initialGas `i64`
|
|
26
|
+
* @param args `~lib/array/Array<u8>`
|
|
27
|
+
* @param hasMetadata `bool`
|
|
28
|
+
*/
|
|
29
|
+
export declare function resetJAM(program: Array<number>, pc: number, initialGas: bigint, args: Array<number>, hasMetadata?: boolean): void;
|
|
30
|
+
/**
|
|
31
|
+
* assembly/api-debugger/resetGeneric
|
|
32
|
+
* @param program `~lib/array/Array<u8>`
|
|
33
|
+
* @param flatRegisters `~lib/array/Array<u8>`
|
|
34
|
+
* @param initialGas `i64`
|
|
35
|
+
* @param hasMetadata `bool`
|
|
36
|
+
*/
|
|
37
|
+
export declare function resetGeneric(program: Array<number>, flatRegisters: Array<number>, initialGas: bigint, hasMetadata?: boolean): void;
|
|
38
|
+
/**
|
|
39
|
+
* assembly/api-debugger/resetGenericWithMemory
|
|
40
|
+
* @param program `~lib/array/Array<u8>`
|
|
41
|
+
* @param flatRegisters `~lib/array/Array<u8>`
|
|
42
|
+
* @param pageMap `~lib/typedarray/Uint8Array`
|
|
43
|
+
* @param chunks `~lib/typedarray/Uint8Array`
|
|
44
|
+
* @param initialGas `i64`
|
|
45
|
+
* @param hasMetadata `bool`
|
|
46
|
+
*/
|
|
47
|
+
export declare function resetGenericWithMemory(program: Array<number>, flatRegisters: Array<number>, pageMap: Uint8Array, chunks: Uint8Array, initialGas: bigint, hasMetadata?: boolean): void;
|
|
48
|
+
/**
|
|
49
|
+
* assembly/api-debugger/nextStep
|
|
50
|
+
* @returns `bool`
|
|
51
|
+
*/
|
|
52
|
+
export declare function nextStep(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* assembly/api-debugger/nSteps
|
|
55
|
+
* @param steps `u32`
|
|
56
|
+
* @returns `bool`
|
|
57
|
+
*/
|
|
58
|
+
export declare function nSteps(steps: number): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* assembly/api-debugger/getProgramCounter
|
|
61
|
+
* @returns `u32`
|
|
62
|
+
*/
|
|
63
|
+
export declare function getProgramCounter(): number;
|
|
64
|
+
/**
|
|
65
|
+
* assembly/api-debugger/setNextProgramCounter
|
|
66
|
+
* @param pc `u32`
|
|
67
|
+
*/
|
|
68
|
+
export declare function setNextProgramCounter(pc: number): void;
|
|
69
|
+
/**
|
|
70
|
+
* assembly/api-debugger/getStatus
|
|
71
|
+
* @returns `u8`
|
|
72
|
+
*/
|
|
73
|
+
export declare function getStatus(): number;
|
|
74
|
+
/**
|
|
75
|
+
* assembly/api-debugger/getExitArg
|
|
76
|
+
* @returns `u32`
|
|
77
|
+
*/
|
|
78
|
+
export declare function getExitArg(): number;
|
|
79
|
+
/**
|
|
80
|
+
* assembly/api-debugger/getGasLeft
|
|
81
|
+
* @returns `i64`
|
|
82
|
+
*/
|
|
83
|
+
export declare function getGasLeft(): bigint;
|
|
84
|
+
/**
|
|
85
|
+
* assembly/api-debugger/setGasLeft
|
|
86
|
+
* @param gas `i64`
|
|
87
|
+
*/
|
|
88
|
+
export declare function setGasLeft(gas: bigint): void;
|
|
89
|
+
/**
|
|
90
|
+
* assembly/api-debugger/getRegisters
|
|
91
|
+
* @returns `~lib/typedarray/Uint8Array`
|
|
92
|
+
*/
|
|
93
|
+
export declare function getRegisters(): Uint8Array;
|
|
94
|
+
/**
|
|
95
|
+
* assembly/api-debugger/setRegisters
|
|
96
|
+
* @param flatRegisters `~lib/array/Array<u8>`
|
|
97
|
+
*/
|
|
98
|
+
export declare function setRegisters(flatRegisters: Array<number>): void;
|
|
99
|
+
/**
|
|
100
|
+
* assembly/api-debugger/getPageDump
|
|
101
|
+
* @param index `u32`
|
|
102
|
+
* @returns `~lib/typedarray/Uint8Array`
|
|
103
|
+
*/
|
|
104
|
+
export declare function getPageDump(index: number): Uint8Array;
|
|
105
|
+
/**
|
|
106
|
+
* assembly/api-debugger/getMemory
|
|
107
|
+
* @param address `u32`
|
|
108
|
+
* @param length `u32`
|
|
109
|
+
* @returns `~lib/typedarray/Uint8Array | null`
|
|
110
|
+
*/
|
|
111
|
+
export declare function getMemory(address: number, length: number): Uint8Array | null;
|
|
112
|
+
/**
|
|
113
|
+
* assembly/api-debugger/setMemory
|
|
114
|
+
* @param address `u32`
|
|
115
|
+
* @param data `~lib/typedarray/Uint8Array`
|
|
116
|
+
* @returns `bool`
|
|
117
|
+
*/
|
|
118
|
+
export declare function setMemory(address: number, data: Uint8Array): boolean;
|
|
119
|
+
/** assembly/api-utils/InputKind */
|
|
120
|
+
export declare enum InputKind {
|
|
121
|
+
/** @type `i32` */
|
|
122
|
+
Generic,
|
|
123
|
+
/** @type `i32` */
|
|
124
|
+
SPI,
|
|
125
|
+
}
|
|
126
|
+
/** assembly/api-utils/HasMetadata */
|
|
127
|
+
export declare enum HasMetadata {
|
|
128
|
+
/** @type `i32` */
|
|
129
|
+
Yes,
|
|
130
|
+
/** @type `i32` */
|
|
131
|
+
No,
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* assembly/api-utils/getGasCosts
|
|
135
|
+
* @param input `~lib/array/Array<u8>`
|
|
136
|
+
* @param kind `i32`
|
|
137
|
+
* @param withMetadata `i32`
|
|
138
|
+
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
139
|
+
*/
|
|
140
|
+
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record50<never>>;
|
|
141
|
+
/**
|
|
142
|
+
* assembly/api-utils/disassemble
|
|
143
|
+
* @param input `~lib/array/Array<u8>`
|
|
144
|
+
* @param kind `i32`
|
|
145
|
+
* @param withMetadata `i32`
|
|
146
|
+
* @returns `~lib/string/String`
|
|
147
|
+
*/
|
|
148
|
+
export declare function disassemble(input: Array<number>, kind: number, withMetadata: number): string;
|
|
149
|
+
/**
|
|
150
|
+
* assembly/api-utils/prepareProgram
|
|
151
|
+
* @param kind `i32`
|
|
152
|
+
* @param hasMetadata `i32`
|
|
153
|
+
* @param program `~lib/array/Array<u8>`
|
|
154
|
+
* @param initialRegisters `~lib/array/Array<u64>`
|
|
155
|
+
* @param initialPageMap `~lib/array/Array<assembly/api-internal/InitialPage>`
|
|
156
|
+
* @param initialMemory `~lib/array/Array<assembly/api-internal/InitialChunk>`
|
|
157
|
+
* @param args `~lib/array/Array<u8>`
|
|
158
|
+
* @returns `assembly/spi/StandardProgram`
|
|
159
|
+
*/
|
|
160
|
+
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record46<undefined>>, initialMemory: Array<__Record48<undefined>>, args: Array<number>): __Internref42;
|
|
161
|
+
/**
|
|
162
|
+
* assembly/api-utils/runProgram
|
|
163
|
+
* @param program `assembly/spi/StandardProgram`
|
|
164
|
+
* @param initialGas `i64`
|
|
165
|
+
* @param programCounter `u32`
|
|
166
|
+
* @param logs `bool`
|
|
167
|
+
* @param useSbrkGas `bool`
|
|
168
|
+
* @returns `assembly/api-internal/VmOutput`
|
|
169
|
+
*/
|
|
170
|
+
export declare function runProgram(program: __Internref42, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record55<never>;
|
|
171
|
+
/** assembly/program/Program */
|
|
172
|
+
declare class __Internref26 extends Number {
|
|
173
|
+
private __nominal26: symbol;
|
|
174
|
+
private __nominal0: symbol;
|
|
175
|
+
}
|
|
176
|
+
/** assembly/gas-costs/BlockGasCost */
|
|
177
|
+
declare interface __Record50<TOmittable> {
|
|
178
|
+
/** @type `u32` */
|
|
179
|
+
pc: number | TOmittable;
|
|
180
|
+
/** @type `u64` */
|
|
181
|
+
gas: bigint | TOmittable;
|
|
182
|
+
}
|
|
183
|
+
/** assembly/api-internal/InitialPage */
|
|
184
|
+
declare interface __Record46<TOmittable> {
|
|
185
|
+
/** @type `u32` */
|
|
186
|
+
address: number | TOmittable;
|
|
187
|
+
/** @type `u32` */
|
|
188
|
+
length: number | TOmittable;
|
|
189
|
+
/** @type `i32` */
|
|
190
|
+
access: number | TOmittable;
|
|
191
|
+
}
|
|
192
|
+
/** assembly/api-internal/InitialChunk */
|
|
193
|
+
declare interface __Record48<TOmittable> {
|
|
194
|
+
/** @type `u32` */
|
|
195
|
+
address: number | TOmittable;
|
|
196
|
+
/** @type `~lib/array/Array<u8>` */
|
|
197
|
+
data: Array<number>;
|
|
198
|
+
}
|
|
199
|
+
/** assembly/spi/StandardProgram */
|
|
200
|
+
declare class __Internref42 extends Number {
|
|
201
|
+
private __nominal42: symbol;
|
|
202
|
+
private __nominal0: symbol;
|
|
203
|
+
}
|
|
204
|
+
/** assembly/api-internal/VmOutput */
|
|
205
|
+
declare interface __Record55<TOmittable> {
|
|
206
|
+
/** @type `i32` */
|
|
207
|
+
status: number | TOmittable;
|
|
208
|
+
/** @type `~lib/array/Array<u64>` */
|
|
209
|
+
registers: Array<bigint>;
|
|
210
|
+
/** @type `u32` */
|
|
211
|
+
pc: number | TOmittable;
|
|
212
|
+
/** @type `~lib/array/Array<assembly/api-internal/InitialChunk>` */
|
|
213
|
+
memory: Array<__Record48<never>>;
|
|
214
|
+
/** @type `i64` */
|
|
215
|
+
gas: bigint | TOmittable;
|
|
216
|
+
/** @type `u32` */
|
|
217
|
+
exitCode: number | TOmittable;
|
|
218
|
+
}
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
async function instantiate(module, imports = {}) {
|
|
2
|
+
const adaptedImports = {
|
|
3
|
+
env: Object.setPrototypeOf({
|
|
4
|
+
abort(message, fileName, lineNumber, columnNumber) {
|
|
5
|
+
// ~lib/builtins/abort(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void
|
|
6
|
+
message = __liftString(message >>> 0);
|
|
7
|
+
fileName = __liftString(fileName >>> 0);
|
|
8
|
+
lineNumber = lineNumber >>> 0;
|
|
9
|
+
columnNumber = columnNumber >>> 0;
|
|
10
|
+
(() => {
|
|
11
|
+
// @external.js
|
|
12
|
+
throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`);
|
|
13
|
+
})();
|
|
14
|
+
},
|
|
15
|
+
"console.log"(text) {
|
|
16
|
+
// ~lib/bindings/dom/console.log(~lib/string/String) => void
|
|
17
|
+
text = __liftString(text >>> 0);
|
|
18
|
+
console.log(text);
|
|
19
|
+
},
|
|
20
|
+
}, Object.assign(Object.create(globalThis), imports.env || {})),
|
|
21
|
+
};
|
|
22
|
+
const { exports } = await WebAssembly.instantiate(module, adaptedImports);
|
|
23
|
+
const memory = exports.memory || imports.env.memory;
|
|
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
|
+
resetJAM(program, pc, initialGas, args, hasMetadata) {
|
|
36
|
+
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>, f64, i64, ~lib/array/Array<u8>, bool?) => void
|
|
37
|
+
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
38
|
+
initialGas = initialGas || 0n;
|
|
39
|
+
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
40
|
+
hasMetadata = hasMetadata ? 1 : 0;
|
|
41
|
+
try {
|
|
42
|
+
exports.__setArgumentsLength(arguments.length);
|
|
43
|
+
exports.resetJAM(program, pc, initialGas, args, hasMetadata);
|
|
44
|
+
} finally {
|
|
45
|
+
__release(program);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
resetGeneric(program, flatRegisters, initialGas, hasMetadata) {
|
|
49
|
+
// assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, i64, bool?) => void
|
|
50
|
+
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
51
|
+
flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
|
|
52
|
+
initialGas = initialGas || 0n;
|
|
53
|
+
hasMetadata = hasMetadata ? 1 : 0;
|
|
54
|
+
try {
|
|
55
|
+
exports.__setArgumentsLength(arguments.length);
|
|
56
|
+
exports.resetGeneric(program, flatRegisters, initialGas, hasMetadata);
|
|
57
|
+
} finally {
|
|
58
|
+
__release(program);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata) {
|
|
62
|
+
// assembly/api-debugger/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, i64, bool?) => void
|
|
63
|
+
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
64
|
+
flatRegisters = __retain(__lowerArray(__setU8, 6, 0, flatRegisters) || __notnull());
|
|
65
|
+
pageMap = __retain(__lowerTypedArray(Uint8Array, 10, 0, pageMap) || __notnull());
|
|
66
|
+
chunks = __lowerTypedArray(Uint8Array, 10, 0, chunks) || __notnull();
|
|
67
|
+
initialGas = initialGas || 0n;
|
|
68
|
+
hasMetadata = hasMetadata ? 1 : 0;
|
|
69
|
+
try {
|
|
70
|
+
exports.__setArgumentsLength(arguments.length);
|
|
71
|
+
exports.resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata);
|
|
72
|
+
} finally {
|
|
73
|
+
__release(program);
|
|
74
|
+
__release(flatRegisters);
|
|
75
|
+
__release(pageMap);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
nextStep() {
|
|
79
|
+
// assembly/api-debugger/nextStep() => bool
|
|
80
|
+
return exports.nextStep() != 0;
|
|
81
|
+
},
|
|
82
|
+
nSteps(steps) {
|
|
83
|
+
// assembly/api-debugger/nSteps(u32) => bool
|
|
84
|
+
return exports.nSteps(steps) != 0;
|
|
85
|
+
},
|
|
86
|
+
getProgramCounter() {
|
|
87
|
+
// assembly/api-debugger/getProgramCounter() => u32
|
|
88
|
+
return exports.getProgramCounter() >>> 0;
|
|
89
|
+
},
|
|
90
|
+
getExitArg() {
|
|
91
|
+
// assembly/api-debugger/getExitArg() => u32
|
|
92
|
+
return exports.getExitArg() >>> 0;
|
|
93
|
+
},
|
|
94
|
+
setGasLeft(gas) {
|
|
95
|
+
// assembly/api-debugger/setGasLeft(i64) => void
|
|
96
|
+
gas = gas || 0n;
|
|
97
|
+
exports.setGasLeft(gas);
|
|
98
|
+
},
|
|
99
|
+
getRegisters() {
|
|
100
|
+
// assembly/api-debugger/getRegisters() => ~lib/typedarray/Uint8Array
|
|
101
|
+
return __liftTypedArray(Uint8Array, exports.getRegisters() >>> 0);
|
|
102
|
+
},
|
|
103
|
+
setRegisters(flatRegisters) {
|
|
104
|
+
// assembly/api-debugger/setRegisters(~lib/array/Array<u8>) => void
|
|
105
|
+
flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
|
|
106
|
+
exports.setRegisters(flatRegisters);
|
|
107
|
+
},
|
|
108
|
+
getPageDump(index) {
|
|
109
|
+
// assembly/api-debugger/getPageDump(u32) => ~lib/typedarray/Uint8Array
|
|
110
|
+
return __liftTypedArray(Uint8Array, exports.getPageDump(index) >>> 0);
|
|
111
|
+
},
|
|
112
|
+
getMemory(address, length) {
|
|
113
|
+
// assembly/api-debugger/getMemory(u32, u32) => ~lib/typedarray/Uint8Array | null
|
|
114
|
+
return __liftTypedArray(Uint8Array, exports.getMemory(address, length) >>> 0);
|
|
115
|
+
},
|
|
116
|
+
setMemory(address, data) {
|
|
117
|
+
// assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) => bool
|
|
118
|
+
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
119
|
+
return exports.setMemory(address, data) != 0;
|
|
120
|
+
},
|
|
121
|
+
InputKind: (values => (
|
|
122
|
+
// assembly/api-utils/InputKind
|
|
123
|
+
values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
|
|
124
|
+
values[values.SPI = exports["InputKind.SPI"].valueOf()] = "SPI",
|
|
125
|
+
values
|
|
126
|
+
))({}),
|
|
127
|
+
HasMetadata: (values => (
|
|
128
|
+
// assembly/api-utils/HasMetadata
|
|
129
|
+
values[values.Yes = exports["HasMetadata.Yes"].valueOf()] = "Yes",
|
|
130
|
+
values[values.No = exports["HasMetadata.No"].valueOf()] = "No",
|
|
131
|
+
values
|
|
132
|
+
))({}),
|
|
133
|
+
getGasCosts(input, kind, withMetadata) {
|
|
134
|
+
// assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
|
|
135
|
+
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
136
|
+
return __liftArray(pointer => __liftRecord50(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
|
|
137
|
+
},
|
|
138
|
+
disassemble(input, kind, withMetadata) {
|
|
139
|
+
// assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
|
|
140
|
+
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
141
|
+
return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
|
|
142
|
+
},
|
|
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-internal/InitialPage>, ~lib/array/Array<assembly/api-internal/InitialChunk>, ~lib/array/Array<u8>) => assembly/spi/StandardProgram
|
|
145
|
+
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
146
|
+
initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
|
|
147
|
+
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialPageMap) || __notnull());
|
|
148
|
+
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord48(value) || __notnull()); }, 49, 2, initialMemory) || __notnull());
|
|
149
|
+
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
150
|
+
try {
|
|
151
|
+
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
|
|
152
|
+
} finally {
|
|
153
|
+
__release(program);
|
|
154
|
+
__release(initialRegisters);
|
|
155
|
+
__release(initialPageMap);
|
|
156
|
+
__release(initialMemory);
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
|
|
160
|
+
// assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-internal/VmOutput
|
|
161
|
+
program = __lowerInternref(program) || __notnull();
|
|
162
|
+
initialGas = initialGas || 0n;
|
|
163
|
+
logs = logs ? 1 : 0;
|
|
164
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
165
|
+
exports.__setArgumentsLength(arguments.length);
|
|
166
|
+
return __liftRecord55(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
|
|
167
|
+
},
|
|
168
|
+
}, exports);
|
|
169
|
+
function __liftRecord50(pointer) {
|
|
170
|
+
// assembly/gas-costs/BlockGasCost
|
|
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
|
|
180
|
+
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
181
|
+
if (value == null) return 0;
|
|
182
|
+
const pointer = exports.__pin(exports.__new(12, 46));
|
|
183
|
+
__setU32(pointer + 0, value.address);
|
|
184
|
+
__setU32(pointer + 4, value.length);
|
|
185
|
+
__setU32(pointer + 8, value.access);
|
|
186
|
+
exports.__unpin(pointer);
|
|
187
|
+
return pointer;
|
|
188
|
+
}
|
|
189
|
+
function __lowerRecord48(value) {
|
|
190
|
+
// assembly/api-internal/InitialChunk
|
|
191
|
+
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
192
|
+
if (value == null) return 0;
|
|
193
|
+
const pointer = exports.__pin(exports.__new(8, 48));
|
|
194
|
+
__setU32(pointer + 0, value.address);
|
|
195
|
+
__setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
|
|
196
|
+
exports.__unpin(pointer);
|
|
197
|
+
return pointer;
|
|
198
|
+
}
|
|
199
|
+
function __liftRecord48(pointer) {
|
|
200
|
+
// assembly/api-internal/InitialChunk
|
|
201
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
202
|
+
if (!pointer) return null;
|
|
203
|
+
return {
|
|
204
|
+
address: __getU32(pointer + 0),
|
|
205
|
+
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function __liftRecord55(pointer) {
|
|
209
|
+
// assembly/api-internal/VmOutput
|
|
210
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
211
|
+
if (!pointer) return null;
|
|
212
|
+
return {
|
|
213
|
+
status: __getI32(pointer + 0),
|
|
214
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 4)),
|
|
215
|
+
pc: __getU32(pointer + 8),
|
|
216
|
+
memory: __liftArray(pointer => __liftRecord48(__getU32(pointer)), 2, __getU32(pointer + 12)),
|
|
217
|
+
gas: __getI64(pointer + 16),
|
|
218
|
+
exitCode: __getU32(pointer + 24),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function __liftString(pointer) {
|
|
222
|
+
if (!pointer) return null;
|
|
223
|
+
const
|
|
224
|
+
end = pointer + new Uint32Array(memory.buffer)[pointer - 4 >>> 2] >>> 1,
|
|
225
|
+
memoryU16 = new Uint16Array(memory.buffer);
|
|
226
|
+
let
|
|
227
|
+
start = pointer >>> 1,
|
|
228
|
+
string = "";
|
|
229
|
+
while (end - start > 1024) string += String.fromCharCode(...memoryU16.subarray(start, start += 1024));
|
|
230
|
+
return string + String.fromCharCode(...memoryU16.subarray(start, end));
|
|
231
|
+
}
|
|
232
|
+
function __liftArray(liftElement, align, pointer) {
|
|
233
|
+
if (!pointer) return null;
|
|
234
|
+
const
|
|
235
|
+
dataStart = __getU32(pointer + 4),
|
|
236
|
+
length = __dataview.getUint32(pointer + 12, true),
|
|
237
|
+
values = new Array(length);
|
|
238
|
+
for (let i = 0; i < length; ++i) values[i] = liftElement(dataStart + (i << align >>> 0));
|
|
239
|
+
return values;
|
|
240
|
+
}
|
|
241
|
+
function __lowerArray(lowerElement, id, align, values) {
|
|
242
|
+
if (values == null) return 0;
|
|
243
|
+
const
|
|
244
|
+
length = values.length,
|
|
245
|
+
buffer = exports.__pin(exports.__new(length << align, 1)) >>> 0,
|
|
246
|
+
header = exports.__pin(exports.__new(16, id)) >>> 0;
|
|
247
|
+
__setU32(header + 0, buffer);
|
|
248
|
+
__dataview.setUint32(header + 4, buffer, true);
|
|
249
|
+
__dataview.setUint32(header + 8, length << align, true);
|
|
250
|
+
__dataview.setUint32(header + 12, length, true);
|
|
251
|
+
for (let i = 0; i < length; ++i) lowerElement(buffer + (i << align >>> 0), values[i]);
|
|
252
|
+
exports.__unpin(buffer);
|
|
253
|
+
exports.__unpin(header);
|
|
254
|
+
return header;
|
|
255
|
+
}
|
|
256
|
+
function __liftTypedArray(constructor, pointer) {
|
|
257
|
+
if (!pointer) return null;
|
|
258
|
+
return new constructor(
|
|
259
|
+
memory.buffer,
|
|
260
|
+
__getU32(pointer + 4),
|
|
261
|
+
__dataview.getUint32(pointer + 8, true) / constructor.BYTES_PER_ELEMENT
|
|
262
|
+
).slice();
|
|
263
|
+
}
|
|
264
|
+
function __lowerTypedArray(constructor, id, align, values) {
|
|
265
|
+
if (values == null) return 0;
|
|
266
|
+
const
|
|
267
|
+
length = values.length,
|
|
268
|
+
buffer = exports.__pin(exports.__new(length << align, 1)) >>> 0,
|
|
269
|
+
header = exports.__new(12, id) >>> 0;
|
|
270
|
+
__setU32(header + 0, buffer);
|
|
271
|
+
__dataview.setUint32(header + 4, buffer, true);
|
|
272
|
+
__dataview.setUint32(header + 8, length << align, true);
|
|
273
|
+
new constructor(memory.buffer, buffer, length).set(values);
|
|
274
|
+
exports.__unpin(buffer);
|
|
275
|
+
return header;
|
|
276
|
+
}
|
|
277
|
+
class Internref extends Number {}
|
|
278
|
+
const registry = new FinalizationRegistry(__release);
|
|
279
|
+
function __liftInternref(pointer) {
|
|
280
|
+
if (!pointer) return null;
|
|
281
|
+
const sentinel = new Internref(__retain(pointer));
|
|
282
|
+
registry.register(sentinel, pointer);
|
|
283
|
+
return sentinel;
|
|
284
|
+
}
|
|
285
|
+
function __lowerInternref(value) {
|
|
286
|
+
if (value == null) return 0;
|
|
287
|
+
if (value instanceof Internref) return value.valueOf();
|
|
288
|
+
throw TypeError("internref expected");
|
|
289
|
+
}
|
|
290
|
+
const refcounts = new Map();
|
|
291
|
+
function __retain(pointer) {
|
|
292
|
+
if (pointer) {
|
|
293
|
+
const refcount = refcounts.get(pointer);
|
|
294
|
+
if (refcount) refcounts.set(pointer, refcount + 1);
|
|
295
|
+
else refcounts.set(exports.__pin(pointer), 1);
|
|
296
|
+
}
|
|
297
|
+
return pointer;
|
|
298
|
+
}
|
|
299
|
+
function __release(pointer) {
|
|
300
|
+
if (pointer) {
|
|
301
|
+
const refcount = refcounts.get(pointer);
|
|
302
|
+
if (refcount === 1) exports.__unpin(pointer), refcounts.delete(pointer);
|
|
303
|
+
else if (refcount) refcounts.set(pointer, refcount - 1);
|
|
304
|
+
else throw Error(`invalid refcount '${refcount}' for reference '${pointer}'`);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
function __notnull() {
|
|
308
|
+
throw TypeError("value must not be null");
|
|
309
|
+
}
|
|
310
|
+
let __dataview = new DataView(memory.buffer);
|
|
311
|
+
function __setU8(pointer, value) {
|
|
312
|
+
try {
|
|
313
|
+
__dataview.setUint8(pointer, value, true);
|
|
314
|
+
} catch {
|
|
315
|
+
__dataview = new DataView(memory.buffer);
|
|
316
|
+
__dataview.setUint8(pointer, value, true);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
function __setU32(pointer, value) {
|
|
320
|
+
try {
|
|
321
|
+
__dataview.setUint32(pointer, value, true);
|
|
322
|
+
} catch {
|
|
323
|
+
__dataview = new DataView(memory.buffer);
|
|
324
|
+
__dataview.setUint32(pointer, value, true);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
function __setU64(pointer, value) {
|
|
328
|
+
try {
|
|
329
|
+
__dataview.setBigUint64(pointer, value, true);
|
|
330
|
+
} catch {
|
|
331
|
+
__dataview = new DataView(memory.buffer);
|
|
332
|
+
__dataview.setBigUint64(pointer, value, true);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
function __getU8(pointer) {
|
|
336
|
+
try {
|
|
337
|
+
return __dataview.getUint8(pointer, true);
|
|
338
|
+
} catch {
|
|
339
|
+
__dataview = new DataView(memory.buffer);
|
|
340
|
+
return __dataview.getUint8(pointer, true);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
function __getI32(pointer) {
|
|
344
|
+
try {
|
|
345
|
+
return __dataview.getInt32(pointer, true);
|
|
346
|
+
} catch {
|
|
347
|
+
__dataview = new DataView(memory.buffer);
|
|
348
|
+
return __dataview.getInt32(pointer, true);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function __getU32(pointer) {
|
|
352
|
+
try {
|
|
353
|
+
return __dataview.getUint32(pointer, true);
|
|
354
|
+
} catch {
|
|
355
|
+
__dataview = new DataView(memory.buffer);
|
|
356
|
+
return __dataview.getUint32(pointer, true);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
function __getI64(pointer) {
|
|
360
|
+
try {
|
|
361
|
+
return __dataview.getBigInt64(pointer, true);
|
|
362
|
+
} catch {
|
|
363
|
+
__dataview = new DataView(memory.buffer);
|
|
364
|
+
return __dataview.getBigInt64(pointer, true);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
function __getU64(pointer) {
|
|
368
|
+
try {
|
|
369
|
+
return __dataview.getBigUint64(pointer, true);
|
|
370
|
+
} catch {
|
|
371
|
+
__dataview = new DataView(memory.buffer);
|
|
372
|
+
return __dataview.getBigUint64(pointer, true);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return adaptedExports;
|
|
376
|
+
}
|
|
377
|
+
export const {
|
|
378
|
+
memory,
|
|
379
|
+
__new,
|
|
380
|
+
__pin,
|
|
381
|
+
__unpin,
|
|
382
|
+
__collect,
|
|
383
|
+
__rtti_base,
|
|
384
|
+
getAssembly,
|
|
385
|
+
wrapAsProgram,
|
|
386
|
+
resetJAM,
|
|
387
|
+
resetGeneric,
|
|
388
|
+
resetGenericWithMemory,
|
|
389
|
+
nextStep,
|
|
390
|
+
nSteps,
|
|
391
|
+
getProgramCounter,
|
|
392
|
+
setNextProgramCounter,
|
|
393
|
+
getStatus,
|
|
394
|
+
getExitArg,
|
|
395
|
+
getGasLeft,
|
|
396
|
+
setGasLeft,
|
|
397
|
+
getRegisters,
|
|
398
|
+
setRegisters,
|
|
399
|
+
getPageDump,
|
|
400
|
+
getMemory,
|
|
401
|
+
setMemory,
|
|
402
|
+
InputKind,
|
|
403
|
+
HasMetadata,
|
|
404
|
+
getGasCosts,
|
|
405
|
+
disassemble,
|
|
406
|
+
prepareProgram,
|
|
407
|
+
runProgram,
|
|
408
|
+
} = await (async url => instantiate(
|
|
409
|
+
await (async () => {
|
|
410
|
+
const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
|
|
411
|
+
if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
|
|
412
|
+
else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
|
|
413
|
+
})(), {
|
|
414
|
+
}
|
|
415
|
+
))(new URL("release-stub.wasm", import.meta.url));
|
|
Binary file
|
package/build/release.d.ts
CHANGED
|
@@ -100,15 +100,16 @@ export declare function getPageDump(index: number): Uint8Array;
|
|
|
100
100
|
* assembly/api-debugger/getMemory
|
|
101
101
|
* @param address `u32`
|
|
102
102
|
* @param length `u32`
|
|
103
|
-
* @returns `~lib/typedarray/Uint8Array`
|
|
103
|
+
* @returns `~lib/typedarray/Uint8Array | null`
|
|
104
104
|
*/
|
|
105
|
-
export declare function getMemory(address: number, length: number): Uint8Array;
|
|
105
|
+
export declare function getMemory(address: number, length: number): Uint8Array | null;
|
|
106
106
|
/**
|
|
107
107
|
* assembly/api-debugger/setMemory
|
|
108
108
|
* @param address `u32`
|
|
109
109
|
* @param data `~lib/typedarray/Uint8Array`
|
|
110
|
+
* @returns `bool`
|
|
110
111
|
*/
|
|
111
|
-
export declare function setMemory(address: number, data: Uint8Array):
|
|
112
|
+
export declare function setMemory(address: number, data: Uint8Array): boolean;
|
|
112
113
|
/** assembly/api-utils/InputKind */
|
|
113
114
|
export declare enum InputKind {
|
|
114
115
|
/** @type `i32` */
|
package/build/release.js
CHANGED
|
@@ -110,13 +110,13 @@ async function instantiate(module, imports = {}) {
|
|
|
110
110
|
return __liftTypedArray(Uint8Array, exports.getPageDump(index) >>> 0);
|
|
111
111
|
},
|
|
112
112
|
getMemory(address, length) {
|
|
113
|
-
// assembly/api-debugger/getMemory(u32, u32) => ~lib/typedarray/Uint8Array
|
|
113
|
+
// assembly/api-debugger/getMemory(u32, u32) => ~lib/typedarray/Uint8Array | null
|
|
114
114
|
return __liftTypedArray(Uint8Array, exports.getMemory(address, length) >>> 0);
|
|
115
115
|
},
|
|
116
116
|
setMemory(address, data) {
|
|
117
|
-
// assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) =>
|
|
117
|
+
// assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) => bool
|
|
118
118
|
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
119
|
-
exports.setMemory(address, data);
|
|
119
|
+
return exports.setMemory(address, data) != 0;
|
|
120
120
|
},
|
|
121
121
|
InputKind: (values => (
|
|
122
122
|
// assembly/api-utils/InputKind
|
package/build/release.wasm
CHANGED
|
Binary file
|