Skip to content

Commit 5bab4c3

Browse files
committed
Part of the auxiliary code was moved to external libraries: PolyfillsForOldDotNet and AdvancedStringBuilder
1 parent 64e5d07 commit 5bab4c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+157
-1091
lines changed

build/nuget-metadata.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<Title>$(Product)</Title>
44
<Authors>Andrey Taritsyn</Authors>
5-
<PackageLicense>https://github.com/Taritsyn/JavaScriptEngineSwitcher/blob/master/LICENSE</PackageLicense>
5+
<PackageLicenseUrl>https://github.com/Taritsyn/JavaScriptEngineSwitcher/blob/master/LICENSE</PackageLicenseUrl>
66
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
77
<PackageProjectUrl>https://github.com/Taritsyn/JavaScriptEngineSwitcher</PackageProjectUrl>
88
<RepositoryUrl>https://github.com/Taritsyn/JavaScriptEngineSwitcher</RepositoryUrl>

src/JavaScriptEngineSwitcher.ChakraCore/AssemblyResolver.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
using System;
33
using System.IO;
44
using System.Runtime.InteropServices;
5-
65
#if NET40
7-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Runtime.InteropServices;
6+
7+
using PolyfillsForOldDotNet.System.Runtime.InteropServices;
88
#endif
9+
910
using JavaScriptEngineSwitcher.Core.Utilities;
1011

1112
using JavaScriptEngineSwitcher.ChakraCore.Constants;

src/JavaScriptEngineSwitcher.ChakraCore/ChakraCoreJsEngine.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
using System.Runtime.InteropServices;
66
using System.Text;
77

8-
using JavaScriptEngineSwitcher.Core;
9-
using JavaScriptEngineSwitcher.Core.Extensions;
8+
using AdvancedStringBuilder;
109
#if NET40
11-
using JavaScriptEngineSwitcher.Core.Polyfills.System;
12-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Reflection;
13-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Runtime.InteropServices;
10+
using PolyfillsForOldDotNet.System.Runtime.InteropServices;
1411
#endif
12+
13+
using JavaScriptEngineSwitcher.Core;
14+
using JavaScriptEngineSwitcher.Core.Extensions;
1515
using JavaScriptEngineSwitcher.Core.Utilities;
1616

1717
using ErrorLocationItem = JavaScriptEngineSwitcher.Core.Helpers.ErrorLocationItem;
@@ -519,7 +519,12 @@ private JsValue CreateFunctionFromDelegate(Delegate value)
519519
JsNativeFunction nativeFunction = (callee, isConstructCall, args, argCount, callbackData) =>
520520
{
521521
object[] processedArgs = MapToHostType(args.Skip(1).ToArray());
522-
ParameterInfo[] parameters = value.GetMethodInfo().GetParameters();
522+
#if NET40
523+
MethodInfo method = value.Method;
524+
#else
525+
MethodInfo method = value.GetMethodInfo();
526+
#endif
527+
ParameterInfo[] parameters = method.GetParameters();
523528
JsValue undefinedValue = JsValue.Undefined;
524529

525530
ReflectionHelpers.FixArgumentTypes(ref processedArgs, parameters);
@@ -552,7 +557,11 @@ private JsValue CreateFunctionFromDelegate(Delegate value)
552557

553558
private JsValue CreateConstructor(Type type)
554559
{
560+
#if NET40
561+
Type typeInfo = type;
562+
#else
555563
TypeInfo typeInfo = type.GetTypeInfo();
564+
#endif
556565
string typeName = type.FullName;
557566
BindingFlags defaultBindingFlags = ReflectionHelpers.GetDefaultBindingFlags(true);
558567
ConstructorInfo[] constructors = type.GetConstructors(defaultBindingFlags);
@@ -1143,7 +1152,8 @@ private static WrapperEngineLoadException WrapDllNotFoundException(
11431152
"https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/JS-Engine-Switcher:-ChakraCore#{0}";
11441153
Architecture osArchitecture = RuntimeInformation.OSArchitecture;
11451154

1146-
StringBuilder descriptionBuilder = StringBuilderPool.GetBuilder();
1155+
var stringBuilderPool = StringBuilderPool.Shared;
1156+
StringBuilder descriptionBuilder = stringBuilderPool.Rent();
11471157
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
11481158
{
11491159
descriptionBuilder.AppendFormat(CoreStrings.Engine_AssemblyNotFound, DllName.ForWindows);
@@ -1247,7 +1257,7 @@ private static WrapperEngineLoadException WrapDllNotFoundException(
12471257
}
12481258

12491259
description = descriptionBuilder.ToString();
1250-
StringBuilderPool.ReleaseBuilder(descriptionBuilder);
1260+
stringBuilderPool.Return(descriptionBuilder);
12511261

12521262
message = CoreErrorHelpers.GenerateEngineLoadErrorMessage(description, EngineName);
12531263
}

src/JavaScriptEngineSwitcher.ChakraCore/JavaScriptEngineSwitcher.ChakraCore.csproj

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<OutputType>Library</OutputType>
1010
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
1111
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
12-
<NoWarn>$(NoWarn);CS1591</NoWarn>
12+
<NoWarn>$(NoWarn);CS1591;NU5125</NoWarn>
1313
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1414
<DisableDefaultResxToCsConversionTarget>true</DisableDefaultResxToCsConversionTarget>
1515
<Description>JavaScriptEngineSwitcher.ChakraCore contains adapter `ChakraCoreJsEngine` (wrapper for the ChakraCore (http://github.com/Microsoft/ChakraCore)). Project was based on the code of Chakra-Samples (http://github.com/Microsoft/Chakra-Samples) and jsrt-dotnet (http://github.com/robpaveza/jsrt-dotnet).
@@ -32,11 +32,21 @@ This package does not contain the native implementations of ChakraCore. Therefor
3232
<Import Project="../../build/nuget-metadata.props" />
3333

3434
<ItemGroup>
35+
<PackageReference Include="AdvancedStringBuilder" Version="0.1.0" />
3536
<PackageReference Include="ResxToCs.MSBuild" Version="1.0.0-alpha5" PrivateAssets="All" />
3637

3738
<ProjectReference Include="../JavaScriptEngineSwitcher.Core/JavaScriptEngineSwitcher.Core.csproj" />
3839
</ItemGroup>
3940

41+
<ItemGroup Condition=" '$(TargetFramework)' == 'net40-client' ">
42+
<PackageReference Include="PolyfillsForOldDotNet.System.Buffers" Version="0.1.1" />
43+
<PackageReference Include="PolyfillsForOldDotNet.System.Runtime.InteropServices.RuntimeInformation" Version="0.1.1" />
44+
</ItemGroup>
45+
46+
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
47+
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.0.0" />
48+
</ItemGroup>
49+
4050
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' Or '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'netstandard1.3' ">
4151
<PackageReference Include="System.Buffers" Version="4.0.0" />
4252
</ItemGroup>

src/JavaScriptEngineSwitcher.ChakraCore/JsRt/JsContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using System.Text;
66
#if NET40
77

8-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Runtime.InteropServices;
8+
using PolyfillsForOldDotNet.System.Runtime.InteropServices;
99
#endif
1010

1111
namespace JavaScriptEngineSwitcher.ChakraCore.JsRt

src/JavaScriptEngineSwitcher.ChakraCore/JsRt/JsPropertyId.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66
using System.Text;
77
#if NET40
88

9-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Runtime.InteropServices;
9+
using PolyfillsForOldDotNet.System.Buffers;
10+
using PolyfillsForOldDotNet.System.Runtime.InteropServices;
1011
#endif
1112

12-
#if NET40
13-
using JavaScriptEngineSwitcher.ChakraCore.Polyfills.System.Buffers;
14-
#endif
1513
using JavaScriptEngineSwitcher.ChakraCore.Helpers;
1614

1715
namespace JavaScriptEngineSwitcher.ChakraCore.JsRt

src/JavaScriptEngineSwitcher.ChakraCore/JsRt/JsValue.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
using System.Text;
77
#if NET40
88

9-
using JavaScriptEngineSwitcher.Core.Polyfills.System.Runtime.InteropServices;
10-
11-
using JavaScriptEngineSwitcher.ChakraCore.Polyfills.System.Buffers;
9+
using PolyfillsForOldDotNet.System.Buffers;
10+
using PolyfillsForOldDotNet.System.Runtime.InteropServices;
1211
#endif
1312

1413
namespace JavaScriptEngineSwitcher.ChakraCore.JsRt

src/JavaScriptEngineSwitcher.ChakraCore/Polyfills/System/Buffers/ArrayPool.cs

Lines changed: 0 additions & 93 deletions
This file was deleted.

0 commit comments

Comments
 (0)