Skip to content

Commit 1972c59

Browse files
committed
Upgrade to JSPool 3.0
1 parent 5168caa commit 1972c59

15 files changed

+50
-57
lines changed

build.proj

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ of patent rights can be found in the PATENTS file in the same directory.
1010
<Project ToolsVersion="4.0" DefaultTargets="Build;Test;Package" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
1111
<PropertyGroup>
1212
<Major>3</Major>
13-
<Minor>0</Minor>
14-
<Build>1</Build>
13+
<Minor>1</Minor>
14+
<Build>0</Build>
1515
<Revision>0</Revision>
1616
<DevNuGetServer>http://reactjs.net/packages/</DevNuGetServer>
1717
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\tools\MSBuildTasks</MSBuildCommunityTasksPath>

src/React.Core/IJavaScriptEngineFactory.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using System;
2-
using JavaScriptEngineSwitcher.Core;
1+
using JavaScriptEngineSwitcher.Core;
2+
using JSPool;
33

44
namespace React
55
{
@@ -25,12 +25,12 @@ public interface IJavaScriptEngineFactory
2525
/// Gets a JavaScript engine from the pool.
2626
/// </summary>
2727
/// <returns>The JavaScript engine</returns>
28-
IJsEngine GetEngine();
28+
PooledJsEngine GetEngine();
2929

3030
/// <summary>
3131
/// Returns an engine to the pool so it can be reused
3232
/// </summary>
3333
/// <param name="engine">Engine to return</param>
34-
void ReturnEngineToPool(IJsEngine engine);
34+
void ReturnEngineToPool(PooledJsEngine engine);
3535
}
3636
}

src/React.Core/JavaScriptEngineFactory.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public virtual void DisposeEngineForCurrentThread()
223223
/// Gets a JavaScript engine from the pool.
224224
/// </summary>
225225
/// <returns>The JavaScript engine</returns>
226-
public virtual IJsEngine GetEngine()
226+
public virtual PooledJsEngine GetEngine()
227227
{
228228
EnsureValidState();
229229
return _pool.GetEngine();
@@ -233,13 +233,13 @@ public virtual IJsEngine GetEngine()
233233
/// Returns an engine to the pool so it can be reused
234234
/// </summary>
235235
/// <param name="engine">Engine to return</param>
236-
public virtual void ReturnEngineToPool(IJsEngine engine)
236+
public virtual void ReturnEngineToPool(PooledJsEngine engine)
237237
{
238238
// This could be called from ReactEnvironment.Dispose if that class is disposed after
239239
// this class. Let's just ignore this if it's disposed.
240240
if (!_disposed)
241241
{
242-
_pool.ReturnEngineToPool(engine);
242+
engine.Dispose();
243243
}
244244
}
245245

src/React.Core/React.Core.csproj

+6-6
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@
2626
</ItemGroup>
2727

2828
<ItemGroup>
29-
<PackageReference Include="JavaScriptEngineSwitcher.ChakraCore" Version="2.3.2" />
30-
<PackageReference Include="JavaScriptEngineSwitcher.Core" Version="2.2.0" />
31-
<PackageReference Include="JavaScriptEngineSwitcher.Msie" Version="2.3.2" />
32-
<PackageReference Include="JSPool" Version="2.0.1" />
33-
<PackageReference Include="MsieJavaScriptEngine" Version="2.1.2" />
29+
<PackageReference Include="JavaScriptEngineSwitcher.ChakraCore" Version="2.4.8" />
30+
<PackageReference Include="JavaScriptEngineSwitcher.Core" Version="2.4.9" />
31+
<PackageReference Include="JavaScriptEngineSwitcher.Msie" Version="2.4.9" />
32+
<PackageReference Include="JSPool" Version="3.0.1" />
33+
<PackageReference Include="MsieJavaScriptEngine" Version="2.2.2" />
3434
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
3535
</ItemGroup>
3636

3737
<ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
38-
<PackageReference Include="JavaScriptEngineSwitcher.V8" Version="2.2.0" />
38+
<PackageReference Include="JavaScriptEngineSwitcher.V8" Version="2.4.2" />
3939
<PackageReference Include="VroomJs" Version="1.2.3" />
4040
<Reference Include="System.Runtime.Caching" />
4141
<Reference Include="System" />

src/React.Core/ReactEnvironment.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using System.Threading;
1616
using JavaScriptEngineSwitcher.Core;
1717
using JavaScriptEngineSwitcher.Core.Helpers;
18+
using JSPool;
1819
using Newtonsoft.Json;
1920
using React.Exceptions;
2021

@@ -68,7 +69,7 @@ public class ReactEnvironment : IReactEnvironment, IDisposable
6869
/// Contains an engine acquired from a pool of engines. Only used if
6970
/// <see cref="IReactSiteConfiguration.ReuseJavaScriptEngines"/> is enabled.
7071
/// </summary>
71-
protected Lazy<IJsEngine> _engineFromPool;
72+
protected Lazy<PooledJsEngine> _engineFromPool;
7273

7374
/// <summary>
7475
/// List of all components instantiated in this environment
@@ -108,7 +109,7 @@ IFileCacheHash fileCacheHash
108109
_babelTransformer = new Lazy<IBabel>(() =>
109110
new Babel(this, _cache, _fileSystem, _fileCacheHash, _config)
110111
);
111-
_engineFromPool = new Lazy<IJsEngine>(() => _engineFactory.GetEngine());
112+
_engineFromPool = new Lazy<PooledJsEngine>(() => _engineFactory.GetEngine());
112113
}
113114

114115
/// <summary>
@@ -400,7 +401,7 @@ public void ReturnEngineToPool()
400401
if (_engineFromPool.IsValueCreated)
401402
{
402403
_engineFactory.ReturnEngineToPool(_engineFromPool.Value);
403-
_engineFromPool = new Lazy<IJsEngine>(() => _engineFactory.GetEngine());
404+
_engineFromPool = new Lazy<PooledJsEngine>(() => _engineFactory.GetEngine());
404405
}
405406
}
406407

src/React.Sample.Cassette/React.Sample.Cassette.csproj

+2-3
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,8 @@
6868
<HintPath>..\packages\Cassette.Views.2.4.2\lib\net40\Cassette.Views.dll</HintPath>
6969
<Private>True</Private>
7070
</Reference>
71-
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
72-
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.2.0\lib\net40-client\JavaScriptEngineSwitcher.Core.dll</HintPath>
73-
<Private>True</Private>
71+
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.4.9.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
72+
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.4.9\lib\net40-client\JavaScriptEngineSwitcher.Core.dll</HintPath>
7473
</Reference>
7574
<Reference Include="Microsoft.CSharp" />
7675
<Reference Include="System" />

src/React.Sample.Cassette/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<package id="Cassette.Aspnet" version="2.4.2" targetFramework="net40" />
66
<package id="Cassette.MSBuild" version="2.4.2" targetFramework="net40" />
77
<package id="Cassette.Views" version="2.4.2" targetFramework="net40" />
8-
<package id="JavaScriptEngineSwitcher.Core" version="2.2.0" targetFramework="net40" />
8+
<package id="JavaScriptEngineSwitcher.Core" version="2.4.9" targetFramework="net40" />
99
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net40" />
1010
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.0" targetFramework="net40" />
1111
<package id="Microsoft.AspNet.Razor" version="2.0.30506.0" targetFramework="net40" />

src/React.Sample.Mvc4/React.Sample.Mvc4.csproj

+10-15
Original file line numberDiff line numberDiff line change
@@ -57,26 +57,21 @@
5757
<HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
5858
<Private>True</Private>
5959
</Reference>
60-
<Reference Include="ClearScript, Version=5.4.8.0, Culture=neutral, PublicKeyToken=935d0c957da47c73, processorArchitecture=MSIL">
61-
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.2.0\lib\net45\ClearScript.dll</HintPath>
62-
<Private>True</Private>
60+
<Reference Include="ClearScript, Version=5.4.9.0, Culture=neutral, PublicKeyToken=935d0c957da47c73, processorArchitecture=MSIL">
61+
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net45\ClearScript.dll</HintPath>
6362
</Reference>
64-
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
65-
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.2.0\lib\net45\JavaScriptEngineSwitcher.Core.dll</HintPath>
66-
<Private>True</Private>
63+
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.4.9.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
64+
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.4.9\lib\net45\JavaScriptEngineSwitcher.Core.dll</HintPath>
6765
</Reference>
68-
<Reference Include="JavaScriptEngineSwitcher.Msie, Version=2.3.2.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
69-
<HintPath>..\packages\JavaScriptEngineSwitcher.Msie.2.3.2\lib\net45\JavaScriptEngineSwitcher.Msie.dll</HintPath>
70-
<Private>True</Private>
66+
<Reference Include="JavaScriptEngineSwitcher.Msie, Version=2.4.9.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
67+
<HintPath>..\packages\JavaScriptEngineSwitcher.Msie.2.4.9\lib\net45\JavaScriptEngineSwitcher.Msie.dll</HintPath>
7168
</Reference>
72-
<Reference Include="JavaScriptEngineSwitcher.V8, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
73-
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.2.0\lib\net45\JavaScriptEngineSwitcher.V8.dll</HintPath>
74-
<Private>True</Private>
69+
<Reference Include="JavaScriptEngineSwitcher.V8, Version=2.4.2.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
70+
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net45\JavaScriptEngineSwitcher.V8.dll</HintPath>
7571
</Reference>
7672
<Reference Include="Microsoft.CSharp" />
77-
<Reference Include="MsieJavaScriptEngine, Version=2.1.2.0, Culture=neutral, PublicKeyToken=a3a2846a37ac0d3e, processorArchitecture=MSIL">
78-
<HintPath>..\packages\MsieJavaScriptEngine.2.1.2\lib\net45\MsieJavaScriptEngine.dll</HintPath>
79-
<Private>True</Private>
73+
<Reference Include="MsieJavaScriptEngine, Version=2.2.2.0, Culture=neutral, PublicKeyToken=a3a2846a37ac0d3e, processorArchitecture=MSIL">
74+
<HintPath>..\packages\MsieJavaScriptEngine.2.2.2\lib\net45\MsieJavaScriptEngine.dll</HintPath>
8075
</Reference>
8176
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
8277
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>

src/React.Sample.Mvc4/Web.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
</dependentAssembly>
7575
<dependentAssembly>
7676
<assemblyIdentity name="JavaScriptEngineSwitcher.Core" publicKeyToken="c608b2a8cc9e4472" culture="neutral" />
77-
<bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0" />
77+
<bindingRedirect oldVersion="0.0.0.0-2.4.9.0" newVersion="2.4.9.0" />
7878
</dependentAssembly>
7979
<dependentAssembly>
8080
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />

src/React.Sample.Mvc4/packages.config

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Antlr" version="3.5.0.2" targetFramework="net45" />
4-
<package id="JavaScriptEngineSwitcher.Core" version="2.2.0" targetFramework="net45" />
5-
<package id="JavaScriptEngineSwitcher.Msie" version="2.3.2" targetFramework="net45" />
6-
<package id="JavaScriptEngineSwitcher.V8" version="2.2.0" targetFramework="net45" />
4+
<package id="JavaScriptEngineSwitcher.Core" version="2.4.9" targetFramework="net45" />
5+
<package id="JavaScriptEngineSwitcher.Msie" version="2.4.9" targetFramework="net45" />
6+
<package id="JavaScriptEngineSwitcher.V8" version="2.4.2" targetFramework="net45" />
77
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net4" />
88
<package id="Microsoft.AspNet.Razor" version="2.0.30506.0" targetFramework="net4" />
99
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net4" />
1010
<package id="Microsoft.AspNet.WebPages" version="2.0.30506.0" targetFramework="net4" />
1111
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net4" />
12-
<package id="MsieJavaScriptEngine" version="2.1.2" targetFramework="net45" />
12+
<package id="MsieJavaScriptEngine" version="2.2.2" targetFramework="net45" />
1313
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
1414
<package id="WebActivatorEx" version="2.2.0" targetFramework="net45" />
1515
<package id="WebGrease" version="1.6.0" targetFramework="net45" />

src/React.Sample.Mvc6/React.Sample.Mvc6.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
</ItemGroup>
3838

3939
<ItemGroup Condition=" '$(TargetFramework)' == 'net451' ">
40-
<PackageReference Include="JavaScriptEngineSwitcher.V8" Version="2.2.0" />
40+
<PackageReference Include="JavaScriptEngineSwitcher.V8" Version="2.4.2" />
4141
<Reference Include="System" />
4242
<Reference Include="Microsoft.CSharp" />
4343
</ItemGroup>

src/React.Sample.Webpack/React.Sample.Webpack.csproj

+6-9
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,14 @@
5050
<NoWarn>1607</NoWarn>
5151
</PropertyGroup>
5252
<ItemGroup>
53-
<Reference Include="ClearScript, Version=5.4.8.0, Culture=neutral, PublicKeyToken=935d0c957da47c73, processorArchitecture=MSIL">
54-
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.2.0\lib\net40-client\ClearScript.dll</HintPath>
55-
<Private>True</Private>
53+
<Reference Include="ClearScript, Version=5.4.9.0, Culture=neutral, PublicKeyToken=935d0c957da47c73, processorArchitecture=MSIL">
54+
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net40-client\ClearScript.dll</HintPath>
5655
</Reference>
57-
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
58-
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.2.0\lib\net40-client\JavaScriptEngineSwitcher.Core.dll</HintPath>
59-
<Private>True</Private>
56+
<Reference Include="JavaScriptEngineSwitcher.Core, Version=2.4.9.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
57+
<HintPath>..\packages\JavaScriptEngineSwitcher.Core.2.4.9\lib\net40-client\JavaScriptEngineSwitcher.Core.dll</HintPath>
6058
</Reference>
61-
<Reference Include="JavaScriptEngineSwitcher.V8, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
62-
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.2.0\lib\net40-client\JavaScriptEngineSwitcher.V8.dll</HintPath>
63-
<Private>True</Private>
59+
<Reference Include="JavaScriptEngineSwitcher.V8, Version=2.4.2.0, Culture=neutral, PublicKeyToken=c608b2a8cc9e4472, processorArchitecture=MSIL">
60+
<HintPath>..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net40-client\JavaScriptEngineSwitcher.V8.dll</HintPath>
6461
</Reference>
6562
<Reference Include="Microsoft.CSharp" />
6663
<Reference Include="System" />

src/React.Sample.Webpack/Web.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
</dependentAssembly>
5757
<dependentAssembly>
5858
<assemblyIdentity name="JavaScriptEngineSwitcher.Core" publicKeyToken="c608b2a8cc9e4472" culture="neutral" />
59-
<bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0" />
59+
<bindingRedirect oldVersion="0.0.0.0-2.4.9.0" newVersion="2.4.9.0" />
6060
</dependentAssembly>
6161
<dependentAssembly>
6262
<assemblyIdentity name="JavaScriptEngineSwitcher.V8" publicKeyToken="c608b2a8cc9e4472" culture="neutral" />

src/React.Sample.Webpack/packages.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="JavaScriptEngineSwitcher.Core" version="2.2.0" targetFramework="net40" />
4-
<package id="JavaScriptEngineSwitcher.V8" version="2.2.0" targetFramework="net40" />
3+
<package id="JavaScriptEngineSwitcher.Core" version="2.4.9" targetFramework="net40" />
4+
<package id="JavaScriptEngineSwitcher.V8" version="2.4.2" targetFramework="net40" />
55
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net40" />
66
<package id="Microsoft.AspNet.Razor" version="2.0.30506.0" targetFramework="net40" />
77
<package id="Microsoft.AspNet.WebPages" version="2.0.30506.0" targetFramework="net40" />

tests/React.Tests/Core/ReactEnvironmentTest.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using System.Collections.Generic;
1212
using System.Linq;
1313
using JavaScriptEngineSwitcher.Core;
14+
using JSPool;
1415
using Moq;
1516
using Xunit;
1617
using React.Exceptions;
@@ -124,15 +125,15 @@ public void ReturnsEngineToPool()
124125

125126
private class Mocks
126127
{
127-
public Mock<IJsEngine> Engine { get; private set; }
128+
public Mock<PooledJsEngine> Engine { get; private set; }
128129
public Mock<IJavaScriptEngineFactory> EngineFactory { get; private set; }
129130
public Mock<IReactSiteConfiguration> Config { get; private set; }
130131
public Mock<ICache> Cache { get; private set; }
131132
public Mock<IFileSystem> FileSystem { get; private set; }
132133
public Mock<IFileCacheHash> FileCacheHash { get; private set; }
133134
public Mocks()
134135
{
135-
Engine = new Mock<IJsEngine>();
136+
Engine = new Mock<PooledJsEngine>();
136137
EngineFactory = new Mock<IJavaScriptEngineFactory>();
137138
Config = new Mock<IReactSiteConfiguration>();
138139
Cache = new Mock<ICache>();

0 commit comments

Comments
 (0)