private void onDebugEvent(JavaScriptDiagDebugEvent debugEvent, JavaScriptValue eventData, IntPtr callbackState) { if (IsDebugging) { string data = null; if (eventData.IsValid) { data = eventData.ToJsonString(); } OnDebugEvent?.Invoke(this, new DebugEventArguments() { EventType = debugEvent, EventData = data }); switch (debugEvent) { case JavaScriptDiagDebugEvent.JsDiagDebugEventSourceCompile: OnScriptLoad?.Invoke(this, JsonConvert.DeserializeObject <SourceCode>(data)); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventRuntimeException: runner.With(() => { OnException(this, JsonConvert.DeserializeObject <RuntimeException>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventStepComplete: runner.With(() => { OnStepComplete(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventBreakpoint: runner.With(() => { OnBreakPoint(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventAsyncBreak: runner.With(() => { OnAsyncBreak(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; default: break; } } else { throw new InvalidOperationException("Invalid internal state, debug evnet occured while debug is turned off"); } }
private void onDebugEvent(JavaScriptDiagDebugEvent debugEvent, JavaScriptValue eventData, IntPtr callbackState) { if (IsDebugging) { string data = null; if (eventData.IsValid) { data = eventData.ToJsonString(); } //DebugEngine engine; //runner.With(() => //{ OnDebugEvent?.Invoke(this, new DebugEventArguments() { EventType = debugEvent, EventData = data }); //}); switch (debugEvent) { case JavaScriptDiagDebugEvent.JsDiagDebugEventSourceCompile: OnScriptLoad?.Invoke(this, JsonConvert.DeserializeObject <SourceCode>(data)); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventRuntimeException: runner.With(() => { OnException?.Invoke(this, JsonConvert.DeserializeObject <RuntimeException>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventStepComplete: runner.With(() => { OnStepComplete?.Invoke(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventBreakpoint: runner.With(() => { OnBreakPoint?.Invoke(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; case JavaScriptDiagDebugEvent.JsDiagDebugEventAsyncBreak: runner.With(() => { OnAsyncBreak?.Invoke(this, JsonConvert.DeserializeObject <BreakPoint>(data)); stepASE.WaitOne(); }); break; default: break; } } }