private static void ScheduleScriptInterruptedException(StdString.Ptr pEngineName, StdString.Ptr pMessage, StdString.Ptr pStackTrace, bool isFatal, bool executionStarted, V8Value.Ptr pScriptException, V8Value.Ptr pInnerException) { Debug.Assert(ScheduledException == null); var scriptException = ScriptEngine.Current?.MarshalToHost(V8Value.Get(pScriptException), false); var innerException = V8ProxyHelpers.MarshalExceptionToHost(V8Value.Get(pInnerException)); ScheduledException = new ScriptInterruptedException(StdString.GetValue(pEngineName), StdString.GetValue(pMessage), StdString.GetValue(pStackTrace), 0, isFatal, executionStarted, scriptException, innerException); }
private static void ScheduleForwardingException(V8Value.Ptr pException) { Debug.Assert(ScheduledException == null); var exception = V8ProxyHelpers.MarshalExceptionToHost(V8Value.Get(pException)); if (exception is ScriptEngineException scriptEngineException) { ScheduledException = new ScriptEngineException(scriptEngineException.EngineName, scriptEngineException.Message, scriptEngineException.ErrorDetails, scriptEngineException.HResult, scriptEngineException.IsFatal, scriptEngineException.ExecutionStarted, scriptEngineException.ScriptException, scriptEngineException); } else if (exception is ScriptInterruptedException scriptInterruptedException) { ScheduledException = new ScriptInterruptedException(scriptInterruptedException.EngineName, scriptInterruptedException.Message, scriptInterruptedException.ErrorDetails, scriptInterruptedException.HResult, scriptInterruptedException.IsFatal, scriptInterruptedException.ExecutionStarted, scriptInterruptedException.ScriptException, scriptInterruptedException); } else { ScheduledException = exception; } }