WebAssembly Tables

Learn about WebAssembly tables, their purpose, and how to use them.

Introduction to Tables

WebAssembly tables are used to store references to functions, allowing for indirect function calls and improving performance.

Declaring and Using Tables

Tables can be declared and used in WebAssembly modules using the `table` keyword.

// Example of declaring and using a table in WebAssembly (in Wat format)
(module
 (table $tbl2 funcref)
 (func $add (param $a i32) (param $b i32) (result i32)
 (i32.add (local.get $a) (local.get $b))
 )
 (func $sub (param $a i32) (param $b i32) (result i32)
 (i32.sub (local.get $a) (local.get $b))
 )
 (elem (table $tbl) (i32.const0) func $add $sub)
 (func (export "callTable") (param $index i32) (param $a i32) (param $b i32) (result i32)
 (call_indirect (type $funcType) (local.get $index) (local.get $a) (local.get $b))
 )
)

Interactive Table Example

Examples and Tutorials

For more information and examples on using WebAssembly tables, check out our tutorials and documentation.