- Learn WebAssembly
- Mike Rourke
- 322字
- 2021-08-13 15:38:53
Module sections
A module is made up of several sections, some of which you'll be interacting with through the JavaScript API:
- Imports (import) are elements that can be accessed within the module and can be one of the following:
- Function, which can be called inside the module using the call operator
- Global, which can be accessed inside the module via the global operators
- Linear Memory, which can be accessed inside the module via the memory operators
- Table, which can be accessed inside the module using call_indirect
- Exports (export) are elements that can be accessed by the consuming API (that is, called by a JavaScript function)
- Module start function (start) is called after the module instance is initialized
- Global (global) contains the internal definition of global variables
- Linear memory (memory) contains the internal definition of linear memory with an initial memory size and optional maximum size
- Data (data) contains an array of data segments which specify the initial contents of fixed ranges of a given memory
- Table (table) is a linear memory whose elements are opaque values of a particular table element type:
- In the MVP, its primary purpose is to implement indirect function calls in C/C++
- Elements (elements) is a section that allows a module to initialize the elements of any import or internally defined table with any other definition in the module
- Function and code:
- The function section declares the signatures of each internal function defined in the module
- The code section contains the function body of each function declared by the function section
Some of the keywords (import, export, and so on) should look familiar; they're present in the contents of the Wat file in the previous section. WebAssembly's components follow a logical mapping that directly correspond to the APIs (for example, you pass a memory and table instance into JavaScript's WebAssembly.instantiate() function). Your primary interaction with a module in binary format will be through these APIs.
推薦閱讀
- 企業(yè)級Java EE架構(gòu)設計精深實踐
- Learning Docker
- Vue.js 2 and Bootstrap 4 Web Development
- 云計算通俗講義(第3版)
- 假如C語言是我發(fā)明的:講給孩子聽的大師編程課
- Troubleshooting PostgreSQL
- The Complete Coding Interview Guide in Java
- Learning Unity 2D Game Development by Example
- Android Wear Projects
- Hadoop 2.X HDFS源碼剖析
- FFmpeg開發(fā)實戰(zhàn):從零基礎到短視頻上線
- Web程序設計:ASP.NET(第2版)
- Clojure Polymorphism
- .NET 4.0面向?qū)ο缶幊搪劊簯闷?/a>
- Python Programming for Arduino