第0章 WebAssembly诞生背景 1
0.1 JavaScript简史 1
0.2 asm.js的尝试 2
0.3 WebAssembly的救赎 5
第 1章 JavaScript语言基础 7
1.1 console对象 7
1.2 函数和闭包 9
1.3 Promise对象 12
1.4 二进制数组 13
第 2章 WebAssembly快速入门 17
2.1 准备工作 17
2.2 首个例程 21
2.3 WebAssembly概览 22
2.4 你好,WebAssembly 25
2.5 WebAssembly调试及代码编辑环境 28
第3章 JavaScript中的WebAssembly对象 31
3.1 WebAssembly对象简介 31
3.2 全局方法 32
3.3 WebAssembly.Module对象 36
3.4 WebAssembly.Instance对象 41
3.5 WebAssembly.Memory对象 44
3.6 WebAssembly.Table对象 50
3.7 小结及错误类型 61
第4章 WebAssembly汇编语言 65
4.1 S-表达式 65
4.2 数据类型 66
4.3 函数定义 67
4.4 变量 69
4.5 栈式虚拟机 72
4.6 函数调用 75
4.7 内存读写 79
4.8 控制流 83
4.9 导入和导出 91
4.10 start()函数及指令折叠 96
第5章 WebAssembly二进制格式 99
5.1 LEB128编码 99
5.2 头部和段数据 101
5.3 内存段和数据段 104
5.4 表格段和元素段 106
5.5 开始段和函数索引 108
5.6 全局段 111
5.7 函数段、代码段和类型段 113
5.8 导入段和导出段 118
5.9 自定义段 121
5.10 补充说明 126
第6章 Emscripten和WebAssembly 127
6.1 安装环境 127
6.2 你好,Emscripten! 129
6.3 C/C++内联JavaScript代码 133
6.4 C/C++调用JavaScript函数 139
6.5 JavaScript调用C导出函数 149
6.6 运行时和消息循环 155
6.7 补充说明 162
第7章 Go语言和WebAssembly 163
7.1 你好,Go语言 163
7.2 浏览器中的Go语言 166
7.3 使用JavaScript函数 168
7.4 回调Go函数 170
7.5 syscall/js包 172
7.6 WebAssembly模块的导入函数 175
7.7 WebAssembly虚拟机 178
7.8 补充说明 180
附录 指令参考 181