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); } } }
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); }
/// <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); }
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)); }
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); }
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); } } }