22using System . Collections . Generic ;
33using System . Text ;
44
5+ using Jint ;
56using IOriginalCallable = Jint . Native . ICallable ;
67using OriginalEngine = Jint . Engine ;
78using OriginalJavaScriptException = Jint . Runtime . JavaScriptException ;
89using OriginalObjectInstance = Jint . Native . Object . ObjectInstance ;
9- using OriginalParser = Jint . Parser . JavaScriptParser ;
10- using OriginalParserException = Jint . Parser . ParserException ;
11- using OriginalParserOptions = Jint . Parser . ParserOptions ;
12- using OriginalProgram = Jint . Parser . Ast . Program ;
10+ using OriginalParser = Esprima . JavaScriptParser ;
11+ using OriginalParserException = Esprima . ParserException ;
12+ using OriginalParserOptions = Esprima . ParserOptions ;
13+ using OriginalProgram = Esprima . Ast . Program ;
1314using OriginalRecursionDepthOverflowException = Jint . Runtime . RecursionDepthOverflowException ;
1415using OriginalStatementsCountOverflowException = Jint . Runtime . StatementsCountOverflowException ;
1516using OriginalTypeReference = Jint . Runtime . Interop . TypeReference ;
@@ -45,7 +46,7 @@ public sealed class JintJsEngine : JsEngineBase
4546 /// <summary>
4647 /// Version of original JS engine
4748 /// </summary>
48- private const string EngineVersion = "2.11.58 " ;
49+ private const string EngineVersion = "3.0.0 Beta 1598 " ;
4950
5051 /// <summary>
5152 /// Jint JS engine
@@ -103,6 +104,18 @@ public JintJsEngine(JintSettings settings)
103104 }
104105
105106
107+ private OriginalParserOptions CreateParserOptions ( string source )
108+ {
109+ var parserOptions = new OriginalParserOptions ( source )
110+ {
111+ AdaptRegexp = true ,
112+ Tolerant = true ,
113+ Loc = true
114+ } ;
115+
116+ return parserOptions ;
117+ }
118+
106119 #region Mapping
107120
108121 /// <summary>
@@ -151,7 +164,7 @@ private static WrapperCompilationException WrapParserException(OriginalParserExc
151164 {
152165 string description = originalParserException . Description ;
153166 string type = JsErrorType . Syntax ;
154- string documentName = originalParserException . Source ;
167+ string documentName = originalParserException . SourceText ;
155168 int lineNumber = originalParserException . LineNumber ;
156169 int columnNumber = originalParserException . Column ;
157170 string message = JsErrorHelpers . GenerateScriptErrorMessage ( type , description , documentName , lineNumber ,
@@ -319,12 +332,9 @@ protected override IPrecompiledScript InnerPrecompile(string code, string docume
319332 {
320333 try
321334 {
322- var parserOptions = new OriginalParserOptions
323- {
324- Source = uniqueDocumentName
325- } ;
326- var parser = new OriginalParser ( ) ;
327- program = parser . Parse ( code , parserOptions ) ;
335+ var parserOptions = CreateParserOptions ( uniqueDocumentName ) ;
336+ var parser = new OriginalParser ( code , parserOptions ) ;
337+ program = parser . ParseProgram ( ) ;
328338 }
329339 catch ( OriginalParserException e )
330340 {
@@ -351,10 +361,7 @@ protected override object InnerEvaluate(string expression, string documentName)
351361
352362 try
353363 {
354- var parserOptions = new OriginalParserOptions
355- {
356- Source = uniqueDocumentName
357- } ;
364+ var parserOptions = CreateParserOptions ( uniqueDocumentName ) ;
358365 resultValue = _jsEngine . Execute ( expression , parserOptions ) . GetCompletionValue ( ) ;
359366 }
360367 catch ( OriginalParserException e )
@@ -409,10 +416,7 @@ protected override void InnerExecute(string code, string documentName)
409416 {
410417 try
411418 {
412- var parserOptions = new OriginalParserOptions
413- {
414- Source = uniqueDocumentName
415- } ;
419+ var parserOptions = CreateParserOptions ( uniqueDocumentName ) ;
416420 _jsEngine . Execute ( code , parserOptions ) ;
417421 }
418422 catch ( OriginalParserException e )
0 commit comments