/// <summary> /// Handles an exception /// </summary> /// <param name="ex"></param> public static void Handle(Exception ex) { // Default error handler simply logs error to console. // This can be replaced using phantom.onError = function(msg, trace) {} ContextError err = new ContextError(ex); Phantom._fireEvent("error", err.message, err.trace); }
/// <summary> /// Fires an event on the V8 context /// </summary> /// <param name="nickname"></param> /// <param name="args"></param> /// <returns></returns> public static object _fireEvent(string nickname, params object[] args) { if (Program.Context != null) { try { return(Program.Context.Run(String.Format("phantom.fireEvent('{0}',{1})", nickname, Utils.Serialize(args)), "phantom.fireEvent()")); } catch (Exception ex) { if (nickname == "error") { ContextError err = new ContextError(ex); ContextError.TraceData data = err.trace[0]; Console.error(String.Format("{0} ({1},{2}): {3}", data.file, data.line, data.col, err.message)); } else { Console.error(String.Format("Phantom.fireEvent('{0}'): {1}", nickname, ex.Message)); } } } return(null); }
/// <summary> /// Fires an event on the V8 context /// </summary> /// <param name="nickname"></param> /// <param name="args"></param> /// <returns></returns> public static object _fireEvent(string nickname, params object[] args) { if (Program.Context != null) { try { return Program.Context.Run(String.Format("phantom.fireEvent('{0}',{1})", nickname, Utils.Serialize(args)), "phantom.fireEvent()"); } catch (Exception ex) { if (nickname == "error") { ContextError err = new ContextError(ex); ContextError.TraceData data = err.trace[0]; Console.error(String.Format("{0} ({1},{2}): {3}", data.file, data.line, data.col, err.message)); } else Console.error(String.Format("Phantom.fireEvent('{0}'): {1}", nickname, ex.Message)); } } return null; }