上一篇,我们通过内置解释器的方案,解决任意跳转的问题.同时,也提到另一个问题:如果指令发生变化,又该如何应对. 指令自改 如果指令加载到 RAM 中,那就和普通数据一样,也是可以随意修改的.然而,对应的 JS 是事先翻译好的,已经不能改了.如果运行时突然变卦,那相应的 JS 就作废了 -- 如果修改的是跳转指令,甚至会影响已划分的流程.所以为了保守起见,指令被改后进入模拟状态. 因此,我们得监控指令区的修改: function store(addr, val) { // 修改指令区 if (0x…