WASM Table
Une WASM Table est la table de références de fonctions de WebAssembly, stockant des références pour les appels indirects (call_indirect), implémentant pointeurs de fonctions et vtables.
Objectif
Donner à WASM un mécanisme sûr de pointeurs de fonctions prenant en charge appels indirects et distribution dynamique (pointeurs de fonctions C, vtables C++).
Mécanisme
new WebAssembly.Table({element:funcanyref, initial, maximum}) crée la table de références ; get/set les lisent et écrivent. call_indirect appelle une fonction de la table par index. Les vérifications de type empêchent d'appeler des fonctions aux signatures incorrectes.
Cas d’usage
- Pointeurs de fonctions WASM
- Portage des vtables C++
- Appels indirects