Skip to content

Commit d4d6ba2

Browse files
Version 5.5.6: Added experimental support for CPU profiling in V8ScriptEngine and V8Runtime; improved support for newer V8 features such as promises and WebAssembly; added Nothing class for better VBScript support (GitHub Issue ClearFoundry#106); added readme.txt to NuGet package (GitHub Issue ClearFoundry#109); updated API documentation. Tested with V8 7.4.288.26.
1 parent fbd59e0 commit d4d6ba2

File tree

720 files changed

+4289
-1610
lines changed

Some content is hidden

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

720 files changed

+4289
-1610
lines changed

ClearScript.NoV8.sln.DotSettings

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=URL/@EntryIndexedValue">URL</s:String>
4040
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VB/@EntryIndexedValue">VB</s:String>
4141
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VBS/@EntryIndexedValue">VBS</s:String>
42+
<s:Boolean x:Key="/Default/CodeStyle/Naming/CSharpNaming/ApplyAutoDetectedRules/@EntryValue">False</s:Boolean>
4243
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
4344
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
4445
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
@@ -58,6 +59,7 @@
5859
<s:Boolean x:Key="/Default/UserDictionary/Words/=CLEARSCRIPT/@EntryIndexedValue">True</s:Boolean>
5960
<s:Boolean x:Key="/Default/UserDictionary/Words/=CLR_0027s/@EntryIndexedValue">True</s:Boolean>
6061
<s:Boolean x:Key="/Default/UserDictionary/Words/=contravariance/@EntryIndexedValue">True</s:Boolean>
62+
<s:Boolean x:Key="/Default/UserDictionary/Words/=deopt/@EntryIndexedValue">True</s:Boolean>
6163
<s:Boolean x:Key="/Default/UserDictionary/Words/=devtools/@EntryIndexedValue">True</s:Boolean>
6264
<s:Boolean x:Key="/Default/UserDictionary/Words/=Disp/@EntryIndexedValue">True</s:Boolean>
6365
<s:Boolean x:Key="/Default/UserDictionary/Words/=dispid/@EntryIndexedValue">True</s:Boolean>

ClearScript.sln.DotSettings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=URL/@EntryIndexedValue">URL</s:String>
4040
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VB/@EntryIndexedValue">VB</s:String>
4141
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VBS/@EntryIndexedValue">VBS</s:String>
42+
<s:Boolean x:Key="/Default/CodeStyle/Naming/CSharpNaming/ApplyAutoDetectedRules/@EntryValue">False</s:Boolean>
43+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
4244
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
4345
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
4446
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
@@ -58,6 +60,7 @@
5860
<s:Boolean x:Key="/Default/UserDictionary/Words/=CLEARSCRIPT/@EntryIndexedValue">True</s:Boolean>
5961
<s:Boolean x:Key="/Default/UserDictionary/Words/=CLR_0027s/@EntryIndexedValue">True</s:Boolean>
6062
<s:Boolean x:Key="/Default/UserDictionary/Words/=contravariance/@EntryIndexedValue">True</s:Boolean>
63+
<s:Boolean x:Key="/Default/UserDictionary/Words/=deopt/@EntryIndexedValue">True</s:Boolean>
6164
<s:Boolean x:Key="/Default/UserDictionary/Words/=devtools/@EntryIndexedValue">True</s:Boolean>
6265
<s:Boolean x:Key="/Default/UserDictionary/Words/=Disp/@EntryIndexedValue">True</s:Boolean>
6366
<s:Boolean x:Key="/Default/UserDictionary/Words/=dispid/@EntryIndexedValue">True</s:Boolean>

ClearScript/BindSignature.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace Microsoft.ClearScript
88
{
9-
internal class BindSignature : IEquatable<BindSignature>
9+
internal sealed class BindSignature : IEquatable<BindSignature>
1010
{
1111
private readonly Type context;
1212
private readonly BindingFlags flags;
@@ -134,7 +134,7 @@ private enum TargetKind
134134

135135
#region Nested type: TargetInfo
136136

137-
private class TargetInfo : IEquatable<TargetInfo>
137+
private sealed class TargetInfo : IEquatable<TargetInfo>
138138
{
139139
private readonly TargetKind kind;
140140
private readonly Type targetType;
@@ -214,7 +214,7 @@ private enum ArgKind
214214

215215
#region Nested type: ArgInfo
216216

217-
private class ArgInfo : IEquatable<ArgInfo>
217+
private sealed class ArgInfo : IEquatable<ArgInfo>
218218
{
219219
private readonly ArgKind kind;
220220
private readonly Type type;

ClearScript/ByRefArg.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ object IByRefArg.Value
101101
#endregion
102102
}
103103

104-
internal class OutArg<T> : ByRefArg<T>, IOutArg
104+
internal sealed class OutArg<T> : ByRefArg<T>, IOutArg
105105
{
106106
public OutArg(HostVariable<T> target)
107107
: base(target)
@@ -123,7 +123,7 @@ public override string ToString()
123123
#endregion
124124
}
125125

126-
internal class RefArg<T> : ByRefArg<T>, IRefArg
126+
internal sealed class RefArg<T> : ByRefArg<T>, IRefArg
127127
{
128128
public RefArg(HostVariable<T> target)
129129
: base(target)

ClearScript/CanonicalRefTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ private abstract class CanonicalRefMapBase : ICanonicalRefMap
7979

8080
#region Nested type: CanonicalRefMap<T>
8181

82-
private class CanonicalRefMap<T> : CanonicalRefMapBase
82+
private sealed class CanonicalRefMap<T> : CanonicalRefMapBase
8383
{
8484
private readonly object mapLock = new object();
8585
private readonly Dictionary<T, WeakReference> map = new Dictionary<T, WeakReference>();

ClearScript/ClearScript.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@
130130
<Compile Include="V8\V8ArrayBufferOrViewInfo.cs" />
131131
<Compile Include="V8\V8ArrayBufferOrViewKind.cs" />
132132
<Compile Include="V8\V8CacheKind.cs" />
133+
<Compile Include="V8\V8CpuProfile.cs" />
134+
<Compile Include="V8\V8CpuProfileFlags.cs" />
133135
<Compile Include="V8\V8DebugAgent.cs" />
134136
<Compile Include="V8\V8DebugClient.cs" />
135137
<Compile Include="V8\V8RuntimeHeapInfo.cs" />
@@ -142,6 +144,7 @@
142144
<Compile Include="V8\V8TestProxy.cs" />
143145
<Compile Include="Windows\IHostWindow.cs" />
144146
<Compile Include="Windows\IWindowsScriptObject.cs" />
147+
<Compile Include="Windows\Nothing.cs" />
145148
<Compile Include="Windows\WindowsScriptEngineFlags.cs" />
146149
<Compile Include="Util\IDynamic.cs" />
147150
<Compile Include="Util\SpecialMemberNames.cs" />

ClearScript/DelegateFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static Delegate CreateFunc<TResult>(ScriptEngine engine, object target, i
2929
throw new ArgumentException("Invalid argument count", "argCount");
3030
}
3131

32-
var typeArgs = Enumerable.Repeat(typeof(object), argCount).Concat(new[] { typeof(TResult) }).ToArray();
32+
var typeArgs = Enumerable.Repeat(typeof(object), argCount).Concat(typeof(TResult).ToEnumerable()).ToArray();
3333
return CreateDelegate(engine, target, funcTemplates[argCount].MakeSpecificType(typeArgs));
3434
}
3535

@@ -77,7 +77,7 @@ private static Delegate CreateSimpleDelegate(ScriptEngine engine, object target,
7777
Type shimType;
7878
if (method.ReturnType == typeof(void))
7979
{
80-
var typeArgs = paramTypes.Concat(new[] { delegateType }).ToArray();
80+
var typeArgs = paramTypes.Concat(delegateType.ToEnumerable()).ToArray();
8181
shimType = procShimTemplates[paramTypes.Length].MakeSpecificType(typeArgs);
8282
}
8383
else
@@ -127,7 +127,7 @@ private static Delegate CreateComplexDelegate(ScriptEngine engine, object target
127127
}
128128
else
129129
{
130-
var typeArgs = innerParamTypes.Concat(new[] { method.ReturnType }).ToArray();
130+
var typeArgs = innerParamTypes.Concat(method.ReturnType.ToEnumerable()).ToArray();
131131
innerDelegateType = funcTemplates[innerParamTypes.Length].MakeSpecificType(typeArgs);
132132
}
133133

ClearScript/Exports/CallbackManager.h

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
DEFINE_CALLBACK_MANAGER_INTERNAL(NAME, TYPE, RecursiveMutex)
1818

1919
#define DEFINE_CALLBACK_MANAGER_INTERNAL(NAME, CALLBACK_TYPE, MUTEX_TYPE) \
20-
struct NAME##CallbackTraits: public CallbackTraits<NAME##CallbackTraits, CALLBACK_TYPE, MUTEX_TYPE> {};
20+
struct NAME##CallbackTraits final: public CallbackTraits<NAME##CallbackTraits, CALLBACK_TYPE, MUTEX_TYPE> {};
2121

2222
#define CALLBACK_MANAGER(NAME) \
2323
CallbackManager<NAME##CallbackTraits>
@@ -27,7 +27,7 @@
2727
//-----------------------------------------------------------------------------
2828

2929
template <typename TTraits, typename TCallback, typename TMutex>
30-
class CallbackTraits
30+
class CallbackTraits final
3131
{
3232
PROHIBIT_CONSTRUCT(CallbackTraits)
3333

@@ -61,7 +61,7 @@ TMutex* CallbackTraits<TTraits, TCallback, TMutex>::ms_pMutex = new TMutex;
6161
//-----------------------------------------------------------------------------
6262

6363
template <typename TTraits, size_t NIndex, typename TCallback>
64-
class CallbackSlot
64+
class CallbackSlot final
6565
{
6666
PROHIBIT_CONSTRUCT(CallbackSlot)
6767
};
@@ -72,7 +72,7 @@ class CallbackSlot
7272

7373

7474
template <typename TTraits, size_t NIndex, typename TResult>
75-
class CallbackSlot<TTraits, NIndex, TResult()>
75+
class CallbackSlot<TTraits, NIndex, TResult()> final
7676
{
7777
PROHIBIT_CONSTRUCT(CallbackSlot)
7878

@@ -134,7 +134,7 @@ template <typename TTraits, size_t NIndex, typename TResult>
134134
std::function<TResult()>* CallbackSlot<TTraits, NIndex, TResult()>::ms_pFunction = nullptr;
135135

136136
template <typename TTraits, size_t NIndex, typename TResult, typename T0>
137-
class CallbackSlot<TTraits, NIndex, TResult(T0)>
137+
class CallbackSlot<TTraits, NIndex, TResult(T0)> final
138138
{
139139
PROHIBIT_CONSTRUCT(CallbackSlot)
140140

@@ -196,7 +196,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0>
196196
std::function<TResult(T0)>* CallbackSlot<TTraits, NIndex, TResult(T0)>::ms_pFunction = nullptr;
197197

198198
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1>
199-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1)>
199+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1)> final
200200
{
201201
PROHIBIT_CONSTRUCT(CallbackSlot)
202202

@@ -258,7 +258,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
258258
std::function<TResult(T0, T1)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1)>::ms_pFunction = nullptr;
259259

260260
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2>
261-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2)>
261+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2)> final
262262
{
263263
PROHIBIT_CONSTRUCT(CallbackSlot)
264264

@@ -320,7 +320,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
320320
std::function<TResult(T0, T1, T2)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2)>::ms_pFunction = nullptr;
321321

322322
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3>
323-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3)>
323+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3)> final
324324
{
325325
PROHIBIT_CONSTRUCT(CallbackSlot)
326326

@@ -382,7 +382,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
382382
std::function<TResult(T0, T1, T2, T3)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3)>::ms_pFunction = nullptr;
383383

384384
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4>
385-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4)>
385+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4)> final
386386
{
387387
PROHIBIT_CONSTRUCT(CallbackSlot)
388388

@@ -444,7 +444,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
444444
std::function<TResult(T0, T1, T2, T3, T4)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4)>::ms_pFunction = nullptr;
445445

446446
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
447-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)>
447+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)> final
448448
{
449449
PROHIBIT_CONSTRUCT(CallbackSlot)
450450

@@ -506,7 +506,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
506506
std::function<TResult(T0, T1, T2, T3, T4, T5)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5)>::ms_pFunction = nullptr;
507507

508508
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
509-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)>
509+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)> final
510510
{
511511
PROHIBIT_CONSTRUCT(CallbackSlot)
512512

@@ -568,7 +568,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
568568
std::function<TResult(T0, T1, T2, T3, T4, T5, T6)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6)>::ms_pFunction = nullptr;
569569

570570
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
571-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)>
571+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)> final
572572
{
573573
PROHIBIT_CONSTRUCT(CallbackSlot)
574574

@@ -630,7 +630,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
630630
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7)>::ms_pFunction = nullptr;
631631

632632
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
633-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
633+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)> final
634634
{
635635
PROHIBIT_CONSTRUCT(CallbackSlot)
636636

@@ -692,7 +692,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
692692
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8)>::ms_pFunction = nullptr;
693693

694694
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
695-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
695+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> final
696696
{
697697
PROHIBIT_CONSTRUCT(CallbackSlot)
698698

@@ -754,7 +754,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
754754
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>::ms_pFunction = nullptr;
755755

756756
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
757-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
757+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> final
758758
{
759759
PROHIBIT_CONSTRUCT(CallbackSlot)
760760

@@ -816,7 +816,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
816816
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>::ms_pFunction = nullptr;
817817

818818
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
819-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
819+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> final
820820
{
821821
PROHIBIT_CONSTRUCT(CallbackSlot)
822822

@@ -878,7 +878,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
878878
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::ms_pFunction = nullptr;
879879

880880
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
881-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>
881+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> final
882882
{
883883
PROHIBIT_CONSTRUCT(CallbackSlot)
884884

@@ -940,7 +940,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
940940
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>::ms_pFunction = nullptr;
941941

942942
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
943-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>
943+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> final
944944
{
945945
PROHIBIT_CONSTRUCT(CallbackSlot)
946946

@@ -1002,7 +1002,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
10021002
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>::ms_pFunction = nullptr;
10031003

10041004
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
1005-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>
1005+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> final
10061006
{
10071007
PROHIBIT_CONSTRUCT(CallbackSlot)
10081008

@@ -1064,7 +1064,7 @@ template <typename TTraits, size_t NIndex, typename TResult, typename T0, typena
10641064
std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>* CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>::ms_pFunction = nullptr;
10651065

10661066
template <typename TTraits, size_t NIndex, typename TResult, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
1067-
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>
1067+
class CallbackSlot<TTraits, NIndex, TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> final
10681068
{
10691069
PROHIBIT_CONSTRUCT(CallbackSlot)
10701070

@@ -1130,7 +1130,7 @@ std::function<TResult(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
11301130
//-----------------------------------------------------------------------------
11311131

11321132
template <typename TTraits>
1133-
class CallbackManager
1133+
class CallbackManager final
11341134
{
11351135
PROHIBIT_CONSTRUCT(CallbackManager)
11361136

0 commit comments

Comments
 (0)