コード例 #1
0
        protected override void InnerExecute(string code, string documentName)
        {
            string uniqueDocumentName           = _documentNameManager.GetUniqueName(documentName);
            OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);

            lock (_executionSynchronizer)
            {
                try
                {
                    _jsEngine.Execute(code, parserOptions);
                }
                catch (OriginalParserException e)
                {
                    throw WrapParserException(e);
                }
                catch (OriginalRuntimeException e)
                {
                    throw WrapRuntimeException(e);
                }
                catch (TimeoutException e)
                {
                    throw WrapTimeoutException(e);
                }
            }
        }
コード例 #2
0
        protected override object InnerEvaluate(string expression, string documentName)
        {
            object result;
            string uniqueDocumentName           = _documentNameManager.GetUniqueName(documentName);
            OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);

            lock (_executionSynchronizer)
            {
                OriginalValue resultValue;

                try
                {
                    resultValue = _jsEngine.Execute(expression, parserOptions).GetCompletionValue();
                }
                catch (OriginalParserException e)
                {
                    throw WrapParserException(e);
                }
                catch (OriginalRuntimeException e)
                {
                    throw WrapRuntimeException(e);
                }
                catch (TimeoutException e)
                {
                    throw WrapTimeoutException(e);
                }

                result = MapToHostType(resultValue);
            }

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Creates a Esprima .NET parser options with document name and special settings for the Jint
        /// </summary>
        /// <param name="documentName">Document name</param>
        /// <returns>Esprima .NET parser options with document name and special settings for the Jint</returns>
        private static OriginalParserOptions CreateParserOptions(string documentName)
        {
            var parserOptions = new OriginalParserOptions(documentName)
            {
                AdaptRegexp = true,
                Tolerant    = true
            };

            return(parserOptions);
        }
コード例 #4
0
        protected override IPrecompiledScript InnerPrecompile(string code, string documentName)
        {
            OriginalParsedScript parsedScript;
            string uniqueDocumentName           = _documentNameManager.GetUniqueName(documentName);
            OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);

            try
            {
                var parser = new OriginalParser(code, parserOptions);
                parsedScript = parser.ParseScript();
            }
            catch (OriginalParserException e)
            {
                throw WrapParserException(e);
            }

            return(new JintPrecompiledScript(parsedScript));
        }
コード例 #5
0
        protected override object InnerEvaluate(string expression, string documentName)
        {
            object result;
            string uniqueDocumentName           = _documentNameManager.GetUniqueName(documentName);
            OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);

            lock (_executionSynchronizer)
            {
                OriginalValue resultValue;

                try
                {
                    resultValue = _jsEngine.Execute(expression, parserOptions).GetCompletionValue();
                }
                catch (OriginalParserException e)
                {
                    throw WrapParserException(e);
                }
                catch (OriginalJavaScriptException e)
                {
                    throw WrapJavaScriptException(e);
                }
                catch (OriginalMemoryLimitExceededException e)
                {
                    throw WrapMemoryLimitExceededException(e);
                }
                catch (OriginalRecursionDepthOverflowException e)
                {
                    throw WrapRecursionDepthOverflowException(e);
                }
                catch (OriginalStatementsCountOverflowException e)
                {
                    throw WrapStatementsCountOverflowException(e);
                }
                catch (TimeoutException e)
                {
                    throw WrapTimeoutException(e);
                }

                result = MapToHostType(resultValue);
            }

            return(result);
        }
コード例 #6
0
        protected override void InnerExecute(string code, string documentName)
        {
            string uniqueDocumentName           = _documentNameManager.GetUniqueName(documentName);
            OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);

            lock (_executionSynchronizer)
            {
                try
                {
                    _jsEngine.Execute(code, parserOptions);
                }
                catch (OriginalParserException e)
                {
                    throw WrapParserException(e);
                }
                catch (OriginalJavaScriptException e)
                {
                    throw WrapJavaScriptException(e);
                }
                catch (OriginalMemoryLimitExceededException e)
                {
                    throw WrapMemoryLimitExceededException(e);
                }
                catch (OriginalRecursionDepthOverflowException e)
                {
                    throw WrapRecursionDepthOverflowException(e);
                }
                catch (OriginalStatementsCountOverflowException e)
                {
                    throw WrapStatementsCountOverflowException(e);
                }
                catch (TimeoutException e)
                {
                    throw WrapTimeoutException(e);
                }
            }
        }