protected override IPrecompiledScript InnerPrecompile(string code, string documentName)
        {
            OriginalCompiledScript compiledScript;
            string uniqueDocumentName = GetUniqueDocumentName(documentName, false);

            lock (_executionSynchronizer)
            {
                try
                {
                    var source = new OriginalStringScriptSource(code, uniqueDocumentName);
                    compiledScript = _jsEngine.Compile(source);
                }
                catch (OriginalSyntaxException e)
                {
                    throw WrapSyntaxException(e);
                }
            }

            return(new JurassicPrecompiledScript(compiledScript));
        }
示例#2
0
        public bool JurassicCompiled(Parameter parameter)
        {
            Jurassic.ScriptEngine engine = new Jurassic.ScriptEngine();

            Jurassic.CompiledScript compiledScript = engine.Compile(new Jurassic.StringScriptSource("n = " + EXPRESSION));

            List <int> results = new List <int>(parameter.Numbers.Length);

            foreach (int number in parameter.Numbers)
            {
                engine.SetGlobalValue("n", number);

                compiledScript.Execute(engine);

                int result = engine.GetGlobalValue <int>("n");

                results.Add(result);
            }

            return(Assert(results, parameter.Sum));
        }