@@ -16,6 +16,8 @@ new ModuleBuilder(name: string, options?: ModuleBuilderOptions)
1616| --------| ------| ---------| -------------|
1717| ` generateNameSection ` | ` boolean ` | ` true ` | Include debug name section in output |
1818| ` disableVerification ` | ` boolean ` | ` false ` | Skip control flow and operand stack verification |
19+ | ` target ` | ` WasmTarget ` | ` 'latest' ` | WebAssembly target: ` 'mvp' ` , ` '2.0' ` , ` '3.0' ` , or ` 'latest' ` |
20+ | ` features ` | ` WasmFeature[] ` | ` [] ` | Additional feature flags beyond those included by the target |
1921
2022### Methods
2123
@@ -49,7 +51,7 @@ importFunction(
4951): ImportBuilder
5052
5153// Import memory
52- importMemory (module : string , name : string , initial : number , maximum ?: number ): void
54+ importMemory (module : string , name : string , initial : number , maximum ?: number , shared ?: boolean ): ImportBuilder
5355
5456// Import a table
5557importTable (
@@ -69,6 +71,13 @@ importGlobal(
6971): ImportBuilder
7072```
7173
74+ #### Tags
75+
76+ ``` typescript
77+ // Define an exception tag
78+ defineTag (parameters : ValueType []): TagBuilder
79+ ```
80+
7281#### Exports
7382
7483``` typescript
@@ -81,7 +90,7 @@ exportGlobal(global: GlobalBuilder, name: string): void
8190#### Memory
8291
8392``` typescript
84- defineMemory (initial : number , maximum ?: number ): MemoryBuilder
93+ defineMemory (initial : number , maximum ?: number , shared ?: boolean , memory64 ?: boolean ): MemoryBuilder
8594defineData (data : Uint8Array , offset : number ): DataSegmentBuilder
8695```
8796
@@ -96,6 +105,13 @@ defineTableSegment(
96105): ElementSegmentBuilder
97106```
98107
108+ #### Passive Element Segments
109+
110+ ``` typescript
111+ // Define a passive element segment (for use with table.init)
112+ definePassiveElementSegment (elements : FunctionBuilder []): ElementSegmentBuilder
113+ ```
114+
99115#### Globals
100116
101117``` typescript
@@ -121,6 +137,13 @@ instantiate(imports?: WebAssembly.Imports): Promise<WebAssembly.WebAssemblyInsta
121137toString (): string
122138```
123139
140+ #### Feature Checking
141+
142+ ``` typescript
143+ // Check if a feature is enabled for this module
144+ hasFeature (feature : WasmFeature ): boolean
145+ ```
146+
124147---
125148
126149## FunctionBuilder
@@ -281,6 +304,50 @@ select(): void
281304nop (): void
282305` ` `
283306
307+ ### Tail Calls
308+
309+ ` ` ` typescript
310+ return_call (target : FunctionBuilder | ImportBuilder ): void
311+ return_call_indirect (funcType : FuncTypeBuilder ): void
312+ ` ` `
313+
314+ ### Atomic Operations
315+
316+ ` ` ` typescript
317+ // Load/store (alignment and offset immediates)
318+ atomic_load_i32 (align : number , offset : number ): void
319+ atomic_load_i64 (align : number , offset : number ): void
320+ atomic_store_i32 (align : number , offset : number ): void
321+ atomic_store_i64 (align : number , offset : number ): void
322+
323+ // Read-modify-write
324+ atomic_rmw_add_i32 (align : number , offset : number ): void
325+ atomic_rmw_sub_i32 (align : number , offset : number ): void
326+ atomic_rmw_and_i32 (align : number , offset : number ): void
327+ atomic_rmw_or_i32 (align : number , offset : number ): void
328+ atomic_rmw_xor_i32 (align : number , offset : number ): void
329+ atomic_rmw_xchg_i32 (align : number , offset : number ): void
330+ atomic_rmw_cmpxchg_i32 (align : number , offset : number ): void
331+ // Same patterns for i64 variants
332+
333+ // Synchronization
334+ atomic_fence (flags : number ): void
335+ atomic_notify (align : number , offset : number ): void
336+ atomic_wait32 (align : number , offset : number ): void
337+ atomic_wait64 (align : number , offset : number ): void
338+ ` ` `
339+
340+ ### Exception Handling
341+
342+ ` ` ` typescript
343+ throw (tagIndex : number ): void
344+ try (blockType : BlockType ): void
345+ catch (tagIndex : number ): void
346+ catch_all (): void
347+ rethrow (depth : number ): void
348+ delegate (depth : number ): void
349+ ` ` `
350+
284351---
285352
286353## GlobalBuilder
@@ -378,6 +445,7 @@ ValueType.Int32 // i32
378445ValueType .Int64 // i64
379446ValueType .Float32 // f32
380447ValueType .Float64 // f64
448+ ValueType .V128 // v128 (128-bit SIMD vector)
381449```
382450
383451### BlockType
@@ -388,6 +456,7 @@ BlockType.Int32 // block produces an i32
388456BlockType .Int64 // block produces an i64
389457BlockType .Float32 // block produces an f32
390458BlockType .Float64 // block produces an f64
459+ BlockType .V128 // block produces a v128
391460```
392461
393462### ElementType
@@ -404,3 +473,21 @@ ExternalKind.Table
404473ExternalKind .Memory
405474ExternalKind .Global
406475```
476+
477+ ### WasmTarget
478+
479+ ``` typescript
480+ ' mvp' // WebAssembly 1.0 — no extensions
481+ ' 2.0' // WebAssembly 2.0 — widely deployed post-MVP features
482+ ' 3.0' // WebAssembly 3.0 — all standardized features
483+ ' latest' // Everything in 3.0 + newly standardized extensions (default)
484+ ```
485+
486+ ### WasmFeature
487+
488+ ``` typescript
489+ ' sign-extend' | ' sat-trunc' | ' bulk-memory' | ' reference-types' | ' simd'
490+ | ' multi-value' | ' mutable-globals' | ' tail-call' | ' extended-const'
491+ | ' threads' | ' exception-handling' | ' multi-memory' | ' multi-table'
492+ | ' relaxed-simd' | ' memory64' | ' gc'
493+ ```
0 commit comments