Skip to content

Commit d5b51a4

Browse files
committed
In JavaScriptEngineSwitcher.ChakraCore now script error contains a full stack trace
1 parent 44bbc60 commit d5b51a4

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

NuGet/JavaScriptEngineSwitcher.ChakraCore/JavaScriptEngineSwitcher.ChakraCore.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This package does not contain the native implementations of ChakraCore. Therefor
2020
* JavaScriptEngineSwitcher.ChakraCore.Native.debian-x64
2121
* JavaScriptEngineSwitcher.ChakraCore.Native.osx-x64</description>
2222
<summary>JavaScriptEngineSwitcher.ChakraCore contains adapter `ChakraCoreJsEngine` (wrapper for the ChakraCore).</summary>
23-
<releaseNotes>Fixed a error causing a crash during finalization.</releaseNotes>
23+
<releaseNotes>Now script error contains a full stack trace.</releaseNotes>
2424
<copyright>Copyright (c) 2013-2017 Andrey Taritsyn - http://www.taritsyn.ru</copyright>
2525
<language>en-US</language>
2626
<tags>JavaScriptEngineSwitcher JavaScript ECMAScript ChakraCore</tags>

NuGet/JavaScriptEngineSwitcher.ChakraCore/readme.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
=============
3131
RELEASE NOTES
3232
=============
33-
Fixed a error causing a crash during finalization.
33+
Now script error contains a full stack trace.
3434

3535
=============
3636
DOCUMENTATION

src/JavaScriptEngineSwitcher.ChakraCore/ChakraCoreJsEngine.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -876,11 +876,20 @@ private static JsRuntimeException ConvertJsExceptionToJsRuntimeException(
876876
category = "Script error";
877877
JsValue errorValue = jsScriptException.Error;
878878

879-
JsValue messagePropertyValue = errorValue.GetProperty("message");
880-
string scriptMessage = messagePropertyValue.ConvertToString().ToString();
881-
if (!string.IsNullOrWhiteSpace(scriptMessage))
879+
JsPropertyId stackPropertyId = JsPropertyId.FromString("stack");
880+
if (errorValue.HasProperty(stackPropertyId))
882881
{
883-
message = string.Format("{0}: {1}", message.TrimEnd('.'), scriptMessage);
882+
JsValue stackPropertyValue = errorValue.GetProperty(stackPropertyId);
883+
message = stackPropertyValue.ConvertToString().ToString();
884+
}
885+
else
886+
{
887+
JsValue messagePropertyValue = errorValue.GetProperty("message");
888+
string scriptMessage = messagePropertyValue.ConvertToString().ToString();
889+
if (!string.IsNullOrWhiteSpace(scriptMessage))
890+
{
891+
message = string.Format("{0}: {1}", message.TrimEnd('.'), scriptMessage);
892+
}
884893
}
885894

886895
JsPropertyId linePropertyId = JsPropertyId.FromString("line");

0 commit comments

Comments
 (0)