Skip to content

Commit d59be80

Browse files
committed
In JavaScriptEngineSwitcher.Jint:
1. Jint was updated to version 3.0.0 Beta 1756; 2. No longer supports a .NET Framework 4.5; 3. Added support of .NET Framework 4.6.1 and .NET Standard 2.1.
1 parent a775bad commit d59be80

File tree

13 files changed

+99
-93
lines changed

13 files changed

+99
-93
lines changed

samples/JavaScriptEngineSwitcher.Sample.AspNetCore1Full.Mvc1/JavaScriptEngineSwitcher.Sample.AspNetCore1Full.Mvc1.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333

3434
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.ChakraCore/JavaScriptEngineSwitcher.ChakraCore.csproj" />
3535
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Extensions.MsDependencyInjection/JavaScriptEngineSwitcher.Extensions.MsDependencyInjection.csproj" />
36-
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Jint/JavaScriptEngineSwitcher.Jint.csproj" />
3736
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Jurassic/JavaScriptEngineSwitcher.Jurassic.csproj" />
3837
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Msie/JavaScriptEngineSwitcher.Msie.csproj" />
3938
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.NiL/JavaScriptEngineSwitcher.NiL.csproj" />

samples/JavaScriptEngineSwitcher.Sample.AspNetCore1Full.Mvc1/Startup.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
using JavaScriptEngineSwitcher.ChakraCore;
1010
using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection;
11-
using JavaScriptEngineSwitcher.Jint;
1211
using JavaScriptEngineSwitcher.Jurassic;
1312
using JavaScriptEngineSwitcher.Msie;
1413
using JavaScriptEngineSwitcher.NiL;
@@ -58,7 +57,6 @@ public void ConfigureServices(IServiceCollection services)
5857
options.DefaultEngineName = ChakraCoreJsEngine.EngineName
5958
)
6059
.AddChakraCore()
61-
.AddJint()
6260
.AddJurassic()
6361
.AddMsie(options =>
6462
{

src/JavaScriptEngineSwitcher.Jint/JavaScriptEngineSwitcher.Jint.csproj

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
<Product>JS Engine Switcher: Jint</Product>
55
<VersionPrefix>3.4.2</VersionPrefix>
66
<VersionSuffix>preview</VersionSuffix>
7-
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
7+
<TargetFrameworks>net461;netstandard2.0;netstandard2.1</TargetFrameworks>
88
<OutputType>Library</OutputType>
99
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
1010
<NoWarn>$(NoWarn);CS1591;NU5104</NoWarn>
1111
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1212
<DisableDefaultResxToCsConversionTarget>true</DisableDefaultResxToCsConversionTarget>
13-
<Description>JavaScriptEngineSwitcher.Jint contains adapter `JintJsEngine` (wrapper for the Jint JavaScript Engine (http://github.com/sebastienros/jint) version 3.0.0 Beta 1715).</Description>
13+
<Description>JavaScriptEngineSwitcher.Jint contains adapter `JintJsEngine` (wrapper for the Jint JavaScript Engine (http://github.com/sebastienros/jint) version 3.0.0 Beta 1756).</Description>
1414
<PackageIcon>icon.png</PackageIcon>
1515
<PackageTags>JavaScriptEngineSwitcher;JavaScript;ECMAScript;Jint</PackageTags>
16-
<PackageReleaseNotes>1. Jint was updated to version 3.0.0 Beta 1715;
17-
2. Simplified and improved a handling of JS runtime errors.</PackageReleaseNotes>
16+
<PackageReleaseNotes>1. Jint was updated to version 3.0.0 Beta 1756;
17+
2. No longer supports a .NET Framework 4.5;
18+
3. Added support of .NET Framework 4.6.1 and .NET Standard 2.1.</PackageReleaseNotes>
1819
</PropertyGroup>
1920

2021
<Import Project="../../build/common.props" />
@@ -24,7 +25,7 @@
2425

2526
<ItemGroup>
2627
<PackageReference Include="AdvancedStringBuilder" Version="0.1.0" />
27-
<PackageReference Include="Jint" Version="3.0.0-beta-1715" />
28+
<PackageReference Include="Jint" Version="3.0.0-beta-1756" />
2829

2930
<ProjectReference Include="../JavaScriptEngineSwitcher.Core/JavaScriptEngineSwitcher.Core.csproj" />
3031
</ItemGroup>

src/JavaScriptEngineSwitcher.Jint/JintJsEngine.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
using OriginalJavaScriptException = Jint.Runtime.JavaScriptException;
88
using OriginalMemoryLimitExceededException = Jint.Runtime.MemoryLimitExceededException;
99
using OriginalObjectInstance = Jint.Native.Object.ObjectInstance;
10+
using OriginalParsedScript = Esprima.Ast.Script;
1011
using OriginalParser = Esprima.JavaScriptParser;
1112
using OriginalParserException = Esprima.ParserException;
1213
using OriginalParserOptions = Esprima.ParserOptions;
13-
using OriginalProgram = Esprima.Ast.Program;
1414
using OriginalRecursionDepthOverflowException = Jint.Runtime.RecursionDepthOverflowException;
1515
using OriginalRuntimeException = Jint.Runtime.JintException;
1616
using OriginalStatementsCountOverflowException = Jint.Runtime.StatementsCountOverflowException;
@@ -46,7 +46,7 @@ public sealed class JintJsEngine : JsEngineBase
4646
/// <summary>
4747
/// Version of original JS engine
4848
/// </summary>
49-
private const string EngineVersion = "3.0.0 Beta 1715";
49+
private const string EngineVersion = "3.0.0 Beta 1756";
5050

5151
/// <summary>
5252
/// Jint JS engine
@@ -317,21 +317,21 @@ protected override IPrecompiledScript InnerPrecompile(string code)
317317

318318
protected override IPrecompiledScript InnerPrecompile(string code, string documentName)
319319
{
320-
OriginalProgram program;
320+
OriginalParsedScript parsedScript;
321321
string uniqueDocumentName = _documentNameManager.GetUniqueName(documentName);
322322
OriginalParserOptions parserOptions = CreateParserOptions(uniqueDocumentName);
323323

324324
try
325325
{
326326
var parser = new OriginalParser(code, parserOptions);
327-
program = parser.ParseProgram();
327+
parsedScript = parser.ParseScript();
328328
}
329329
catch (OriginalParserException e)
330330
{
331331
throw WrapParserException(e);
332332
}
333333

334-
return new JintPrecompiledScript(program);
334+
return new JintPrecompiledScript(parsedScript);
335335
}
336336

337337
protected override object InnerEvaluate(string expression)
@@ -431,7 +431,7 @@ protected override void InnerExecute(IPrecompiledScript precompiledScript)
431431
{
432432
try
433433
{
434-
_jsEngine.Execute(jintPrecompiledScript.Program);
434+
_jsEngine.Execute(jintPrecompiledScript.ParsedScript);
435435
}
436436
catch (OriginalRuntimeException e)
437437
{

src/JavaScriptEngineSwitcher.Jint/JintPrecompiledScript.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using OriginalProgram = Esprima.Ast.Program;
1+
using OriginalParsedScript = Esprima.Ast.Script;
22

33
using JavaScriptEngineSwitcher.Core;
44

@@ -10,9 +10,9 @@ namespace JavaScriptEngineSwitcher.Jint
1010
internal sealed class JintPrecompiledScript : IPrecompiledScript
1111
{
1212
/// <summary>
13-
/// Gets a program
13+
/// Gets a parsed script
1414
/// </summary>
15-
public OriginalProgram Program
15+
public OriginalParsedScript ParsedScript
1616
{
1717
get;
1818
private set;
@@ -22,10 +22,10 @@ public OriginalProgram Program
2222
/// <summary>
2323
/// Constructs an instance of pre-compiled script
2424
/// </summary>
25-
/// <param name="program">The program</param>
26-
public JintPrecompiledScript(OriginalProgram program)
25+
/// <param name="parsedScript">The parsed script</param>
26+
public JintPrecompiledScript(OriginalParsedScript parsedScript)
2727
{
28-
Program = program;
28+
ParsedScript = parsedScript;
2929
}
3030

3131

src/JavaScriptEngineSwitcher.Jint/readme.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@
1212
DESCRIPTION
1313
===========
1414
JavaScriptEngineSwitcher.Jint contains adapter `JintJsEngine` (wrapper for the
15-
Jint JavaScript Engine (http://github.com/sebastienros/jint) version 3.0.0 Beta 1715).
15+
Jint JavaScript Engine (http://github.com/sebastienros/jint) version 3.0.0 Beta 1756).
1616

1717
=============
1818
RELEASE NOTES
1919
=============
20-
1. Jint was updated to version 3.0.0 Beta 1715;
21-
2. Simplified and improved a handling of JS runtime errors.
20+
1. Jint was updated to version 3.0.0 Beta 1756;
21+
2. No longer supports a .NET Framework 4.5;
22+
3. Added support of .NET Framework 4.6.1 and .NET Standard 2.1.
2223

2324
=============
2425
DOCUMENTATION

test/JavaScriptEngineSwitcher.Tests/JavaScriptEngineSwitcher.Tests.csproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@
5353
<PackageReference Include="JavaScriptEngineSwitcher.V8.Native.win-x86" Version="3.3.0" />
5454
</ItemGroup>
5555

56-
<ItemGroup Condition=" '$(TargetFramework)' == 'net452' Or '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'netcoreapp2.1' Or '$(TargetFramework)' == 'netcoreapp3.1' ">
56+
<ItemGroup Condition=" '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'netcoreapp2.1' Or '$(TargetFramework)' == 'netcoreapp3.1' ">
5757
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Jint/JavaScriptEngineSwitcher.Jint.csproj" />
58+
</ItemGroup>
59+
60+
<ItemGroup Condition=" '$(TargetFramework)' == 'net452' Or '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'netcoreapp2.1' Or '$(TargetFramework)' == 'netcoreapp3.1' ">
5861
<ProjectReference Include="../../src/JavaScriptEngineSwitcher.Jurassic/JavaScriptEngineSwitcher.Jurassic.csproj" />
5962
</ItemGroup>
6063

test/JavaScriptEngineSwitcher.Tests/Jint/CommonTests.cs

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#if !NETCOREAPP1_0
1+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
22
using System;
33

44
using Xunit;
@@ -213,68 +213,68 @@ public void MappingRuntimeErrorDuringOutOfMemoryIsCorrect()
213213
Assert.Matches(@"^Script has allocated \d+ but is limited to 2097152$", exception.Description);
214214
}
215215

216-
// [Fact]
217-
// public void MappingRuntimeErrorDuringRecursionDepthOverflowIsCorrect()
218-
// {
219-
// // Arrange
220-
// const string input = @"function fibonacci(n) {
221-
// if (n === 1) {
222-
// return 1;
223-
// }
224-
// else if (n === 2) {
225-
// return 1;
226-
// }
227-
// else {
228-
// return fibonacci(n - 1) + fibonacci(n - 2);
229-
// }
230-
//}
231-
232-
//(function (fibonacci) {
233-
// var a = 5;
234-
// var b = 11;
235-
// var c = fibonacci(b) - fibonacci(a);
236-
//})(fibonacci);";
237-
238-
// JsRuntimeException exception = null;
239-
240-
// // Act
241-
// using (var jsEngine = new JintJsEngine(
242-
// new JintSettings
243-
// {
244-
// MaxRecursionDepth = 5
245-
// }
246-
// ))
247-
// {
248-
// try
249-
// {
250-
// jsEngine.Execute(input, "fibonacci.js");
251-
// }
252-
// catch (JsRuntimeException e)
253-
// {
254-
// exception = e;
255-
// }
256-
// }
257-
258-
// // Assert
259-
// Assert.NotNull(exception);
260-
// Assert.Equal("Runtime error", exception.Category);
261-
// Assert.Equal("The recursion is forbidden by script host.", exception.Description);
262-
// Assert.Equal("RangeError", exception.Type);
263-
// Assert.Empty(exception.DocumentName);
264-
// Assert.Equal(0, exception.LineNumber);
265-
// Assert.Equal(0, exception.ColumnNumber);
266-
// Assert.Empty(exception.SourceFragment);
267-
// Assert.Equal(
268-
// " at fibonacci" + Environment.NewLine +
269-
// " at fibonacci" + Environment.NewLine +
270-
// " at fibonacci" + Environment.NewLine +
271-
// " at fibonacci" + Environment.NewLine +
272-
// " at fibonacci" + Environment.NewLine +
273-
// " at fibonacci" + Environment.NewLine +
274-
// " at Anonymous function",
275-
// exception.CallStack
276-
// );
277-
// }
216+
[Fact]
217+
public void MappingRuntimeErrorDuringRecursionDepthOverflowIsCorrect()
218+
{
219+
// Arrange
220+
const string input = @"function fibonacci(n) {
221+
if (n === 1) {
222+
return 1;
223+
}
224+
else if (n === 2) {
225+
return 1;
226+
}
227+
else {
228+
return fibonacci(n - 1) + fibonacci(n - 2);
229+
}
230+
}
231+
232+
(function (fibonacci) {
233+
var a = 5;
234+
var b = 11;
235+
var c = fibonacci(b) - fibonacci(a);
236+
})(fibonacci);";
237+
238+
JsRuntimeException exception = null;
239+
240+
// Act
241+
using (var jsEngine = new JintJsEngine(
242+
new JintSettings
243+
{
244+
MaxRecursionDepth = 5
245+
}
246+
))
247+
{
248+
try
249+
{
250+
jsEngine.Execute(input, "fibonacci.js");
251+
}
252+
catch (JsRuntimeException e)
253+
{
254+
exception = e;
255+
}
256+
}
257+
258+
// Assert
259+
Assert.NotNull(exception);
260+
Assert.Equal("Runtime error", exception.Category);
261+
Assert.Equal("The recursion is forbidden by script host.", exception.Description);
262+
Assert.Equal("RangeError", exception.Type);
263+
Assert.Empty(exception.DocumentName);
264+
Assert.Equal(0, exception.LineNumber);
265+
Assert.Equal(0, exception.ColumnNumber);
266+
Assert.Empty(exception.SourceFragment);
267+
Assert.Equal(
268+
" at fibonacci" + Environment.NewLine +
269+
" at fibonacci" + Environment.NewLine +
270+
" at fibonacci" + Environment.NewLine +
271+
" at fibonacci" + Environment.NewLine +
272+
" at fibonacci" + Environment.NewLine +
273+
" at fibonacci" + Environment.NewLine +
274+
" at Anonymous function",
275+
exception.CallStack
276+
);
277+
}
278278

279279
[Fact]
280280
public void MappingRuntimeErrorDuringStatementsCountOverflowIsCorrect()

test/JavaScriptEngineSwitcher.Tests/Jint/Es5Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#if !NETCOREAPP1_0
1+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
22
using Xunit;
33

44
namespace JavaScriptEngineSwitcher.Tests.Jint

test/JavaScriptEngineSwitcher.Tests/Jint/InteropTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#if !NETCOREAPP1_0
1+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
22
using System;
33
using System.IO;
44

test/JavaScriptEngineSwitcher.Tests/Jint/MultithreadingTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#if !NETCOREAPP1_0
1+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
22
namespace JavaScriptEngineSwitcher.Tests.Jint
33
{
44
public class MultithreadingTests : MultithreadingTestsBase

test/JavaScriptEngineSwitcher.Tests/Jint/PrecompilationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#if !NETCOREAPP1_0
1+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
22
using System;
33

44
using Xunit;

test/JavaScriptEngineSwitcher.Tests/JsEngineSwitcherInitializer.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
using JavaScriptEngineSwitcher.ChakraCore;
66
using JavaScriptEngineSwitcher.Core;
77
using JavaScriptEngineSwitcher.Core.Utilities;
8-
#if !NETCOREAPP1_0
8+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
99
using JavaScriptEngineSwitcher.Jint;
10+
#endif
11+
#if !NETCOREAPP1_0
1012
using JavaScriptEngineSwitcher.Jurassic;
1113
#endif
1214
using JavaScriptEngineSwitcher.Msie;
@@ -36,8 +38,10 @@ public static void Initialize()
3638
#endif
3739
JsEngineSwitcher.Current.EngineFactories
3840
.AddChakraCore()
39-
#if !NETCOREAPP1_0
41+
#if NET471 || NETCOREAPP2_1 || NETCOREAPP3_1
4042
.AddJint()
43+
#endif
44+
#if !NETCOREAPP1_0
4145
.AddJurassic()
4246
#endif
4347
.AddMsie(new MsieSettings

0 commit comments

Comments
 (0)