private CompiledScript CompileScript(string script, string fileName) { IntPtr prelude = Js1.CompilePrelude(script, fileName, _loadModuleDelegate, _logDelegate); CompiledScript.CheckResult(prelude, disposeScriptOnException: true); return(new CompiledScript(prelude, fileName)); }
private CompiledScript CompileScript(string script, string fileName) { ScheduleTerminateExecution(); IntPtr prelude = Js1.CompilePrelude( script, fileName, _loadModuleDelegate, _enterCancellableRegion, _exitCancellableRegion, _logDelegate); CancelTerminateExecution(); CompiledScript.CheckResult(prelude, false, disposeScriptOnException: true); return(new CompiledScript(prelude, fileName)); }
private CompiledScript CompileScript(string script, string fileName) { try { var attempts = 3; var prelude = default(IntPtr); do { attempts--; try { ScheduleTerminateExecution(); prelude = Js1.CompilePrelude( script, fileName, _loadModuleDelegate, _enterCancellableRegion, _exitCancellableRegion, _logDelegate); CancelTerminateExecution(); CompiledScript.CheckResult(prelude, false, disposeScriptOnException: true); } catch (Js1Exception ex) { if (attempts > 0 && (ex.ErrorCode == -1 || ex.ErrorCode == -2)) { // timeouts Thread.Sleep(2000); } else { throw; } } } while (prelude == default(IntPtr)); return(new CompiledScript(prelude)); } catch (DllNotFoundException ex) { Log.Info("{0}\n{1}\n{2}", ex.ToString(), ex.Message, ex.StackTrace); throw new ApplicationException( "The projection subsystem failed to load a libjs1.so/js1.dll/... or one of its dependencies. The original error message is: " + ex.Message, ex); } }