public void Compile(string source, object external) { _dispatcher.BeginInvoke(new Action(() => { var engine = new Microsoft.ClearScript.V8.V8ScriptEngine(); engine.AddHostObject("external", external); engine.Execute(source); engine.Dispose(); }), DispatcherPriority.ApplicationIdle, null); }
public bool IsAvailable() { Trace.WriteLine("Checking to see if V8 is available"); if (V8ScriptEngine._isAvailable.HasValue) return V8ScriptEngine._isAvailable.Value; try { var engine = new Microsoft.ClearScript.V8.V8ScriptEngine(); engine.Dispose(); V8ScriptEngine._isAvailable = true; } catch (Exception) { V8ScriptEngine._isAvailable = false; } Trace.WriteLine(string.Format("V8 Engine is available: {0}", V8ScriptEngine._isAvailable.Value)); return V8ScriptEngine._isAvailable.Value; }