上一篇 我们讨论了跳转指令,并实现「正跳转」的翻译,但最终困在「负跳转」上.而且,由于线程模型的差异,我们不能 1:1 的翻译,必须对流程进行一些改造. 当初之所以选择翻译,而不是模拟,就是出于性能考虑.但是,这并不意味绝对不能用模拟 -- 如果能用少量模拟,解决一些技术障碍,那也是值得的. 现在,我们尝试用模拟的方式,来控制流程. 流程模拟 JS 的流程控制,就好比排队:如果你不想排了,可以随时退出,大家都不介意:但是之后又想回来插队,这就不行了,你必须从头排起.所以,只能退出,不能插入. 插