Un objet WebAssembly.Module contient du code WebAssembly, sans état et qui a déjà été compilé par le navigateur. Ce code peut être partagé avec des web worker et être instancié à plusieurs reprises. Pour instancier le module, on pourra appeler la forme secondaire de WebAssembly.instantiate().

Le constructeur WebAssembly.Module() peut être appelé de façon synchrone pour compiler du code WebAssembly. Toutefois, on utilisera généralement la fonction asynchrone WebAssembly.compile() qui permet de compiler du bytecode.

Syntaxe

Important : La compilation de modules volumineux peut être consommatrice de ressources et de temps. Le constructeur Module() doit uniqument être utilisé lorsqu'il faut absolument avoir une compilation  synchrone. Pour tous les autres cas de figures, on privilégiera la méthode asynchrone WebAssembly.compileStreaming().

var monModule = new WebAssembly.Module(bufferSource);

Paramètres

bufferSource
Un tableau typé ou un ArrayBuffer qui contient le bytecode du module WebAssembly qu'on souhaite compiler.

Méthodes du constructeur Module

WebAssembly.Module.customSections()
Pour un module donné et une chaîne de caractères donnée, cette méthode renvoie une copie des sections personnalisées (custom sections) du module qui ont le nom correspondant à la chaîne.
WebAssembly.Module.exports()
Pour un module donné, cette méthode renvoie un tableau dont les éléments sont des descriptions des exports déclarés.
WebAssembly.Module.imports()
Pour un module donné, cette méthode renvoie un tableau dont les éléments sont des descriptions des imports déclarés.

Instances de Module

Toutes les instances de Module héritent du prototype du constructeur Module(), celui-ci peut être modifié afin de moifier le comportement de l'ensemble des instances de Module.

Propriétés

Module.prototype.constructor
Renvoie la fonction qui a créé l'instance de l'objet. Par défaut, c'est le constructeur WebAssembly.Module().
Module.prototype[@@toStringTag]
La valeur initiale de la propriété @@toStringTag est la chaîne de caractères "WebAssembly.Module".

Méthodes

Les instances de Module ne disposent pas de méthodes en propre.

Spécifications

Spécification État Commentaires
WebAssembly JavaScript Interface
La définition de 'WebAssembly.Module()' dans cette spécification.
Version de travail Brouillon de définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Edge Mobile Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the Experimental JavaScript Features preference.
Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0
customSectionsChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Edge Mobile Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the Experimental JavaScript Features preference.
Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0
exportsChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Edge Mobile Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the Experimental JavaScript Features preference.
Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0
importsChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Edge Mobile Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the Experimental JavaScript Features preference.
Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0
prototypeChrome Support complet 57Edge Support complet 16Firefox Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
IE Aucun support NonOpera Support complet 44Safari Support complet 11WebView Android Support complet 57Chrome Android Support complet 57Edge Mobile Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the Experimental JavaScript Features preference.
Firefox Android Support complet 52
Notes
Support complet 52
Notes
Notes Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Support complet 11Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,