Esempio n. 1
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.Evaluate(expression, parserOptions);
                }
                catch (OriginalParserException e)
                {
                    throw WrapParserException(e);
                }
                catch (OriginalRuntimeException e)
                {
                    throw WrapRuntimeException(e);
                }
                catch (TimeoutException e)
                {
                    throw WrapTimeoutException(e);
                }

                result = MapToHostType(resultValue);
            }

            return(result);
        }