Ejemplo n.º 1
0
        public void Execute(SaveFile saveFile, string folderPath, bool debuggingEnabled, int debuggingPort)
        {
            V8ScriptEngineFlags flag;

            if (debuggingEnabled)
            {
                flag = V8ScriptEngineFlags.EnableDebugging;
            }
            else
            {
                flag = V8ScriptEngineFlags.None;
            }
            if (_engine == null)
            {
                _engine = new V8ScriptEngine(flag, debuggingPort);
            }
            _engine.DocumentSettings.AccessFlags = DocumentAccessFlags.EnableFileLoading;
            _engine.AddHostObject("lib", new HostTypeCollection(typeof(SaveFile).Assembly));
            _engine.AddHostObject("nodes", saveFile.Nodes);
            _engine.AddHostObject("host", new HostFunctions());
            _engine.AddHostType(typeof(Enumerable));
            _engine.AddHostType(typeof(EnumerableExtensions));
            _engine.ExecuteDocument(Path.Combine(folderPath, "script.js"));
        }