是否可以在Jint中克隆或保存/恢复引擎状态?

时间:2018-04-13 12:27:26

标签: c# jint

我有相对较长的初始代码,然后我使用引擎执行一个可能影响引擎状态的语句。我想通过不重新执行初始代码来加快速度。

是否有可能:

  • 快速克隆整个状态或
  • 的引擎实例
  • 快速保存并恢复引擎状态?

    private void RunScript()
    {
        var engine = new Engine();
    
        //Please note I am executing this only once:
        engine.Execute(@"
            var globalCounter = 0;
            var increaseCounter = function() { globalCounter++; return globalCounter; };
            ");
    
        //What I need:
        //engine.MagicallySaveState();
    
        var result1 = engine.Execute("increaseCounter()").GetCompletionValue().AsNumber();
        //result1==1
    
        //What I need:
        //engine.MagicallyRestoreState();
    
        var result2 = engine.Execute("increaseCounter()").GetCompletionValue().AsNumber();
        //result2 should be still 1 and not 2 if Save/Restore works;
    
    }
    

0 个答案:

没有答案