|
|
1
0
WebAssembly模块在三个不同的位置保存变量状态:
如果我想实现这一点,我会在WebAssembly中创建自己的状态机,将其存储在线性内存中的已知位置。 |
|
|
2
0
Wasm被组织成模块,模块定义了四种相关的实体:函数、内存、表、全局。代码在函数中,其他三个表示模块的状态。
因此,模拟代码交换的一种方法是设置模块,使所有三个状态都在外部创建,并且 进口的 进入模块。这样,您就可以在外部保持它们的活动状态,并在它们可用时将其传递给升级后的模块。(您还需要确保升级后的模块不使用数据/元素段或启动函数,以覆盖预先存在的状态。) 当然,只有当模块状态的形状在升级之间没有改变时,这才起作用。E、 例如,没有新的全局变量,内存中没有新的数据布局,否则新代码将无法理解旧状态。 那个 |