Skip to content

Commit 7339f74

Browse files
committed
In JavaScriptEngineSwitcher.Jurassic:
1. Jurassic was updated to version of August 3, 2020; 2. In configuration settings was added one new non-standard property - `EnableHostCollectionsEmbeddingByValue` (default `false`).
1 parent 8d88aa4 commit 7339f74

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

src/JavaScriptEngineSwitcher.Jurassic/JavaScriptEngineSwitcher.Jurassic.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
99
<NoWarn>$(NoWarn);CS1591</NoWarn>
1010
<GenerateDocumentationFile>true</GenerateDocumentationFile>
11-
<Description>JavaScriptEngineSwitcher.Jurassic contains adapter `JurassicJsEngine` (wrapper for the Jurassic JavaScript Engine (http://github.com/paulbartrum/jurassic) version of February 24, 2018).</Description>
11+
<Description>JavaScriptEngineSwitcher.Jurassic contains adapter `JurassicJsEngine` (wrapper for the Jurassic JavaScript Engine (http://github.com/paulbartrum/jurassic) version of August 3, 2020).</Description>
1212
<PackageIcon>icon.png</PackageIcon>
1313
<PackageTags>JavaScriptEngineSwitcher;JavaScript;ECMAScript;Jurassic</PackageTags>
14-
<PackageReleaseNotes>Enabled a SourceLink.</PackageReleaseNotes>
14+
<PackageReleaseNotes>1. Jurassic was updated to version of August 3, 2020;
15+
2. In configuration settings of the Jurassic JS engine was added one new non-standard property - `EnableHostCollectionsEmbeddingByValue` (default `false`).</PackageReleaseNotes>
1516
</PropertyGroup>
1617

1718
<Import Project="../../build/common.props" />
@@ -20,7 +21,7 @@
2021
<Import Project="../../build/nuget-metadata.props" />
2122

2223
<ItemGroup>
23-
<PackageReference Include="Jurassic.Unofficial" Version="2018.2.24" />
24+
<PackageReference Include="Jurassic.Unofficial" Version="2020.8.3.1" />
2425

2526
<ProjectReference Include="../JavaScriptEngineSwitcher.Core/JavaScriptEngineSwitcher.Core.csproj" />
2627
</ItemGroup>

src/JavaScriptEngineSwitcher.Jurassic/JurassicJsEngine.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public sealed class JurassicJsEngine : JsEngineBase
4343
/// <summary>
4444
/// Version of original JS engine
4545
/// </summary>
46-
private const string EngineVersion = "Feb 24, 2018";
46+
private const string EngineVersion = "Aug 3, 2020";
4747

4848
/// <summary>
4949
/// Jurassic JS engine
@@ -81,10 +81,11 @@ public JurassicJsEngine(JurassicSettings settings)
8181
{
8282
_jsEngine = new OriginalEngine
8383
{
84+
CompatibilityMode = OriginalCompatibilityMode.Latest,
85+
DisableClrCollectionsExposingByValue = !jurassicSettings.EnableHostCollectionsEmbeddingByValue,
8486
#if !NETSTANDARD2_0
8587
EnableDebugging = jurassicSettings.EnableDebugging,
8688
#endif
87-
CompatibilityMode = OriginalCompatibilityMode.Latest,
8889
EnableExposedClrTypes = true,
8990
EnableILAnalysis = jurassicSettings.EnableIlAnalysis,
9091
ForceStrictMode = jurassicSettings.StrictMode
@@ -194,7 +195,7 @@ private static WrapperException WrapJavaScriptException(
194195
string messageWithCallStack = string.Empty;
195196
string description = message;
196197
string type = originalJavaScriptException.Name;
197-
string documentName = originalJavaScriptException.SourcePath;
198+
string documentName = originalJavaScriptException.SourcePath ?? string.Empty;
198199
int lineNumber = originalJavaScriptException.LineNumber;
199200
string callStack = string.Empty;
200201

@@ -231,6 +232,11 @@ private static WrapperException WrapJavaScriptException(
231232
{
232233
FixCallStackItems(callStackItems);
233234
callStack = JsErrorHelpers.StringifyErrorLocationItems(callStackItems);
235+
236+
if (string.IsNullOrWhiteSpace(documentName))
237+
{
238+
documentName = callStackItems[0].DocumentName;
239+
}
234240
}
235241
}
236242

src/JavaScriptEngineSwitcher.Jurassic/JurassicSettings.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,22 @@
55
/// </summary>
66
public sealed class JurassicSettings
77
{
8+
/// <summary>
9+
/// Gets or sets a flag for whether to enable conversion of host collections,
10+
/// that are passed or returned to script code, to script arrays
11+
/// </summary>
12+
/// <remarks>
13+
/// <para>This property does not allow the embedding of host collections by
14+
/// using a <see cref="JavaScriptEngineSwitcher.Core.IJsEngine.EmbedHostObject"/>
15+
/// method, it only affects the internal mechanisms of the Jurassic library.</para>
16+
/// </remarks>
17+
public bool EnableHostCollectionsEmbeddingByValue
18+
{
19+
get;
20+
set;
21+
}
822
#if !NETSTANDARD2_0
23+
924
/// <summary>
1025
/// Gets or sets a flag for whether to enable script debugging features
1126
/// (allows a generation of debug information)
@@ -15,8 +30,8 @@ public bool EnableDebugging
1530
get;
1631
set;
1732
}
18-
1933
#endif
34+
2035
/// <summary>
2136
/// Gets or sets a flag for whether to disassemble any generated IL
2237
/// and store it in the associated function
@@ -42,6 +57,7 @@ public bool StrictMode
4257
/// </summary>
4358
public JurassicSettings()
4459
{
60+
EnableHostCollectionsEmbeddingByValue = false;
4561
#if !NETSTANDARD2_0
4662
EnableDebugging = false;
4763
#endif

src/JavaScriptEngineSwitcher.Jurassic/readme.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@
1313
===========
1414
JavaScriptEngineSwitcher.Jurassic contains adapter `JurassicJsEngine` (wrapper
1515
for the Jurassic JavaScript Engine (http://github.com/paulbartrum/jurassic)
16-
version of February 24, 2018).
16+
version of August 3, 2020).
1717

1818
=============
1919
RELEASE NOTES
2020
=============
21-
Enabled a SourceLink.
21+
1. Jurassic was updated to version of August 3, 2020;
22+
2. In configuration settings of the Jurassic JS engine was added one new
23+
non-standard property - `EnableHostCollectionsEmbeddingByValue` (default
24+
`false`).
2225

2326
=============
2427
DOCUMENTATION

0 commit comments

Comments
 (0)