|
7 | 7 | using OriginalDebuggerEventHandler = Jint.Runtime.Debugger.DebugHandler.DebugEventHandler;
|
8 | 8 | using OriginalDebuggerStatementHandlingMode = Jint.Runtime.Debugger.DebuggerStatementHandling;
|
9 | 9 | using OriginalEngine = Jint.Engine;
|
| 10 | +using OriginalErrorPosition = Esprima.Position; |
10 | 11 | using OriginalExecutionCanceledException = Jint.Runtime.ExecutionCanceledException;
|
11 | 12 | using OriginalJavaScriptException = Jint.Runtime.JavaScriptException;
|
12 | 13 | using OriginalMemoryLimitExceededException = Jint.Runtime.MemoryLimitExceededException;
|
@@ -51,7 +52,7 @@ public sealed class JintJsEngine : JsEngineBase
|
51 | 52 | /// <summary>
|
52 | 53 | /// Version of original JS engine
|
53 | 54 | /// </summary>
|
54 |
| - private const string EngineVersion = "3.0.0 Beta 2038"; |
| 55 | + private const string EngineVersion = "3.0.0 Beta 2039"; |
55 | 56 |
|
56 | 57 | /// <summary>
|
57 | 58 | /// Jint JS engine
|
@@ -248,11 +249,12 @@ private WrapperRuntimeException WrapRuntimeException(OriginalRuntimeException or
|
248 | 249 | {
|
249 | 250 | var originalJavaScriptException = (OriginalJavaScriptException)originalRuntimeException;
|
250 | 251 | documentName = originalJavaScriptException.Location.Source;
|
251 |
| - lineNumber = originalJavaScriptException.LineNumber; |
252 |
| - columnNumber = originalJavaScriptException.Column + 1; |
| 252 | + OriginalErrorPosition errorPosition = originalJavaScriptException.Location.Start; |
| 253 | + lineNumber = errorPosition.Line; |
| 254 | + columnNumber = errorPosition.Column + 1; |
253 | 255 |
|
254 | 256 | ErrorLocationItem[] callStackItems = JintJsErrorHelpers.ParseErrorLocation(
|
255 |
| - originalJavaScriptException.StackTrace); |
| 257 | + originalJavaScriptException.JavaScriptStackTrace); |
256 | 258 | if (callStackItems.Length > 0)
|
257 | 259 | {
|
258 | 260 | JintJsErrorHelpers.FixErrorLocationItems(callStackItems);
|
@@ -708,19 +710,24 @@ public override void Dispose()
|
708 | 710 | {
|
709 | 711 | lock (_executionSynchronizer)
|
710 | 712 | {
|
711 |
| - if (_debuggerStepCallback != null) |
| 713 | + if (_jsEngine != null) |
712 | 714 | {
|
713 |
| - _jsEngine.DebugHandler.Step -= _debuggerStepCallback; |
714 |
| - _debuggerStepCallback = null; |
| 715 | + if (_debuggerStepCallback != null) |
| 716 | + { |
| 717 | + _jsEngine.DebugHandler.Step -= _debuggerStepCallback; |
| 718 | + } |
| 719 | + |
| 720 | + if (_debuggerBreakCallback != null) |
| 721 | + { |
| 722 | + _jsEngine.DebugHandler.Break -= _debuggerBreakCallback; |
| 723 | + } |
| 724 | + |
| 725 | + _jsEngine.Dispose(); |
| 726 | + _jsEngine = null; |
715 | 727 | }
|
716 | 728 |
|
717 |
| - if (_debuggerBreakCallback != null) |
718 |
| - { |
719 |
| - _jsEngine.DebugHandler.Break -= _debuggerBreakCallback; |
720 |
| - _debuggerBreakCallback = null; |
721 |
| - } |
722 |
| - |
723 |
| - _jsEngine = null; |
| 729 | + _debuggerStepCallback = null; |
| 730 | + _debuggerBreakCallback = null; |
724 | 731 | _cancellationConstraint = null;
|
725 | 732 |
|
726 | 733 | if (_cancellationTokenSource != null)
|
|
0 commit comments