/// <summary> /// Constructs an instance of the Chakra “Edge” JsRT engine /// </summary> /// <param name="enableDebugging">Flag for whether to enable script debugging features</param> public ChakraEdgeJsRtJsEngine(bool enableDebugging) : base(JsEngineMode.ChakraEdgeJsRt, enableDebugging) { _dispatcher.Invoke(() => { try { _jsRuntime = CreateJsRuntime(); _jsContext = _jsRuntime.CreateContext(); } catch (JsUsageException e) { string errorMessage; if (e.ErrorCode == JsErrorCode.WrongThread) { errorMessage = CommonStrings.Runtime_JsEnginesConflictOnMachine; } else { errorMessage = string.Format(CommonStrings.Runtime_EdgeJsEngineNotLoaded, e.Message); } throw new JsEngineLoadException(errorMessage, _engineModeName); } catch (Exception e) { throw new JsEngineLoadException( string.Format(CommonStrings.Runtime_EdgeJsEngineNotLoaded, e.Message), _engineModeName); } }); }
public override object Evaluate(string expression) { object result = InvokeScript(() => { EdgeJsValue resultValue = EdgeJsContext.RunScript(expression); return(MapToHostType(resultValue)); }); return(result); }
public override object Evaluate(string expression, string documentName) { object result = InvokeScript(() => { EdgeJsValue resultValue = EdgeJsContext.RunScript(expression, _jsSourceContext++, documentName); return(MapToHostType(resultValue)); }); return(result); }
internal static extern JsErrorCode JsContextRelease(EdgeJsContext reference, out uint count);
internal static extern JsErrorCode JsContextAddRef(EdgeJsContext reference, out uint count);
/// <summary> /// Initializes a new instance of the <see cref="EdgeJsScope"/> struct /// </summary> /// <param name="context">The context to create the scope for</param> public EdgeJsScope(EdgeJsContext context) { _disposed = false; _previousContext = EdgeJsContext.Current; EdgeJsContext.Current = context; }
public override void Execute(string code, string documentName) { InvokeScript(() => EdgeJsContext.RunScript(code, _jsSourceContext++, documentName)); }
internal static extern JsErrorCode JsContextRelease(EdgeJsContext reference, out uint count);
/// <summary> /// Initializes a new instance of the <see cref="EdgeJsScope"/> struct /// </summary> /// <param name="context">The context to create the scope for</param> public EdgeJsScope(EdgeJsContext context) { _disposedFlag = new StatedFlag(); _previousContext = EdgeJsContext.Current; EdgeJsContext.Current = context; }
internal static extern JsErrorCode JsSetCurrentContext(EdgeJsContext context);
internal static extern JsErrorCode JsGetRuntime(EdgeJsContext context, out EdgeJsRuntime runtime);
/// <summary> /// Initializes a new instance of the <see cref="EdgeJsScope"/> struct /// </summary> /// <param name="context">The context to create the scope for</param> public EdgeJsScope(EdgeJsContext context) { _disposedFlag = new StatedFlag(); _previousContext = EdgeJsContext.Current; EdgeJsContext.Current = context; }
internal static extern JsErrorCode JsSetCurrentContext(EdgeJsContext context);
internal static extern JsErrorCode JsGetCurrentContext(out EdgeJsContext currentContext);
internal static extern JsErrorCode JsCreateContext(EdgeJsRuntime runtime, out EdgeJsContext newContext);
internal static extern JsErrorCode JsCreateContext(EdgeJsRuntime runtime, out EdgeJsContext newContext);
public override void Execute(string code) { InvokeScript(() => EdgeJsContext.RunScript(code)); }
internal static extern JsErrorCode JsGetCurrentContext(out EdgeJsContext currentContext);
protected override void InnerStartDebugging() { EdgeJsContext.StartDebugging(); }
internal static extern JsErrorCode JsGetRuntime(EdgeJsContext context, out EdgeJsRuntime runtime);
internal static extern JsErrorCode JsContextAddRef(EdgeJsContext reference, out uint count);