public bool ClearScriptCompiled(Parameter parameter) { using (Microsoft.ClearScript.V8.V8ScriptEngine engine = new Microsoft.ClearScript.V8.V8ScriptEngine()) { Microsoft.ClearScript.V8.V8Script script = engine.Compile(EXPRESSION); List <int> results = new List <int>(parameter.Numbers.Length); foreach (int number in parameter.Numbers) { engine.Script["n"] = number; int result = Convert.ToInt32(engine.Evaluate(script)); results.Add(result); } return(Assert(results, parameter.Sum)); } }
protected override IPrecompiledScript InnerPrecompile(string code, string documentName) { var cacheKind = OriginalCacheKind.Code; byte[] cachedBytes; try { using (OriginalScript generalScript = _jsEngine.Compile(documentName, code, cacheKind, out cachedBytes)) { } } catch (OriginalException e) { throw WrapScriptEngineException(e); } return(new V8PrecompiledScript(code, cacheKind, cachedBytes, documentName)); }
protected override void InnerExecute(IPrecompiledScript precompiledScript) { var v8PrecompiledScript = precompiledScript as V8PrecompiledScript; if (v8PrecompiledScript == null) { throw new WrapperUsageException( string.Format(CoreStrings.Usage_CannotConvertPrecompiledScriptToInternalType, typeof(V8PrecompiledScript).FullName), Name, Version ); } bool cacheAccepted; try { using (OriginalScript script = _jsEngine.Compile(v8PrecompiledScript.DocumentName, v8PrecompiledScript.Code, v8PrecompiledScript.CacheKind, v8PrecompiledScript.CachedBytes, out cacheAccepted)) { if (!cacheAccepted) { throw new WrapperUsageException(Strings.Usage_PrecompiledScriptNotAccepted, Name, Version); } _jsEngine.Execute(script); } } catch (OriginalException e) { throw WrapScriptEngineException(e); } catch (OriginalInterruptedException e) { throw WrapScriptInterruptedException(e); } }
public ScriptRequest(Microsoft.ClearScript.V8.V8Script script, JSApplication application, Action <object> resultCallback, JSSession session = null) { Script = script; State = new State(this, application, session ?? new JSSession(), new StringBuilder()); ResultCallback = resultCallback; }