@loopdive/js2 0.57.0

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.
Files changed (233) hide show
  1. package/CHANGELOG.md +1425 -0
  2. package/LICENSE +189 -0
  3. package/README.md +451 -0
  4. package/dist/checker/index.d.ts +117 -0
  5. package/dist/checker/language-service.d.ts +39 -0
  6. package/dist/checker/node-capability-map.d.ts +63 -0
  7. package/dist/checker/type-mapper.d.ts +84 -0
  8. package/dist/cjs-rewrite.d.ts +19 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +363 -0
  11. package/dist/codegen/accessor-driver.d.ts +97 -0
  12. package/dist/codegen/any-helpers.d.ts +72 -0
  13. package/dist/codegen/array-element-typing.d.ts +46 -0
  14. package/dist/codegen/array-holes.d.ts +69 -0
  15. package/dist/codegen/array-methods.d.ts +68 -0
  16. package/dist/codegen/array-object-proto.d.ts +64 -0
  17. package/dist/codegen/array-reduce-fusion.d.ts +31 -0
  18. package/dist/codegen/array-to-primitive.d.ts +28 -0
  19. package/dist/codegen/async-cps.d.ts +239 -0
  20. package/dist/codegen/async-scheduler.d.ts +349 -0
  21. package/dist/codegen/binary-ops.d.ts +78 -0
  22. package/dist/codegen/binding-info.d.ts +31 -0
  23. package/dist/codegen/builtin-scaffold.d.ts +98 -0
  24. package/dist/codegen/builtin-static-globals.d.ts +8 -0
  25. package/dist/codegen/builtin-tags.d.ts +189 -0
  26. package/dist/codegen/case-convert-native.d.ts +12 -0
  27. package/dist/codegen/case-tables.d.ts +4 -0
  28. package/dist/codegen/class-bodies.d.ts +41 -0
  29. package/dist/codegen/class-member-keys.d.ts +33 -0
  30. package/dist/codegen/class-to-primitive.d.ts +39 -0
  31. package/dist/codegen/closed-method-dispatch.d.ts +42 -0
  32. package/dist/codegen/closures.d.ts +285 -0
  33. package/dist/codegen/coercion-engine.d.ts +154 -0
  34. package/dist/codegen/coercion-plan.d.ts +29 -0
  35. package/dist/codegen/context/bodies.d.ts +4 -0
  36. package/dist/codegen/context/create-context.d.ts +4 -0
  37. package/dist/codegen/context/errors.d.ts +39 -0
  38. package/dist/codegen/context/locals.d.ts +69 -0
  39. package/dist/codegen/context/source-pos.d.ts +5 -0
  40. package/dist/codegen/context/speculative.d.ts +95 -0
  41. package/dist/codegen/context/types.d.ts +1936 -0
  42. package/dist/codegen/custom-iterable.d.ts +34 -0
  43. package/dist/codegen/dataview-native.d.ts +51 -0
  44. package/dist/codegen/date-parse-native.d.ts +13 -0
  45. package/dist/codegen/dead-elimination.d.ts +26 -0
  46. package/dist/codegen/declarations.d.ts +147 -0
  47. package/dist/codegen/deno-api.d.ts +11 -0
  48. package/dist/codegen/destructuring-params.d.ts +102 -0
  49. package/dist/codegen/dyn-read.d.ts +26 -0
  50. package/dist/codegen/eval-tiering.d.ts +19 -0
  51. package/dist/codegen/expressions/assignment.d.ts +61 -0
  52. package/dist/codegen/expressions/builtins.d.ts +26 -0
  53. package/dist/codegen/expressions/calls-closures.d.ts +54 -0
  54. package/dist/codegen/expressions/calls-guards.d.ts +49 -0
  55. package/dist/codegen/expressions/calls-optional.d.ts +4 -0
  56. package/dist/codegen/expressions/calls.d.ts +83 -0
  57. package/dist/codegen/expressions/eval-inline.d.ts +24 -0
  58. package/dist/codegen/expressions/extern.d.ts +67 -0
  59. package/dist/codegen/expressions/fnctor-prototype.d.ts +52 -0
  60. package/dist/codegen/expressions/helpers.d.ts +212 -0
  61. package/dist/codegen/expressions/identifiers.d.ts +57 -0
  62. package/dist/codegen/expressions/late-imports.d.ts +81 -0
  63. package/dist/codegen/expressions/logical-ops.d.ts +18 -0
  64. package/dist/codegen/expressions/misc.d.ts +27 -0
  65. package/dist/codegen/expressions/new-super.d.ts +25 -0
  66. package/dist/codegen/expressions/promise-subclass.d.ts +38 -0
  67. package/dist/codegen/expressions/proto-override.d.ts +63 -0
  68. package/dist/codegen/expressions/unary-updates.d.ts +21 -0
  69. package/dist/codegen/expressions/unary.d.ts +6 -0
  70. package/dist/codegen/expressions.d.ts +31 -0
  71. package/dist/codegen/fallback-telemetry.d.ts +53 -0
  72. package/dist/codegen/fixups.d.ts +80 -0
  73. package/dist/codegen/fmod.d.ts +10 -0
  74. package/dist/codegen/fnctor-escape-gate.d.ts +92 -0
  75. package/dist/codegen/function-body.d.ts +52 -0
  76. package/dist/codegen/generators-native.d.ts +92 -0
  77. package/dist/codegen/helpers/body-references-own-this.d.ts +22 -0
  78. package/dist/codegen/helpers/body-uses-arguments.d.ts +12 -0
  79. package/dist/codegen/helpers/is-strict-function.d.ts +52 -0
  80. package/dist/codegen/host-import-allowlist.d.ts +140 -0
  81. package/dist/codegen/index.d.ts +500 -0
  82. package/dist/codegen/ir-tail-call.d.ts +8 -0
  83. package/dist/codegen/iterator-native.d.ts +44 -0
  84. package/dist/codegen/json-codec-native.d.ts +78 -0
  85. package/dist/codegen/json-runtime.d.ts +35 -0
  86. package/dist/codegen/json-standalone.d.ts +25 -0
  87. package/dist/codegen/linear-uint8-analysis.d.ts +46 -0
  88. package/dist/codegen/linear-uint8-arena.d.ts +7 -0
  89. package/dist/codegen/linear-uint8-codegen.d.ts +103 -0
  90. package/dist/codegen/linear-uint8-signatures.d.ts +26 -0
  91. package/dist/codegen/literals.d.ts +115 -0
  92. package/dist/codegen/map-runtime.d.ts +142 -0
  93. package/dist/codegen/math-helpers.d.ts +7 -0
  94. package/dist/codegen/member-get-dispatch.d.ts +42 -0
  95. package/dist/codegen/member-set-dispatch.d.ts +28 -0
  96. package/dist/codegen/native-proto.d.ts +98 -0
  97. package/dist/codegen/native-regex.d.ts +158 -0
  98. package/dist/codegen/native-strings.d.ts +146 -0
  99. package/dist/codegen/new-target.d.ts +30 -0
  100. package/dist/codegen/node-fs-api.d.ts +47 -0
  101. package/dist/codegen/number-format-native.d.ts +9 -0
  102. package/dist/codegen/number-ryu.d.ts +27 -0
  103. package/dist/codegen/object-ops.d.ts +94 -0
  104. package/dist/codegen/object-runtime.d.ts +171 -0
  105. package/dist/codegen/parse-number-native.d.ts +10 -0
  106. package/dist/codegen/peephole.d.ts +6 -0
  107. package/dist/codegen/property-access.d.ts +294 -0
  108. package/dist/codegen/raw-wasi-api.d.ts +13 -0
  109. package/dist/codegen/regex/bytecode.d.ts +140 -0
  110. package/dist/codegen/regex/casefold.d.ts +41 -0
  111. package/dist/codegen/regex/compile.d.ts +51 -0
  112. package/dist/codegen/regex/parse.d.ts +76 -0
  113. package/dist/codegen/regex/unicode.d.ts +42 -0
  114. package/dist/codegen/regex/vm.d.ts +24 -0
  115. package/dist/codegen/regexp-standalone.d.ts +350 -0
  116. package/dist/codegen/registry/error-types.d.ts +38 -0
  117. package/dist/codegen/registry/imports.d.ts +46 -0
  118. package/dist/codegen/registry/types.d.ts +59 -0
  119. package/dist/codegen/set-algebra.d.ts +17 -0
  120. package/dist/codegen/set-runtime.d.ts +74 -0
  121. package/dist/codegen/shared.d.ts +111 -0
  122. package/dist/codegen/stack-balance.d.ts +43 -0
  123. package/dist/codegen/statements/control-flow.d.ts +25 -0
  124. package/dist/codegen/statements/destructuring.d.ts +177 -0
  125. package/dist/codegen/statements/exceptions.d.ts +11 -0
  126. package/dist/codegen/statements/functions.d.ts +1 -0
  127. package/dist/codegen/statements/index.d.ts +1 -0
  128. package/dist/codegen/statements/loops.d.ts +7 -0
  129. package/dist/codegen/statements/nested-declarations.d.ts +78 -0
  130. package/dist/codegen/statements/shared.d.ts +38 -0
  131. package/dist/codegen/statements/tdz.d.ts +43 -0
  132. package/dist/codegen/statements/variables.d.ts +3 -0
  133. package/dist/codegen/statements.d.ts +9 -0
  134. package/dist/codegen/string-builder.d.ts +131 -0
  135. package/dist/codegen/string-ops.d.ts +87 -0
  136. package/dist/codegen/struct-accessor-closure.d.ts +36 -0
  137. package/dist/codegen/symbol-native.d.ts +55 -0
  138. package/dist/codegen/temporal-native.d.ts +8 -0
  139. package/dist/codegen/timsort.d.ts +2 -0
  140. package/dist/codegen/type-coercion.d.ts +123 -0
  141. package/dist/codegen/typeof-delete.d.ts +38 -0
  142. package/dist/codegen/uri-encoding-native.d.ts +33 -0
  143. package/dist/codegen/value-tags.d.ts +74 -0
  144. package/dist/codegen/walk-instructions.d.ts +20 -0
  145. package/dist/codegen/weak-collections-runtime.d.ts +16 -0
  146. package/dist/codegen/with-scope.d.ts +106 -0
  147. package/dist/codegen-linear/c-abi.d.ts +74 -0
  148. package/dist/codegen-linear/context.d.ts +86 -0
  149. package/dist/codegen-linear/index.d.ts +28 -0
  150. package/dist/codegen-linear/layout.d.ts +39 -0
  151. package/dist/codegen-linear/runtime.d.ts +161 -0
  152. package/dist/codegen-linear/simd.d.ts +7 -0
  153. package/dist/compiler/define-substitution.d.ts +27 -0
  154. package/dist/compiler/early-errors/assignment.d.ts +26 -0
  155. package/dist/compiler/early-errors/context.d.ts +17 -0
  156. package/dist/compiler/early-errors/duplicates.d.ts +20 -0
  157. package/dist/compiler/early-errors/index.d.ts +11 -0
  158. package/dist/compiler/early-errors/labels.d.ts +13 -0
  159. package/dist/compiler/early-errors/module-rules.d.ts +36 -0
  160. package/dist/compiler/early-errors/node-checks.d.ts +7 -0
  161. package/dist/compiler/early-errors/predicates.d.ts +140 -0
  162. package/dist/compiler/early-errors/tdz.d.ts +17 -0
  163. package/dist/compiler/import-manifest.d.ts +18 -0
  164. package/dist/compiler/output.d.ts +46 -0
  165. package/dist/compiler/validation.d.ts +45 -0
  166. package/dist/compiler.d.ts +48 -0
  167. package/dist/define-substitution-BcUeKC2A.js +109 -0
  168. package/dist/emit/binary.d.ts +50 -0
  169. package/dist/emit/c-header.d.ts +23 -0
  170. package/dist/emit/canonical-recgroup.d.ts +86 -0
  171. package/dist/emit/encoder.d.ts +28 -0
  172. package/dist/emit/object.d.ts +14 -0
  173. package/dist/emit/opcodes.d.ts +464 -0
  174. package/dist/emit/sourcemap.d.ts +33 -0
  175. package/dist/emit/wat.d.ts +6 -0
  176. package/dist/env.d.ts +46 -0
  177. package/dist/import-resolver.d.ts +68 -0
  178. package/dist/index.d.ts +486 -0
  179. package/dist/index.js +755 -0
  180. package/dist/ir/alloc-registry.d.ts +75 -0
  181. package/dist/ir/analysis/encoding.d.ts +38 -0
  182. package/dist/ir/analysis/escape.d.ts +32 -0
  183. package/dist/ir/analysis/lattice.d.ts +72 -0
  184. package/dist/ir/analysis/ownership.d.ts +31 -0
  185. package/dist/ir/analysis/stack-alloc.d.ts +20 -0
  186. package/dist/ir/backend/bytecode-emitter.d.ts +237 -0
  187. package/dist/ir/backend/bytecode-vm.d.ts +74 -0
  188. package/dist/ir/backend/emitter.d.ts +121 -0
  189. package/dist/ir/backend/handles.d.ts +133 -0
  190. package/dist/ir/backend/legality.d.ts +9 -0
  191. package/dist/ir/backend/linear-emitter.d.ts +41 -0
  192. package/dist/ir/backend/wasmgc-emitter.d.ts +43 -0
  193. package/dist/ir/builder.d.ts +401 -0
  194. package/dist/ir/from-ast.d.ts +192 -0
  195. package/dist/ir/index.d.ts +16 -0
  196. package/dist/ir/integration.d.ts +27 -0
  197. package/dist/ir/lower.d.ts +203 -0
  198. package/dist/ir/nodes.d.ts +1452 -0
  199. package/dist/ir/passes/alloc-discipline.d.ts +19 -0
  200. package/dist/ir/passes/constant-fold.d.ts +7 -0
  201. package/dist/ir/passes/dead-code.d.ts +18 -0
  202. package/dist/ir/passes/inline-small.d.ts +7 -0
  203. package/dist/ir/passes/monomorphize.d.ts +21 -0
  204. package/dist/ir/passes/simplify-cfg.d.ts +19 -0
  205. package/dist/ir/passes/tagged-union-types.d.ts +45 -0
  206. package/dist/ir/passes/tagged-unions.d.ts +22 -0
  207. package/dist/ir/propagate.d.ts +135 -0
  208. package/dist/ir/select.d.ts +81 -0
  209. package/dist/ir/types.d.ts +832 -0
  210. package/dist/ir/verify-alloc.d.ts +18 -0
  211. package/dist/ir/verify.d.ts +7 -0
  212. package/dist/link/index.d.ts +11 -0
  213. package/dist/link/isolation.d.ts +24 -0
  214. package/dist/link/linker.d.ts +37 -0
  215. package/dist/link/reader.d.ts +158 -0
  216. package/dist/link/resolver.d.ts +19 -0
  217. package/dist/optimize.d.ts +54 -0
  218. package/dist/optimize.js +262 -0
  219. package/dist/position-map.d.ts +64 -0
  220. package/dist/process-stdin-prelude.d.ts +16 -0
  221. package/dist/resolve.d.ts +82 -0
  222. package/dist/runtime/builtins.d.ts +1 -0
  223. package/dist/runtime-C-4q_KwU.js +164438 -0
  224. package/dist/runtime-containment.d.ts +6 -0
  225. package/dist/runtime-eval.d.ts +132 -0
  226. package/dist/runtime-instantiate.d.ts +16 -0
  227. package/dist/runtime.d.ts +128 -0
  228. package/dist/runtime.js +12 -0
  229. package/dist/shape-inference.d.ts +20 -0
  230. package/dist/treeshake.d.ts +17 -0
  231. package/dist/ts-api.d.ts +30 -0
  232. package/dist/wit-generator.d.ts +18 -0
  233. package/package.json +187 -0
@@ -0,0 +1,832 @@
1
+ export type FuncHandle = number;
2
+ export type GlobalHandle = number;
3
+ export type TypeHandle = number;
4
+ export interface ExternClassMeta {
5
+ importPrefix: string;
6
+ namespacePath: string[];
7
+ className: string;
8
+ constructorParams: ValType[];
9
+ methods: Map<string, {
10
+ params: ValType[];
11
+ results: ValType[];
12
+ }>;
13
+ properties: Map<string, {
14
+ type: ValType;
15
+ readonly: boolean;
16
+ }>;
17
+ }
18
+ export interface WasmModule {
19
+ types: TypeDef[];
20
+ imports: Import[];
21
+ functions: WasmFunction[];
22
+ exports: WasmExport[];
23
+ tables: Table[];
24
+ elements: Element[];
25
+ globals: GlobalDef[];
26
+ tags: TagDef[];
27
+ stringPool: string[];
28
+ /** Extern class metadata (for .d.ts and imports helper generation) */
29
+ externClasses: ExternClassMeta[];
30
+ /** Node builtin module names detected from imports (#1044) */
31
+ nodeBuiltinModules: Set<string>;
32
+ /**
33
+ * JSX runtime import specifier detected during import preprocessing (#1540).
34
+ * `"react/jsx-runtime"` by default; `preact/jsx-runtime`, etc. for other
35
+ * configured `jsxImportSource` values. Recorded so the import manifest
36
+ * classifier can attach it to `jsx_runtime` ImportIntent entries.
37
+ */
38
+ jsxImportSource?: string;
39
+ /** Map from import func name → string literal value (e.g. "__str_0" → "Hello") */
40
+ stringLiteralValues: Map<string, string>;
41
+ /** Set of function names that are async (for .d.ts generation) */
42
+ asyncFunctions: Set<string>;
43
+ /** Function indices referenced by ref.func that need declarative element segments */
44
+ declaredFuncRefs: FuncHandle[];
45
+ /** Linear memory definitions */
46
+ memories: {
47
+ min: number;
48
+ max?: number;
49
+ }[];
50
+ /** Data segments for linear memory (string literals, etc.) */
51
+ dataSegments: {
52
+ offset: number;
53
+ bytes: Uint8Array;
54
+ }[];
55
+ /** Whether the module has top-level executable statements (module init code) */
56
+ hasTopLevelStatements?: boolean;
57
+ /** Wasm start function index — runs automatically on instantiation (#907) */
58
+ startFuncIdx?: FuncHandle;
59
+ /**
60
+ * Per-export TS-level type annotations (#1700). Surfaced so the JS-host
61
+ * `wrapExports` can faithfully marshal `Uint8Array` (and other TypedArray)
62
+ * params/results that share the same Wasm signature as `number[]`. Keyed
63
+ * by export name. Only populated for exports whose params/result reference
64
+ * TypedArray types.
65
+ */
66
+ exportSignatures?: Record<string, ExportSignature>;
67
+ /**
68
+ * Codegen diagnostics produced while lowering this module (#1868). The
69
+ * linear-memory backend (`generateLinearModule` / `generateLinearMultiModule`)
70
+ * accumulates unsupported-construct errors into its `ctx.errors` array; it
71
+ * surfaces them here so `compiler.ts` can fail the compile instead of
72
+ * emitting a structurally invalid binary (e.g. a stack-underflowing
73
+ * `local.set` after an unhandled `String.prototype.repeat`).
74
+ */
75
+ codegenErrors?: {
76
+ message: string;
77
+ line: number;
78
+ column: number;
79
+ severity?: "error" | "warning" | "degrade";
80
+ }[];
81
+ }
82
+ /** TS-level kind hint for a single export parameter or result (#1700). */
83
+ export type TypedArrayKind = "uint8array" | "typed-array" | "other";
84
+ export interface ExportSignature {
85
+ params: TypedArrayKind[];
86
+ result: TypedArrayKind;
87
+ }
88
+ export type TypeDef = FuncTypeDef | StructTypeDef | ArrayTypeDef | RecGroupDef | SubTypeDef;
89
+ export interface FuncTypeDef {
90
+ kind: "func";
91
+ name?: string;
92
+ params: ValType[];
93
+ results: ValType[];
94
+ }
95
+ export interface StructTypeDef {
96
+ kind: "struct";
97
+ name: string;
98
+ fields: FieldDef[];
99
+ /** Type index of the parent struct (for class inheritance sub-typing) */
100
+ superTypeIdx?: TypeHandle;
101
+ /** When true and superTypeIdx is set, emit sub_final instead of sub (leaf types in hierarchy) */
102
+ final?: boolean;
103
+ }
104
+ export interface ArrayTypeDef {
105
+ kind: "array";
106
+ name: string;
107
+ element: ValType;
108
+ mutable: boolean;
109
+ }
110
+ export interface RecGroupDef {
111
+ kind: "rec";
112
+ types: TypeDef[];
113
+ }
114
+ export interface SubTypeDef {
115
+ kind: "sub";
116
+ name: string;
117
+ superType: TypeHandle | null;
118
+ final: boolean;
119
+ type: StructTypeDef | ArrayTypeDef | FuncTypeDef;
120
+ }
121
+ export interface FieldDef {
122
+ name: string;
123
+ type: ValType;
124
+ mutable: boolean;
125
+ }
126
+ export type ValType = {
127
+ kind: "i32";
128
+ boolean?: true;
129
+ } | {
130
+ kind: "i64";
131
+ bigint?: boolean;
132
+ } | {
133
+ kind: "f32";
134
+ } | {
135
+ kind: "f64";
136
+ } | {
137
+ kind: "v128";
138
+ } | {
139
+ kind: "i8";
140
+ } | {
141
+ kind: "i16";
142
+ } | {
143
+ kind: "ref";
144
+ typeIdx: TypeHandle;
145
+ } | {
146
+ kind: "ref_null";
147
+ typeIdx: TypeHandle;
148
+ } | {
149
+ kind: "funcref";
150
+ } | {
151
+ kind: "externref";
152
+ } | {
153
+ kind: "ref_extern";
154
+ } | {
155
+ kind: "eqref";
156
+ } | {
157
+ kind: "anyref";
158
+ };
159
+ export interface WasmFunction {
160
+ name: string;
161
+ typeIdx: TypeHandle;
162
+ locals: LocalDef[];
163
+ body: Instr[];
164
+ exported: boolean;
165
+ }
166
+ export interface LocalDef {
167
+ name: string;
168
+ type: ValType;
169
+ }
170
+ /** Source position for source map generation */
171
+ export interface SourcePos {
172
+ file: string;
173
+ line: number;
174
+ column: number;
175
+ }
176
+ type InstrBase = {
177
+ op: "local.get";
178
+ index: number;
179
+ } | {
180
+ op: "local.set";
181
+ index: number;
182
+ } | {
183
+ op: "local.tee";
184
+ index: number;
185
+ } | {
186
+ op: "global.get";
187
+ index: GlobalHandle;
188
+ } | {
189
+ op: "global.set";
190
+ index: GlobalHandle;
191
+ } | {
192
+ op: "i32.const";
193
+ value: number;
194
+ } | {
195
+ op: "i64.const";
196
+ value: bigint;
197
+ } | {
198
+ op: "i64.add";
199
+ } | {
200
+ op: "i64.sub";
201
+ } | {
202
+ op: "i64.mul";
203
+ } | {
204
+ op: "i64.div_s";
205
+ } | {
206
+ op: "i64.div_u";
207
+ } | {
208
+ op: "i64.rem_s";
209
+ } | {
210
+ op: "i64.rem_u";
211
+ } | {
212
+ op: "i64.eq";
213
+ } | {
214
+ op: "i64.ne";
215
+ } | {
216
+ op: "i64.lt_s";
217
+ } | {
218
+ op: "i64.lt_u";
219
+ } | {
220
+ op: "i64.le_s";
221
+ } | {
222
+ op: "i64.le_u";
223
+ } | {
224
+ op: "i64.gt_s";
225
+ } | {
226
+ op: "i64.gt_u";
227
+ } | {
228
+ op: "i64.ge_s";
229
+ } | {
230
+ op: "i64.ge_u";
231
+ } | {
232
+ op: "i64.eqz";
233
+ } | {
234
+ op: "i64.and";
235
+ } | {
236
+ op: "i64.or";
237
+ } | {
238
+ op: "i64.xor";
239
+ } | {
240
+ op: "i64.shl";
241
+ } | {
242
+ op: "i64.shr_s";
243
+ } | {
244
+ op: "i64.shr_u";
245
+ } | {
246
+ op: "i64.extend_i32_s";
247
+ } | {
248
+ op: "i64.extend_i32_u";
249
+ } | {
250
+ op: "i64.trunc_f64_s";
251
+ } | {
252
+ op: "i64.reinterpret_f64";
253
+ } | {
254
+ op: "i32.reinterpret_f32";
255
+ } | {
256
+ op: "f32.reinterpret_i32";
257
+ } | {
258
+ op: "f64.convert_i64_s";
259
+ } | {
260
+ op: "f64.reinterpret_i64";
261
+ } | {
262
+ op: "f64.const";
263
+ value: number;
264
+ } | {
265
+ op: "f32.const";
266
+ value: number;
267
+ } | {
268
+ op: "i32.add";
269
+ } | {
270
+ op: "i32.sub";
271
+ } | {
272
+ op: "i32.mul";
273
+ } | {
274
+ op: "i32.eq";
275
+ } | {
276
+ op: "i32.ne";
277
+ } | {
278
+ op: "i32.lt_s";
279
+ } | {
280
+ op: "i32.le_s";
281
+ } | {
282
+ op: "i32.gt_s";
283
+ } | {
284
+ op: "i32.ge_s";
285
+ } | {
286
+ op: "i32.ge_u";
287
+ } | {
288
+ op: "i32.eqz";
289
+ } | {
290
+ op: "i32.and";
291
+ } | {
292
+ op: "i32.or";
293
+ } | {
294
+ op: "i32.xor";
295
+ } | {
296
+ op: "i32.shl";
297
+ } | {
298
+ op: "i32.shr_s";
299
+ } | {
300
+ op: "i32.shr_u";
301
+ } | {
302
+ op: "i32.clz";
303
+ } | {
304
+ op: "i32.wrap_i64";
305
+ } | {
306
+ op: "i32.trunc_f64_u";
307
+ } | {
308
+ op: "i32.trunc_sat_f64_s";
309
+ } | {
310
+ op: "i32.trunc_sat_f64_u";
311
+ } | {
312
+ op: "i64.trunc_sat_f64_s";
313
+ } | {
314
+ op: "f64.add";
315
+ } | {
316
+ op: "f64.sub";
317
+ } | {
318
+ op: "f64.mul";
319
+ } | {
320
+ op: "f64.div";
321
+ } | {
322
+ op: "f64.eq";
323
+ } | {
324
+ op: "f64.ne";
325
+ } | {
326
+ op: "f64.lt";
327
+ } | {
328
+ op: "f64.le";
329
+ } | {
330
+ op: "f64.gt";
331
+ } | {
332
+ op: "f64.ge";
333
+ } | {
334
+ op: "f64.sqrt";
335
+ } | {
336
+ op: "f64.abs";
337
+ } | {
338
+ op: "f64.neg";
339
+ } | {
340
+ op: "f64.floor";
341
+ } | {
342
+ op: "f64.ceil";
343
+ } | {
344
+ op: "f64.trunc";
345
+ } | {
346
+ op: "f64.nearest";
347
+ } | {
348
+ op: "f64.copysign";
349
+ } | {
350
+ op: "f64.min";
351
+ } | {
352
+ op: "f64.max";
353
+ } | {
354
+ op: "i32.trunc_f64_s";
355
+ } | {
356
+ op: "f64.convert_i32_s";
357
+ } | {
358
+ op: "f64.convert_i32_u";
359
+ } | {
360
+ op: "block";
361
+ blockType: BlockType;
362
+ body: Instr[];
363
+ } | {
364
+ op: "loop";
365
+ blockType: BlockType;
366
+ body: Instr[];
367
+ } | {
368
+ op: "if";
369
+ blockType: BlockType;
370
+ then: Instr[];
371
+ else?: Instr[];
372
+ } | {
373
+ op: "br";
374
+ depth: number;
375
+ } | {
376
+ op: "br_if";
377
+ depth: number;
378
+ } | {
379
+ op: "br_table";
380
+ } | {
381
+ op: "return";
382
+ } | {
383
+ op: "end";
384
+ } | {
385
+ op: "call";
386
+ funcIdx: FuncHandle;
387
+ } | {
388
+ op: "return_call";
389
+ funcIdx: FuncHandle;
390
+ } | {
391
+ op: "call_indirect";
392
+ typeIdx: TypeHandle;
393
+ tableIdx: number;
394
+ } | {
395
+ op: "drop";
396
+ } | {
397
+ op: "select";
398
+ } | {
399
+ op: "unreachable";
400
+ } | {
401
+ op: "nop";
402
+ } | {
403
+ op: "struct.new";
404
+ typeIdx: TypeHandle;
405
+ } | {
406
+ op: "struct.get";
407
+ typeIdx: TypeHandle;
408
+ fieldIdx: number;
409
+ } | {
410
+ op: "struct.set";
411
+ typeIdx: TypeHandle;
412
+ fieldIdx: number;
413
+ } | {
414
+ op: "array.new";
415
+ typeIdx: TypeHandle;
416
+ } | {
417
+ op: "array.new_fixed";
418
+ typeIdx: TypeHandle;
419
+ length: number;
420
+ } | {
421
+ op: "array.new_default";
422
+ typeIdx: TypeHandle;
423
+ } | {
424
+ op: "array.get";
425
+ typeIdx: TypeHandle;
426
+ } | {
427
+ op: "array.get_s";
428
+ typeIdx: TypeHandle;
429
+ } | {
430
+ op: "array.get_u";
431
+ typeIdx: TypeHandle;
432
+ } | {
433
+ op: "array.set";
434
+ typeIdx: TypeHandle;
435
+ } | {
436
+ op: "array.len";
437
+ } | {
438
+ op: "array.copy";
439
+ dstTypeIdx: TypeHandle;
440
+ srcTypeIdx: TypeHandle;
441
+ } | {
442
+ op: "array.fill";
443
+ typeIdx: TypeHandle;
444
+ } | {
445
+ op: "ref.null";
446
+ typeIdx: TypeHandle;
447
+ } | {
448
+ op: "ref.null.extern";
449
+ } | {
450
+ op: "ref.null.eq";
451
+ } | {
452
+ op: "ref.null.func";
453
+ } | {
454
+ op: "ref.is_null";
455
+ } | {
456
+ op: "ref.as_non_null";
457
+ } | {
458
+ op: "ref.cast";
459
+ typeIdx: TypeHandle;
460
+ } | {
461
+ op: "ref.cast_null";
462
+ typeIdx: TypeHandle;
463
+ } | {
464
+ op: "ref.test";
465
+ typeIdx: TypeHandle;
466
+ } | {
467
+ op: "ref.eq";
468
+ } | {
469
+ op: "ref.func";
470
+ funcIdx: FuncHandle;
471
+ } | {
472
+ op: "call_ref";
473
+ typeIdx: TypeHandle;
474
+ } | {
475
+ op: "return_call_ref";
476
+ typeIdx: TypeHandle;
477
+ } | {
478
+ op: "memory.size";
479
+ } | {
480
+ op: "memory.grow";
481
+ } | {
482
+ op: "try";
483
+ blockType: BlockType;
484
+ body: Instr[];
485
+ catches: CatchClause[];
486
+ catchAll?: Instr[];
487
+ } | {
488
+ op: "throw";
489
+ tagIdx: number;
490
+ } | {
491
+ op: "rethrow";
492
+ depth: number;
493
+ } | {
494
+ op: "any.convert_extern";
495
+ } | {
496
+ op: "extern.convert_any";
497
+ } | {
498
+ op: "i32.load";
499
+ align: number;
500
+ offset: number;
501
+ } | {
502
+ op: "i32.load8_u";
503
+ align: number;
504
+ offset: number;
505
+ } | {
506
+ op: "i32.load8_s";
507
+ align: number;
508
+ offset: number;
509
+ } | {
510
+ op: "i32.load16_u";
511
+ align: number;
512
+ offset: number;
513
+ } | {
514
+ op: "i32.store";
515
+ align: number;
516
+ offset: number;
517
+ } | {
518
+ op: "i64.store";
519
+ align: number;
520
+ offset: number;
521
+ } | {
522
+ op: "i32.store8";
523
+ align: number;
524
+ offset: number;
525
+ } | {
526
+ op: "i32.store16";
527
+ align: number;
528
+ offset: number;
529
+ } | {
530
+ op: "i32.div_u";
531
+ } | {
532
+ op: "i32.div_s";
533
+ } | {
534
+ op: "i32.rem_u";
535
+ } | {
536
+ op: "i32.rem_s";
537
+ } | {
538
+ op: "i32.lt_u";
539
+ } | {
540
+ op: "i32.le_u";
541
+ } | {
542
+ op: "i32.gt_u";
543
+ } | {
544
+ op: "f64.load";
545
+ align: number;
546
+ offset: number;
547
+ } | {
548
+ op: "f64.store";
549
+ align: number;
550
+ offset: number;
551
+ } | {
552
+ op: "f32.load";
553
+ align: number;
554
+ offset: number;
555
+ } | {
556
+ op: "f32.store";
557
+ align: number;
558
+ offset: number;
559
+ } | {
560
+ op: "f32.demote_f64";
561
+ } | {
562
+ op: "f64.promote_f32";
563
+ } | {
564
+ op: "v128.const";
565
+ bytes: Uint8Array;
566
+ } | {
567
+ op: "v128.load";
568
+ align: number;
569
+ offset: number;
570
+ } | {
571
+ op: "v128.store";
572
+ align: number;
573
+ offset: number;
574
+ } | {
575
+ op: "v128.not";
576
+ } | {
577
+ op: "v128.and";
578
+ } | {
579
+ op: "v128.andnot";
580
+ } | {
581
+ op: "v128.or";
582
+ } | {
583
+ op: "v128.xor";
584
+ } | {
585
+ op: "v128.bitselect";
586
+ } | {
587
+ op: "v128.any_true";
588
+ } | {
589
+ op: "i8x16.splat";
590
+ } | {
591
+ op: "i8x16.extract_lane_s";
592
+ lane: number;
593
+ } | {
594
+ op: "i8x16.extract_lane_u";
595
+ lane: number;
596
+ } | {
597
+ op: "i8x16.replace_lane";
598
+ lane: number;
599
+ } | {
600
+ op: "i8x16.eq";
601
+ } | {
602
+ op: "i8x16.ne";
603
+ } | {
604
+ op: "i8x16.all_true";
605
+ } | {
606
+ op: "i8x16.bitmask";
607
+ } | {
608
+ op: "i8x16.swizzle";
609
+ } | {
610
+ op: "i8x16.shuffle";
611
+ lanes: number[];
612
+ } | {
613
+ op: "i8x16.add";
614
+ } | {
615
+ op: "i8x16.sub";
616
+ } | {
617
+ op: "i8x16.min_u";
618
+ } | {
619
+ op: "i8x16.max_u";
620
+ } | {
621
+ op: "i16x8.splat";
622
+ } | {
623
+ op: "i16x8.extract_lane_s";
624
+ lane: number;
625
+ } | {
626
+ op: "i16x8.extract_lane_u";
627
+ lane: number;
628
+ } | {
629
+ op: "i16x8.replace_lane";
630
+ lane: number;
631
+ } | {
632
+ op: "i16x8.eq";
633
+ } | {
634
+ op: "i16x8.ne";
635
+ } | {
636
+ op: "i16x8.lt_s";
637
+ } | {
638
+ op: "i16x8.gt_s";
639
+ } | {
640
+ op: "i16x8.all_true";
641
+ } | {
642
+ op: "i16x8.bitmask";
643
+ } | {
644
+ op: "i16x8.add";
645
+ } | {
646
+ op: "i16x8.sub";
647
+ } | {
648
+ op: "i16x8.mul";
649
+ } | {
650
+ op: "i16x8.shl";
651
+ } | {
652
+ op: "i16x8.shr_u";
653
+ } | {
654
+ op: "i32x4.splat";
655
+ } | {
656
+ op: "i32x4.extract_lane";
657
+ lane: number;
658
+ } | {
659
+ op: "i32x4.replace_lane";
660
+ lane: number;
661
+ } | {
662
+ op: "i32x4.eq";
663
+ } | {
664
+ op: "i32x4.ne";
665
+ } | {
666
+ op: "i32x4.all_true";
667
+ } | {
668
+ op: "i32x4.bitmask";
669
+ } | {
670
+ op: "i32x4.add";
671
+ } | {
672
+ op: "i32x4.sub";
673
+ } | {
674
+ op: "i32x4.mul";
675
+ } | {
676
+ op: "i32x4.shl";
677
+ } | {
678
+ op: "i32x4.shr_s";
679
+ } | {
680
+ op: "i32x4.shr_u";
681
+ } | {
682
+ op: "i64x2.splat";
683
+ } | {
684
+ op: "i64x2.extract_lane";
685
+ lane: number;
686
+ } | {
687
+ op: "i64x2.replace_lane";
688
+ lane: number;
689
+ } | {
690
+ op: "i64x2.add";
691
+ } | {
692
+ op: "i64x2.sub";
693
+ } | {
694
+ op: "i64x2.mul";
695
+ } | {
696
+ op: "i64x2.eq";
697
+ } | {
698
+ op: "i64x2.ne";
699
+ } | {
700
+ op: "f32x4.splat";
701
+ } | {
702
+ op: "f32x4.extract_lane";
703
+ lane: number;
704
+ } | {
705
+ op: "f32x4.replace_lane";
706
+ lane: number;
707
+ } | {
708
+ op: "f32x4.eq";
709
+ } | {
710
+ op: "f32x4.add";
711
+ } | {
712
+ op: "f32x4.sub";
713
+ } | {
714
+ op: "f32x4.mul";
715
+ } | {
716
+ op: "f32x4.div";
717
+ } | {
718
+ op: "f64x2.splat";
719
+ } | {
720
+ op: "f64x2.extract_lane";
721
+ lane: number;
722
+ } | {
723
+ op: "f64x2.replace_lane";
724
+ lane: number;
725
+ } | {
726
+ op: "f64x2.eq";
727
+ } | {
728
+ op: "f64x2.ne";
729
+ } | {
730
+ op: "f64x2.add";
731
+ } | {
732
+ op: "f64x2.sub";
733
+ } | {
734
+ op: "f64x2.mul";
735
+ } | {
736
+ op: "f64x2.div";
737
+ } | {
738
+ op: "v128.load8_splat";
739
+ align: number;
740
+ offset: number;
741
+ } | {
742
+ op: "v128.load16_splat";
743
+ align: number;
744
+ offset: number;
745
+ } | {
746
+ op: "v128.load32_splat";
747
+ align: number;
748
+ offset: number;
749
+ } | {
750
+ op: "v128.load64_splat";
751
+ align: number;
752
+ offset: number;
753
+ } | {
754
+ op: "v128.load32_zero";
755
+ align: number;
756
+ offset: number;
757
+ } | {
758
+ op: "v128.load64_zero";
759
+ align: number;
760
+ offset: number;
761
+ };
762
+ export type Instr = InstrBase & {
763
+ sourcePos?: SourcePos;
764
+ };
765
+ export type BlockType = {
766
+ kind: "empty";
767
+ } | {
768
+ kind: "val";
769
+ type: ValType;
770
+ } | {
771
+ kind: "type";
772
+ typeIdx: TypeHandle;
773
+ };
774
+ export interface CatchClause {
775
+ tagIdx: number;
776
+ body: Instr[];
777
+ }
778
+ export interface TagDef {
779
+ name: string;
780
+ /** Type index of the tag's function signature (params = exception values) */
781
+ typeIdx: TypeHandle;
782
+ }
783
+ export interface Import {
784
+ module: string;
785
+ name: string;
786
+ desc: ImportDesc;
787
+ }
788
+ export type ImportDesc = {
789
+ kind: "func";
790
+ typeIdx: TypeHandle;
791
+ } | {
792
+ kind: "table";
793
+ elementType: string;
794
+ min: number;
795
+ max?: number;
796
+ } | {
797
+ kind: "global";
798
+ type: ValType;
799
+ mutable: boolean;
800
+ } | {
801
+ kind: "memory";
802
+ min: number;
803
+ max?: number;
804
+ } | {
805
+ kind: "tag";
806
+ typeIdx: TypeHandle;
807
+ };
808
+ export interface WasmExport {
809
+ name: string;
810
+ desc: {
811
+ kind: "func" | "table" | "memory" | "global" | "tag";
812
+ index: number;
813
+ };
814
+ }
815
+ export interface Table {
816
+ elementType: string;
817
+ min: number;
818
+ max?: number;
819
+ }
820
+ export interface Element {
821
+ tableIdx: number;
822
+ offset: Instr[];
823
+ funcIndices: FuncHandle[];
824
+ }
825
+ export interface GlobalDef {
826
+ name: string;
827
+ type: ValType;
828
+ mutable: boolean;
829
+ init: Instr[];
830
+ }
831
+ export declare function createEmptyModule(): WasmModule;
832
+ export {};