Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
 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;
 }