Skip to content

Commit b82b228

Browse files
committed
In JavaScriptEngineSwitcher.Msie added support of MSIE JavaScript Engine version 3.0.3.
1 parent 40f8e75 commit b82b228

File tree

3 files changed

+62
-10
lines changed

3 files changed

+62
-10
lines changed

src/JavaScriptEngineSwitcher.Msie/JavaScriptEngineSwitcher.Msie.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<Description>JavaScriptEngineSwitcher.Msie contains adapter `MsieJsEngine` (wrapper for the MSIE JavaScript Engine for .Net (http://github.com/Taritsyn/MsieJavaScriptEngine)). For correct working of the MSIE JavaScript Engine it is recommended to install Internet Explorer 9+ or Microsoft Edge on the machine.</Description>
1414
<PackageIconUrl>https://raw.githubusercontent.com/Taritsyn/JavaScriptEngineSwitcher/master/Icons/JavaScriptEngineSwitcher_Msie_Logo128x128.png</PackageIconUrl>
1515
<PackageTags>JavaScriptEngineSwitcher;JavaScript;ECMAScript;MSIE;IE;Chakra</PackageTags>
16-
<PackageReleaseNotes>MSIE JavaScript Engine was updated to version 3.0.2.</PackageReleaseNotes>
16+
<PackageReleaseNotes>MSIE JavaScript Engine was updated to version 3.0.3.</PackageReleaseNotes>
1717
</PropertyGroup>
1818

1919
<Import Project="../../build/common.props" />
@@ -22,7 +22,7 @@
2222
<Import Project="../../build/nuget-metadata.props" />
2323

2424
<ItemGroup>
25-
<PackageReference Include="MsieJavaScriptEngine" Version="3.0.2" />
25+
<PackageReference Include="MsieJavaScriptEngine" Version="3.0.3" />
2626
<PackageReference Include="ResxToCs.MSBuild" Version="1.0.0-alpha6" PrivateAssets="All" />
2727

2828
<ProjectReference Include="../JavaScriptEngineSwitcher.Core/JavaScriptEngineSwitcher.Core.csproj" />

src/JavaScriptEngineSwitcher.Msie/readme.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
=============
2020
RELEASE NOTES
2121
=============
22-
MSIE JavaScript Engine was updated to version 3.0.2.
22+
MSIE JavaScript Engine was updated to version 3.0.3.
2323

2424
=============
2525
DOCUMENTATION

test/JavaScriptEngineSwitcher.Tests/Msie/InteropTests.cs

Lines changed: 59 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
namespace JavaScriptEngineSwitcher.Tests.Msie
1+
using System;
2+
using System.IO;
3+
4+
using Xunit;
5+
6+
using JavaScriptEngineSwitcher.Core;
7+
8+
namespace JavaScriptEngineSwitcher.Tests.Msie
29
{
310
public class InteropTests : InteropTestsBase
411
{
@@ -13,6 +20,7 @@ protected override string EngineName
1320
#region Delegates
1421

1522
#if !NETCOREAPP
23+
[Fact]
1624
public override void EmbeddedInstanceOfDelegateHasFunctionPrototype()
1725
{ }
1826
#endif
@@ -21,13 +29,57 @@ public override void EmbeddedInstanceOfDelegateHasFunctionPrototype()
2129

2230
#region Recursive calls
2331

24-
// TODO: Remove after fixing a error in the MSIE JavaScript Engine for .NET
25-
public override void RecursiveExecutionOfFilesIsCorrect()
26-
{ }
32+
#region Mapping of errors
2733

28-
// TODO: Remove after fixing a error in the MSIE JavaScript Engine for .NET
29-
public override void RecursiveEvaluationOfFilesIsCorrect()
30-
{ }
34+
[Fact]
35+
public void MappingRuntimeErrorDuringRecursiveEvaluationOfFilesIsCorrect()
36+
{
37+
// Arrange
38+
const string directoryPath = "Files/recursiveEvaluation/runtimeError";
39+
const string input = "require('index').calculateResult();";
40+
41+
// Act
42+
JsRuntimeException exception = null;
43+
44+
using (var jsEngine = CreateJsEngine())
45+
{
46+
try
47+
{
48+
Func<string, object> loadModule = path => {
49+
string absolutePath = Path.Combine(directoryPath, $"{path}.js");
50+
string code = File.ReadAllText(absolutePath);
51+
object result = jsEngine.Evaluate(code, absolutePath);
52+
53+
return result;
54+
};
55+
56+
jsEngine.EmbedHostObject("require", loadModule);
57+
double output = jsEngine.Evaluate<double>(input);
58+
}
59+
catch (JsRuntimeException e)
60+
{
61+
exception = e;
62+
}
63+
}
64+
65+
// Assert
66+
Assert.NotNull(exception);
67+
Assert.Equal("Runtime error", exception.Category);
68+
Assert.Equal("'argumens' is undefined", exception.Description);
69+
Assert.Equal("ReferenceError", exception.Type);
70+
Assert.Equal("math.js", exception.DocumentName);
71+
Assert.Equal(10, exception.LineNumber);
72+
Assert.Equal(4, exception.ColumnNumber);
73+
Assert.Empty(exception.SourceFragment);
74+
Assert.Equal(
75+
" at sum (math.js:10:4)" + Environment.NewLine +
76+
" at calculateResult (index.js:7:4)" + Environment.NewLine +
77+
" at Global code (Script Document:1:1)",
78+
exception.CallStack
79+
);
80+
}
81+
82+
#endregion
3183

3284
#endregion
3385

0 commit comments

Comments
 (0)