Version 7.2.4: Added V8ScriptEngineFlags.UseCaseInsensitiveMemberBinding (GitHub Issue #363); restored compatibility with older Linux systems going back to glibc-2.23 (GitHub Issue #362); overhauled attribute access and added custom attribute loaders; added case-insensitivity support to PropertyBag and DynamicHostObject; added .NET 6 targets to test projects; updated API documentation. Tested with V8 10.0.139.8.
This commit is contained in:
Родитель
3e13f32c22
Коммит
d6cc67767d
|
@ -73,6 +73,7 @@
|
|||
<s:Boolean x:Key="/Default/UserDictionary/Words/=E_00F3in/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=FILEEXISTS/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=fine/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=foobarbaz/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=FUNCDESC/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=FUNCFLAGS/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=guids/@EntryIndexedValue">True</s:Boolean>
|
||||
|
@ -92,6 +93,7 @@
|
|||
<s:Boolean x:Key="/Default/UserDictionary/Words/=MEMBERNOTFOUND/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=memid/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=MSXML/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=NETFRAMEWORK/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=NOINTERFACE/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Numerics/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=oleaut/@EntryIndexedValue">True</s:Boolean>
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
<s:Boolean x:Key="/Default/UserDictionary/Words/=MEMBERNOTFOUND/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=memid/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=MSXML/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=NETFRAMEWORK/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=NOINTERFACE/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Numerics/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=oleaut/@EntryIndexedValue">True</s:Boolean>
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace Microsoft.ClearScript
|
|||
type == typeof(DateTime) ||
|
||||
type == typeof(DateTimeOffset) ||
|
||||
type == typeof(TimeSpan) ||
|
||||
type.GetCustomAttributes(typeof(ImmutableValueAttribute), false).Any())
|
||||
type.GetOrLoadCustomAttributes<ImmutableValueAttribute>(false).Any())
|
||||
{
|
||||
map = (ICanonicalRefMap)typeof(CanonicalRefMap<>).MakeGenericType(type).CreateInstance();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Microsoft.ClearScript
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a custom attribute loader.
|
||||
/// </summary>
|
||||
public class CustomAttributeLoader
|
||||
{
|
||||
// ReSharper disable EmptyConstructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new <see cref="CustomAttributeLoader"/> instance.
|
||||
/// </summary>
|
||||
public CustomAttributeLoader()
|
||||
{
|
||||
// the help file builder (SHFB) insists on an empty constructor here
|
||||
}
|
||||
|
||||
// ReSharper restore EmptyConstructor
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Loads custom attributes of the specified type for the given resource.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type, or a base type, of the custom attributes to load.</typeparam>
|
||||
/// <param name="resource">The resource for which to load custom attributes of type <typeparamref name="T"/>.</param>
|
||||
/// <param name="inherit"><c>True</c> to include custom attributes of type <typeparamref name="T"/> defined for ancestors of <paramref name="resource"/>, <c>false</c> otherwise.</param>
|
||||
/// <returns>An array of custom attributes of type <typeparamref name="T"/>.</returns>.
|
||||
/// <remarks>
|
||||
/// This method is performance-critical. Overrides must not invoke script engine methods or
|
||||
/// other ClearScript functionality. The base implementation loads custom attributes via
|
||||
/// reflection.
|
||||
/// </remarks>
|
||||
public virtual T[] LoadCustomAttributes<T>(ICustomAttributeProvider resource, bool inherit) where T : Attribute
|
||||
{
|
||||
if (resource is MemberInfo member)
|
||||
{
|
||||
return Attribute.GetCustomAttributes(member, typeof(T), inherit).OfType<T>().ToArray();
|
||||
}
|
||||
|
||||
if (resource is ParameterInfo parameter)
|
||||
{
|
||||
return Attribute.GetCustomAttributes(parameter, typeof(T), inherit).OfType<T>().ToArray();
|
||||
}
|
||||
|
||||
if (resource is Assembly assembly)
|
||||
{
|
||||
return Attribute.GetCustomAttributes(assembly, typeof(T), inherit).OfType<T>().ToArray();
|
||||
}
|
||||
|
||||
if (resource is Module module)
|
||||
{
|
||||
return Attribute.GetCustomAttributes(module, typeof(T), inherit).OfType<T>().ToArray();
|
||||
}
|
||||
|
||||
return resource.GetCustomAttributes(typeof(T), inherit).OfType<T>().ToArray();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Microsoft.ClearScript.Util;
|
||||
|
||||
namespace Microsoft.ClearScript
|
||||
{
|
||||
internal static partial class CustomAttributes
|
||||
{
|
||||
public static void ClearCache()
|
||||
{
|
||||
keyCache.Values.ForEach(key => attributeCache.Remove(key));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
namespace Microsoft.ClearScript
|
||||
{
|
||||
internal static partial class CustomAttributes
|
||||
{
|
||||
public static void ClearCache()
|
||||
{
|
||||
attributeCache.Clear();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Microsoft.ClearScript.Util;
|
||||
|
||||
namespace Microsoft.ClearScript
|
||||
{
|
||||
internal static partial class CustomAttributes
|
||||
{
|
||||
private static readonly ConcurrentDictionary<(ICustomAttributeProvider, Type), object> keyCache = new ConcurrentDictionary<(ICustomAttributeProvider, Type), object>();
|
||||
private static readonly ConditionalWeakTable<object, object> attributeCache = new ConditionalWeakTable<object, object>();
|
||||
|
||||
public static T[] GetOrLoad<T>(ICustomAttributeProvider resource, bool inherit) where T : Attribute
|
||||
{
|
||||
return (T[])attributeCache.GetValue(GetKey<T>(resource), _ => HostSettings.CustomAttributeLoader.LoadCustomAttributes<T>(resource, inherit) ?? ArrayHelpers.GetEmptyArray<T>());
|
||||
}
|
||||
|
||||
public static bool Has<T>(ICustomAttributeProvider resource, bool inherit) where T : Attribute
|
||||
{
|
||||
return GetOrLoad<T>(resource, inherit).Length > 0;
|
||||
}
|
||||
|
||||
private static object GetKey<T>(ICustomAttributeProvider resource) where T : Attribute
|
||||
{
|
||||
return keyCache.GetOrAdd((resource, typeof(T)), _ => new object());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#define CLEARSCRIPT_VERSION_STRING "7.2.3"
|
||||
#define CLEARSCRIPT_VERSION_COMMA_SEPARATED 7,2,3
|
||||
#define CLEARSCRIPT_VERSION_STRING_INFORMATIONAL "7.2.3"
|
||||
#define CLEARSCRIPT_VERSION_STRING "7.2.4"
|
||||
#define CLEARSCRIPT_VERSION_COMMA_SEPARATED 7,2,4
|
||||
#define CLEARSCRIPT_VERSION_STRING_INFORMATIONAL "7.2.4"
|
||||
#define CLEARSCRIPT_FILE_FLAGS 0L
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace Microsoft.ClearScript
|
|||
|
||||
private static bool IsScriptableExtensionMethod(MethodInfo method, Type accessContext, ScriptAccess defaultAccess)
|
||||
{
|
||||
return method.IsScriptable(accessContext, defaultAccess) && method.IsDefined(typeof(ExtensionAttribute), false);
|
||||
return method.IsScriptable(accessContext, defaultAccess) && method.HasCustomAttributes<ExtensionAttribute>(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ using System.Dynamic;
|
|||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.ClearScript.Util;
|
||||
using Microsoft.ClearScript.Util.COM;
|
||||
|
@ -1665,7 +1664,7 @@ namespace Microsoft.ClearScript
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (type.IsImport && (type.Assembly.GetCustomAttribute(typeof(ImportedFromTypeLibAttribute)) != null))
|
||||
else if (type.IsImport && (type.Assembly.GetOrLoadCustomAttribute<ImportedFromTypeLibAttribute>(false) != null))
|
||||
{
|
||||
type.Assembly.GetReferencedEnums().ForEach(collection.AddType);
|
||||
return collection;
|
||||
|
|
|
@ -53,13 +53,13 @@ namespace Microsoft.ClearScript
|
|||
{
|
||||
if (invokeFlags.HasFlag(BindingFlags.InvokeMethod))
|
||||
{
|
||||
if (memberName == "get")
|
||||
if (string.Equals(memberName, "get", invokeFlags.GetMemberNameComparison()))
|
||||
{
|
||||
result = target.InvokeMember(name, BindingFlags.GetProperty, args, bindArgs, null, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (memberName == "set")
|
||||
if (string.Equals(memberName, "set", invokeFlags.GetMemberNameComparison()))
|
||||
{
|
||||
result = target.InvokeMember(name, BindingFlags.SetProperty, args, bindArgs, null, true);
|
||||
return true;
|
||||
|
|
|
@ -804,6 +804,12 @@ namespace Microsoft.ClearScript
|
|||
|
||||
#region member invocation
|
||||
|
||||
private bool UseCaseInsensitiveMemberBinding => Engine.UseCaseInsensitiveMemberBinding;
|
||||
|
||||
private StringComparison MemberNameComparison => UseCaseInsensitiveMemberBinding ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
|
||||
|
||||
private StringComparer MemberNameComparer => UseCaseInsensitiveMemberBinding ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
|
||||
|
||||
private T HostInvoke<T>(Func<T> func)
|
||||
{
|
||||
BindTargetMemberData();
|
||||
|
@ -824,6 +830,11 @@ namespace Microsoft.ClearScript
|
|||
bindFlags |= BindingFlags.Instance;
|
||||
}
|
||||
|
||||
if (UseCaseInsensitiveMemberBinding)
|
||||
{
|
||||
bindFlags |= BindingFlags.IgnoreCase;
|
||||
}
|
||||
|
||||
return bindFlags;
|
||||
}
|
||||
|
||||
|
@ -874,6 +885,15 @@ namespace Microsoft.ClearScript
|
|||
invokeFlags &= ~BindingFlags.Instance;
|
||||
}
|
||||
|
||||
if (UseCaseInsensitiveMemberBinding)
|
||||
{
|
||||
invokeFlags |= BindingFlags.IgnoreCase;
|
||||
}
|
||||
else
|
||||
{
|
||||
invokeFlags &= ~BindingFlags.IgnoreCase;
|
||||
}
|
||||
|
||||
if (invokeFlags.HasFlag(BindingFlags.GetProperty))
|
||||
{
|
||||
invokeFlags |= BindingFlags.GetField;
|
||||
|
@ -1293,7 +1313,7 @@ namespace Microsoft.ClearScript
|
|||
}
|
||||
}
|
||||
|
||||
if (ThisReflect.GetMethods(GetMethodBindFlags()).Any(method => method.Name == name))
|
||||
if (ThisReflect.GetMethods(GetMethodBindFlags()).Any(method => string.Equals(method.Name, name, MemberNameComparison)))
|
||||
{
|
||||
// The target appears to have a method with the right name, but it could be an
|
||||
// extension method that fails to bind. If that happens, we should attempt the
|
||||
|
@ -1416,7 +1436,7 @@ namespace Microsoft.ClearScript
|
|||
{
|
||||
if (HostMethodMap == null)
|
||||
{
|
||||
HostMethodMap = new Dictionary<string, HostMethod>();
|
||||
HostMethodMap = new Dictionary<string, HostMethod>(MemberNameComparer);
|
||||
}
|
||||
|
||||
if (!HostMethodMap.TryGetValue(name, out var hostMethod))
|
||||
|
@ -1490,12 +1510,12 @@ namespace Microsoft.ClearScript
|
|||
return hostIndexedProperty;
|
||||
}
|
||||
|
||||
var method = ThisReflect.GetMethods(GetMethodBindFlags()).FirstOrDefault(testMethod => testMethod.Name == name);
|
||||
var method = ThisReflect.GetMethods(GetMethodBindFlags()).FirstOrDefault(testMethod => string.Equals(testMethod.Name, name, MemberNameComparison));
|
||||
if (method != null)
|
||||
{
|
||||
if (HostMethodMap == null)
|
||||
{
|
||||
HostMethodMap = new Dictionary<string, HostMethod>();
|
||||
HostMethodMap = new Dictionary<string, HostMethod>(MemberNameComparer);
|
||||
}
|
||||
|
||||
if (!HostMethodMap.TryGetValue(name, out var hostMethod))
|
||||
|
@ -1819,7 +1839,7 @@ namespace Microsoft.ClearScript
|
|||
|
||||
FieldInfo IReflect.GetField(string name, BindingFlags bindFlags)
|
||||
{
|
||||
var fields = ThisReflect.GetFields(bindFlags).Where(field => field.Name == name).ToArray();
|
||||
var fields = ThisReflect.GetFields(bindFlags).Where(field => string.Equals(field.Name, name, bindFlags.GetMemberNameComparison())).ToArray();
|
||||
if (fields.Length < 1)
|
||||
{
|
||||
return null;
|
||||
|
@ -1849,7 +1869,7 @@ namespace Microsoft.ClearScript
|
|||
|
||||
MemberInfo[] IReflect.GetMember(string name, BindingFlags bindFlags)
|
||||
{
|
||||
return ThisReflect.GetMembers(bindFlags).Where(member => member.Name == name).ToArray();
|
||||
return ThisReflect.GetMembers(bindFlags).Where(member => string.Equals(member.Name, name, bindFlags.GetMemberNameComparison())).ToArray();
|
||||
}
|
||||
|
||||
MemberInfo[] IReflect.GetMembers(BindingFlags bindFlags)
|
||||
|
@ -1859,7 +1879,7 @@ namespace Microsoft.ClearScript
|
|||
|
||||
MethodInfo IReflect.GetMethod(string name, BindingFlags bindFlags)
|
||||
{
|
||||
var methods = ThisReflect.GetMethods(bindFlags).Where(method => method.Name == name).ToArray();
|
||||
var methods = ThisReflect.GetMethods(bindFlags).Where(method => string.Equals(method.Name, name, bindFlags.GetMemberNameComparison())).ToArray();
|
||||
if (methods.Length < 1)
|
||||
{
|
||||
return null;
|
||||
|
@ -1913,7 +1933,7 @@ namespace Microsoft.ClearScript
|
|||
|
||||
PropertyInfo IReflect.GetProperty(string name, BindingFlags bindFlags)
|
||||
{
|
||||
var properties = ThisReflect.GetProperties(bindFlags).Where(property => property.Name == name).ToArray();
|
||||
var properties = ThisReflect.GetProperties(bindFlags).Where(property => string.Equals(property.Name, name, bindFlags.GetMemberNameComparison())).ToArray();
|
||||
if (properties.Length < 1)
|
||||
{
|
||||
return null;
|
||||
|
|
|
@ -8,6 +8,9 @@ namespace Microsoft.ClearScript
|
|||
/// </summary>
|
||||
public static class HostSettings
|
||||
{
|
||||
private static CustomAttributeLoader customAttributeLoader;
|
||||
private static readonly CustomAttributeLoader defaultCustomAttributeLoader = new CustomAttributeLoader();
|
||||
|
||||
/// <summary>
|
||||
/// Enables or disables assembly table usage.
|
||||
/// </summary>
|
||||
|
@ -34,5 +37,19 @@ namespace Microsoft.ClearScript
|
|||
/// resources such as native assemblies and related data files.
|
||||
/// </remarks>
|
||||
public static string AuxiliarySearchPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the custom attribute loader for ClearScript.
|
||||
/// </summary>
|
||||
public static CustomAttributeLoader CustomAttributeLoader
|
||||
{
|
||||
get => customAttributeLoader ?? defaultCustomAttributeLoader;
|
||||
|
||||
set
|
||||
{
|
||||
customAttributeLoader = value;
|
||||
CustomAttributes.ClearCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,7 +164,7 @@ namespace Microsoft.ClearScript
|
|||
var type = GetSpecificTypeNoThrow();
|
||||
if (type != null)
|
||||
{
|
||||
var nestedTypes = type.GetScriptableNestedTypes(invokeFlags, context.AccessContext, context.DefaultAccess).Where(testType => testType.GetRootName() == name).ToIList();
|
||||
var nestedTypes = type.GetScriptableNestedTypes(invokeFlags, context.AccessContext, context.DefaultAccess).Where(testType => string.Equals(testType.GetRootName(), name, invokeFlags.GetMemberNameComparison())).ToIList();
|
||||
if (nestedTypes.Count > 0)
|
||||
{
|
||||
var tempResult = Wrap(nestedTypes.Select(testType => testType.ApplyTypeArguments(type.GetGenericArguments())).ToArray());
|
||||
|
|
|
@ -92,7 +92,7 @@ namespace Microsoft.ClearScript
|
|||
BindingFlags.PutDispProperty |
|
||||
BindingFlags.PutRefDispProperty;
|
||||
|
||||
if (name == "out")
|
||||
if (string.Equals(name, "out", invokeFlags.GetMemberNameComparison()))
|
||||
{
|
||||
if ((invokeFlags & getPropertyFlags) != 0)
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ namespace Microsoft.ClearScript
|
|||
return true;
|
||||
}
|
||||
}
|
||||
else if (name == "ref")
|
||||
else if (string.Equals(name, "ref", invokeFlags.GetMemberNameComparison()))
|
||||
{
|
||||
if ((invokeFlags & getPropertyFlags) != 0)
|
||||
{
|
||||
|
@ -108,7 +108,7 @@ namespace Microsoft.ClearScript
|
|||
return true;
|
||||
}
|
||||
}
|
||||
else if (name == "value")
|
||||
else if (string.Equals(name, "value", invokeFlags.GetMemberNameComparison()))
|
||||
{
|
||||
if (invokeFlags.HasFlag(BindingFlags.InvokeMethod))
|
||||
{
|
||||
|
|
|
@ -18,15 +18,15 @@ using System.Runtime.InteropServices;
|
|||
[assembly: InternalsVisibleTo("ClearScriptTest")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
||||
namespace Microsoft.ClearScript.Properties
|
||||
{
|
||||
internal static class ClearScriptVersion
|
||||
{
|
||||
public const string Triad = "7.2.3";
|
||||
public const string Informational = "7.2.3";
|
||||
public const string Triad = "7.2.4";
|
||||
public const string Informational = "7.2.4";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: InternalsVisibleTo("ClearScriptTest")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -16,6 +16,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: InternalsVisibleTo("ClearScriptTest")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -15,6 +15,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: InternalsVisibleTo("ClearScriptTest")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace Microsoft.ClearScript
|
|||
#region constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new writable <see cref="PropertyBag"/>.
|
||||
/// Initializes a new writable <see cref="PropertyBag"/> with the default property name comparer.
|
||||
/// </summary>
|
||||
public PropertyBag()
|
||||
: this(false)
|
||||
|
@ -51,7 +51,7 @@ namespace Microsoft.ClearScript
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new <see cref="PropertyBag"/>.
|
||||
/// Initializes a new <see cref="PropertyBag"/> with the default property name comparer.
|
||||
/// </summary>
|
||||
/// <param name="isReadOnly"><c>True</c> to make the <see cref="PropertyBag"/> read-only, <c>false</c> to make it writable.</param>
|
||||
/// <remarks>
|
||||
|
@ -61,8 +61,27 @@ namespace Microsoft.ClearScript
|
|||
/// <see cref="ClearNoCheck">ClearNoCheck</see>.
|
||||
/// </remarks>
|
||||
public PropertyBag(bool isReadOnly)
|
||||
: this(isReadOnly, null)
|
||||
{
|
||||
dictionary = new Dictionary<string, object>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new writable <see cref="PropertyBag"/>.
|
||||
/// </summary>
|
||||
/// <param name="comparer">The comparer to use for property names, or <c>null</c> to use the default string comparer.</param>
|
||||
public PropertyBag(IEqualityComparer<string> comparer)
|
||||
: this(false, comparer)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new <see cref="PropertyBag"/>.
|
||||
/// </summary>
|
||||
/// <param name="isReadOnly"><c>True</c> to make the <see cref="PropertyBag"/> read-only, <c>false</c> to make it writable.</param>
|
||||
/// <param name="comparer">The comparer to use for property names, or <c>null</c> to use the default string comparer.</param>
|
||||
public PropertyBag(bool isReadOnly, IEqualityComparer<string> comparer)
|
||||
{
|
||||
dictionary = new Dictionary<string, object>(comparer);
|
||||
collection = dictionary;
|
||||
this.isReadOnly = isReadOnly;
|
||||
}
|
||||
|
@ -71,6 +90,11 @@ namespace Microsoft.ClearScript
|
|||
|
||||
#region public members
|
||||
|
||||
/// <summary>
|
||||
/// Gets the property name comparer for the <see cref="PropertyBag"/>.
|
||||
/// </summary>
|
||||
public IEqualityComparer<string> Comparer => dictionary.Comparer;
|
||||
|
||||
/// <summary>
|
||||
/// Sets a property value without checking whether the <see cref="PropertyBag"/> is read-only.
|
||||
/// </summary>
|
||||
|
|
|
@ -1453,6 +1453,8 @@ namespace Microsoft.ClearScript
|
|||
|
||||
internal virtual bool EnumerateExtensionMethods => EnumerateInstanceMethods;
|
||||
|
||||
internal virtual bool UseCaseInsensitiveMemberBinding => false;
|
||||
|
||||
internal abstract void AddHostItem(string itemName, HostItemFlags flags, object item);
|
||||
|
||||
internal object PrepareResult<T>(T result, ScriptMemberFlags flags, bool isListIndexResult)
|
||||
|
|
|
@ -74,14 +74,19 @@ namespace Microsoft.ClearScript.Util
|
|||
return null;
|
||||
}
|
||||
|
||||
public static T GetAttribute<T>(this Assembly assembly, bool inherit) where T : Attribute
|
||||
public static T GetOrLoadCustomAttribute<T>(this Assembly assembly, bool inherit = true) where T : Attribute
|
||||
{
|
||||
return Attribute.GetCustomAttributes(assembly, typeof(T), inherit).SingleOrDefault() as T;
|
||||
return CustomAttributes.GetOrLoad<T>(assembly, inherit).SingleOrDefault();
|
||||
}
|
||||
|
||||
public static IEnumerable<T> GetAttributes<T>(this Assembly assembly, bool inherit) where T : Attribute
|
||||
public static IEnumerable<T> GetOrLoadCustomAttributes<T>(this Assembly assembly, bool inherit = true) where T : Attribute
|
||||
{
|
||||
return Attribute.GetCustomAttributes(assembly, typeof(T), inherit).OfType<T>();
|
||||
return CustomAttributes.GetOrLoad<T>(assembly, inherit);
|
||||
}
|
||||
|
||||
public static bool HasCustomAttributes<T>(this Assembly assembly, bool inherit = true) where T : Attribute
|
||||
{
|
||||
return CustomAttributes.Has<T>(assembly, inherit);
|
||||
}
|
||||
|
||||
public static bool IsFriendOf(this Assembly thisAssembly, Assembly thatAssembly)
|
||||
|
@ -92,7 +97,7 @@ namespace Microsoft.ClearScript.Util
|
|||
}
|
||||
|
||||
var thisName = thisAssembly.GetName();
|
||||
foreach (var attribute in thatAssembly.GetAttributes<InternalsVisibleToAttribute>(false))
|
||||
foreach (var attribute in thatAssembly.GetOrLoadCustomAttributes<InternalsVisibleToAttribute>(false))
|
||||
{
|
||||
var thatName = new AssemblyName(attribute.AssemblyName);
|
||||
if (AssemblyName.ReferenceMatchesDefinition(thatName, thisName))
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace Microsoft.ClearScript.Util
|
|||
for (var index = 0; index < parameters.Length; index++)
|
||||
{
|
||||
var param = parameters[index];
|
||||
if (Attribute.IsDefined(param, typeof(ParamArrayAttribute)))
|
||||
if (CustomAttributes.Has<ParamArrayAttribute>(param, false))
|
||||
{
|
||||
if ((index != (args.Length - 1)) || !param.ParameterType.IsInstanceOfType(args[index]))
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the MIT license.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
@ -221,7 +222,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static string GetScriptName(this MemberInfo member)
|
||||
{
|
||||
var attribute = member.GetAttribute<ScriptMemberAttribute>(true);
|
||||
var attribute = member.GetOrLoadCustomAttribute<ScriptMemberAttribute>();
|
||||
return attribute?.Name ?? member.GetShortName();
|
||||
}
|
||||
|
||||
|
@ -237,7 +238,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static ScriptAccess GetScriptAccess(this MemberInfo member, ScriptAccess defaultValue, bool chain = true)
|
||||
{
|
||||
var attribute = member.GetAttribute<ScriptUsageAttribute>(true);
|
||||
var attribute = member.GetOrLoadCustomAttribute<ScriptUsageAttribute>();
|
||||
if (attribute != null)
|
||||
{
|
||||
return attribute.Access;
|
||||
|
@ -253,14 +254,14 @@ namespace Microsoft.ClearScript.Util
|
|||
{
|
||||
if (testType.IsNested)
|
||||
{
|
||||
var nestedTypeAttribute = testType.GetAttribute<ScriptUsageAttribute>(true);
|
||||
var nestedTypeAttribute = testType.GetOrLoadCustomAttribute<ScriptUsageAttribute>();
|
||||
if (nestedTypeAttribute != null)
|
||||
{
|
||||
return nestedTypeAttribute.Access;
|
||||
}
|
||||
}
|
||||
|
||||
var typeAttribute = testType.GetAttribute<DefaultScriptUsageAttribute>(true);
|
||||
var typeAttribute = testType.GetOrLoadCustomAttribute<DefaultScriptUsageAttribute>();
|
||||
if (typeAttribute != null)
|
||||
{
|
||||
return typeAttribute.Access;
|
||||
|
@ -270,7 +271,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
} while (testType != null);
|
||||
|
||||
var assemblyAttribute = declaringType.Assembly.GetAttribute<DefaultScriptUsageAttribute>(true);
|
||||
var assemblyAttribute = declaringType.Assembly.GetOrLoadCustomAttribute<DefaultScriptUsageAttribute>();
|
||||
if (assemblyAttribute != null)
|
||||
{
|
||||
return assemblyAttribute.Access;
|
||||
|
@ -288,13 +289,13 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static bool IsDispID(this MemberInfo member, int dispid)
|
||||
{
|
||||
var attribute = member.GetAttribute<DispIdAttribute>(true);
|
||||
var attribute = member.GetOrLoadCustomAttribute<DispIdAttribute>();
|
||||
return (attribute != null) && (attribute.Value == dispid);
|
||||
}
|
||||
|
||||
public static ScriptMemberFlags GetScriptMemberFlags(this MemberInfo member)
|
||||
{
|
||||
var attribute = member.GetAttribute<ScriptMemberAttribute>(true);
|
||||
var attribute = member.GetOrLoadCustomAttribute<ScriptMemberAttribute>();
|
||||
return attribute?.Flags ?? ScriptMemberFlags.None;
|
||||
}
|
||||
|
||||
|
@ -305,11 +306,11 @@ namespace Microsoft.ClearScript.Util
|
|||
return (index >= 0) ? name.Substring(index + 1) : name;
|
||||
}
|
||||
|
||||
public static T GetAttribute<T>(this MemberInfo member, bool inherit) where T : Attribute
|
||||
public static T GetOrLoadCustomAttribute<T>(this MemberInfo member, bool inherit = true) where T : Attribute
|
||||
{
|
||||
try
|
||||
{
|
||||
return Attribute.GetCustomAttributes(member, typeof(T), inherit).SingleOrDefault() as T;
|
||||
return CustomAttributes.GetOrLoad<T>(member, inherit).SingleOrDefault();
|
||||
}
|
||||
catch (AmbiguousMatchException)
|
||||
{
|
||||
|
@ -318,13 +319,23 @@ namespace Microsoft.ClearScript.Util
|
|||
// this affects SqlDataReader and is indicative of a .NET issue described here:
|
||||
// http://connect.microsoft.com/VisualStudio/feedback/details/646399/attribute-isdefined-throws-ambiguousmatchexception-for-indexer-properties-and-inherited-attributes
|
||||
|
||||
return Attribute.GetCustomAttributes(member, typeof(T), false).SingleOrDefault() as T;
|
||||
return CustomAttributes.GetOrLoad<T>(member, false).SingleOrDefault();
|
||||
}
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<T> GetOrLoadCustomAttributes<T>(this MemberInfo member, bool inherit = true) where T : Attribute
|
||||
{
|
||||
return CustomAttributes.GetOrLoad<T>(member, inherit);
|
||||
}
|
||||
|
||||
public static bool HasCustomAttributes<T>(this MemberInfo member, bool inherit = true) where T : Attribute
|
||||
{
|
||||
return CustomAttributes.Has<T>(member, inherit);
|
||||
}
|
||||
|
||||
private static bool IsExplicitImplementation(this MemberInfo member)
|
||||
{
|
||||
return member.Name.IndexOf('.') >= 0;
|
||||
|
|
|
@ -7,6 +7,7 @@ using System.Diagnostics;
|
|||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
@ -263,6 +264,16 @@ namespace Microsoft.ClearScript.Util
|
|||
return searchPath.Split(searchPathSeparators, StringSplitOptions.RemoveEmptyEntries).Distinct(StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
public static StringComparison GetMemberNameComparison(this BindingFlags bindFlags)
|
||||
{
|
||||
return bindFlags.HasFlag(BindingFlags.IgnoreCase) ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
|
||||
}
|
||||
|
||||
public static StringComparer GetMemberNameComparer(this BindingFlags bindFlags)
|
||||
{
|
||||
return bindFlags.HasFlag(BindingFlags.IgnoreCase) ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region numeric index helpers
|
||||
|
|
|
@ -282,18 +282,18 @@ namespace Microsoft.ClearScript.Util
|
|||
// ReSharper restore UnusedMember.Local
|
||||
}
|
||||
|
||||
[DllImport("libdl.so", EntryPoint = "dlopen")]
|
||||
[DllImport("libdl.so.2", EntryPoint = "dlopen")]
|
||||
public static extern IntPtr LoadLibrary(
|
||||
[In] [MarshalAs(UnmanagedType.LPStr)] string path,
|
||||
[In] LoadLibraryFlags flags = LoadLibraryFlags.Now | LoadLibraryFlags.Global
|
||||
);
|
||||
|
||||
[DllImport("libdl.so", EntryPoint = "dlclose")]
|
||||
[DllImport("libdl.so.2", EntryPoint = "dlclose")]
|
||||
public static extern int FreeLibrary(
|
||||
[In] IntPtr hLibrary
|
||||
);
|
||||
|
||||
[DllImport("libdl.so", EntryPoint = "dlerror")]
|
||||
[DllImport("libdl.so.2", EntryPoint = "dlerror")]
|
||||
public static extern IntPtr GetLoadLibraryErrorMessage();
|
||||
|
||||
// ReSharper restore MemberHidesStaticFromOuterClass
|
||||
|
|
|
@ -62,12 +62,12 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static bool IsCompilerGenerated(this Type type)
|
||||
{
|
||||
return type.IsDefined(typeof(CompilerGeneratedAttribute), false);
|
||||
return type.HasCustomAttributes<CompilerGeneratedAttribute>(false);
|
||||
}
|
||||
|
||||
public static bool IsFlagsEnum(this Type type)
|
||||
{
|
||||
return type.IsEnum && type.IsDefined(typeof(FlagsAttribute), false);
|
||||
return type.IsEnum && type.HasCustomAttributes<FlagsAttribute>(false);
|
||||
}
|
||||
|
||||
public static bool IsImportable(this Type type)
|
||||
|
@ -105,7 +105,7 @@ namespace Microsoft.ClearScript.Util
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!Attribute.IsDefined(type, typeof(CompilerGeneratedAttribute), false))
|
||||
if (!type.IsCompilerGenerated())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static bool HasExtensionMethods(this Type type)
|
||||
{
|
||||
return type.IsDefined(typeof(ExtensionAttribute), false);
|
||||
return type.HasCustomAttributes<ExtensionAttribute>(false);
|
||||
}
|
||||
|
||||
public static bool EqualsOrDeclares(this Type type, Type thatType)
|
||||
|
@ -313,13 +313,13 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static bool IsCOMVisible(this Type type)
|
||||
{
|
||||
var attribute = type.GetAttribute<ComVisibleAttribute>(false);
|
||||
var attribute = type.GetOrLoadCustomAttribute<ComVisibleAttribute>(false);
|
||||
if (attribute != null)
|
||||
{
|
||||
return attribute.Value;
|
||||
}
|
||||
|
||||
attribute = type.Assembly.GetAttribute<ComVisibleAttribute>(false);
|
||||
attribute = type.Assembly.GetOrLoadCustomAttribute<ComVisibleAttribute>(false);
|
||||
if (attribute != null)
|
||||
{
|
||||
return attribute.Value;
|
||||
|
@ -402,7 +402,7 @@ namespace Microsoft.ClearScript.Util
|
|||
{
|
||||
}
|
||||
|
||||
return type.GetScriptableEvents(bindFlags, accessContext, defaultAccess).FirstOrDefault(eventInfo => eventInfo.GetScriptName() == name);
|
||||
return type.GetScriptableEvents(bindFlags, accessContext, defaultAccess).FirstOrDefault(eventInfo => string.Equals(eventInfo.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
|
||||
public static IEnumerable<FieldInfo> GetScriptableFields(this Type type, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
|
@ -413,12 +413,12 @@ namespace Microsoft.ClearScript.Util
|
|||
public static FieldInfo GetScriptableField(this Type type, string name, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
{
|
||||
var candidate = type.GetField(name, bindFlags);
|
||||
if ((candidate != null) && candidate.IsScriptable(accessContext, defaultAccess) && (candidate.GetScriptName() == name))
|
||||
if ((candidate != null) && candidate.IsScriptable(accessContext, defaultAccess) && string.Equals(candidate.GetScriptName(), name, bindFlags.GetMemberNameComparison()))
|
||||
{
|
||||
return candidate;
|
||||
}
|
||||
|
||||
return type.GetScriptableFields(bindFlags, accessContext, defaultAccess).FirstOrDefault(field => field.GetScriptName() == name);
|
||||
return type.GetScriptableFields(bindFlags, accessContext, defaultAccess).FirstOrDefault(field => string.Equals(field.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
|
||||
public static IEnumerable<MethodInfo> GetScriptableMethods(this Type type, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
|
@ -435,7 +435,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static IEnumerable<MethodInfo> GetScriptableMethods(this Type type, string name, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
{
|
||||
return type.GetScriptableMethods(bindFlags, accessContext, defaultAccess).Where(method => method.GetScriptName() == name);
|
||||
return type.GetScriptableMethods(bindFlags, accessContext, defaultAccess).Where(method => string.Equals(method.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
|
||||
public static IEnumerable<PropertyInfo> GetScriptableProperties(this Type type, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
|
@ -469,7 +469,7 @@ namespace Microsoft.ClearScript.Util
|
|||
|
||||
public static IEnumerable<PropertyInfo> GetScriptableProperties(this Type type, string name, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
{
|
||||
return type.GetScriptableProperties(bindFlags, accessContext, defaultAccess).Where(property => property.GetScriptName() == name);
|
||||
return type.GetScriptableProperties(bindFlags, accessContext, defaultAccess).Where(property => string.Equals(property.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
|
||||
public static PropertyInfo GetScriptableProperty(this Type type, string name, BindingFlags bindFlags, Type accessContext, ScriptAccess defaultAccess)
|
||||
|
@ -483,7 +483,7 @@ namespace Microsoft.ClearScript.Util
|
|||
try
|
||||
{
|
||||
// ReSharper disable once RedundantEnumerableCastCall
|
||||
return candidates.OfType<PropertyInfo>().SingleOrDefault(property => (property.GetIndexParameters().Length < 1) && property.IsScriptable(accessContext, defaultAccess) && (property.GetScriptName() == name));
|
||||
return candidates.OfType<PropertyInfo>().SingleOrDefault(property => (property.GetIndexParameters().Length < 1) && property.IsScriptable(accessContext, defaultAccess) && string.Equals(property.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
catch (InvalidOperationException exception)
|
||||
{
|
||||
|
@ -733,7 +733,7 @@ namespace Microsoft.ClearScript.Util
|
|||
try
|
||||
{
|
||||
// ReSharper disable once RedundantEnumerableCastCall
|
||||
return candidates.OfType<EventInfo>().SingleOrDefault(eventInfo => eventInfo.IsScriptable(accessContext, defaultAccess) && (eventInfo.GetScriptName() == name));
|
||||
return candidates.OfType<EventInfo>().SingleOrDefault(eventInfo => eventInfo.IsScriptable(accessContext, defaultAccess) && string.Equals(eventInfo.GetScriptName(), name, bindFlags.GetMemberNameComparison()));
|
||||
}
|
||||
catch (InvalidOperationException exception)
|
||||
{
|
||||
|
|
|
@ -1351,6 +1351,8 @@ namespace Microsoft.ClearScript.V8
|
|||
|
||||
internal override bool EnumerateExtensionMethods => base.EnumerateExtensionMethods && !SuppressExtensionMethodEnumeration;
|
||||
|
||||
internal override bool UseCaseInsensitiveMemberBinding => engineFlags.HasFlag(V8ScriptEngineFlags.UseCaseInsensitiveMemberBinding);
|
||||
|
||||
internal override void AddHostItem(string itemName, HostItemFlags flags, object item)
|
||||
{
|
||||
VerifyNotDisposed();
|
||||
|
|
|
@ -94,7 +94,7 @@ namespace Microsoft.ClearScript.V8
|
|||
/// This conversion is unidirectional and lossy. This option is ignored if
|
||||
/// <see cref="EnableTaskPromiseConversion"/> is not specified.
|
||||
/// </summary>
|
||||
EnableValueTaskPromiseConversion = 0x00000200
|
||||
EnableValueTaskPromiseConversion = 0x00000200,
|
||||
|
||||
#else
|
||||
|
||||
|
@ -105,9 +105,15 @@ namespace Microsoft.ClearScript.V8
|
|||
/// This conversion is unidirectional and lossy. This option is ignored if
|
||||
/// <see cref="EnableTaskPromiseConversion"/> is not specified.
|
||||
/// </summary>
|
||||
EnableValueTaskPromiseConversion = 0x00000200
|
||||
EnableValueTaskPromiseConversion = 0x00000200,
|
||||
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Specifies that access to host object and class members is to be case-insensitive. This
|
||||
/// option can introduce ambiguity if the host resource has distinct members whose names
|
||||
/// differ only in case, so it should be used with caution.
|
||||
/// </summary>
|
||||
UseCaseInsensitiveMemberBinding = 0x00000400
|
||||
}
|
||||
}
|
||||
|
|
Двоичные данные
ClearScript/doc/Build.docx
Двоичные данные
ClearScript/doc/Build.docx
Двоичный файл не отображается.
Двоичные данные
ClearScript/doc/Reference.chm
Двоичные данные
ClearScript/doc/Reference.chm
Двоичный файл не отображается.
|
@ -11,6 +11,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCopyright("(c) Microsoft Corporation")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -11,6 +11,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCopyright("(c) Microsoft Corporation")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -2651,6 +2651,16 @@ namespace Microsoft.ClearScript.Test
|
|||
Assert.AreEqual("123,456.75", engine.Evaluate("StringT.Format('{0:###,###.00}', 123456.75)"));
|
||||
}
|
||||
|
||||
[TestMethod, TestCategory("JScriptCoreEngine")]
|
||||
public void JScriptCoreEngine_CustomAttributeLoader()
|
||||
{
|
||||
using (Scope.Create(() => HostSettings.CustomAttributeLoader, loader => HostSettings.CustomAttributeLoader = loader))
|
||||
{
|
||||
HostSettings.CustomAttributeLoader = new CamelCaseAttributeLoader();
|
||||
TestCamelCaseMemberBinding();
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper restore InconsistentNaming
|
||||
|
||||
#endregion
|
||||
|
@ -2723,6 +2733,205 @@ namespace Microsoft.ClearScript.Test
|
|||
|
||||
public static object StaticTestProperty { get; set; }
|
||||
|
||||
private void TestCamelCaseMemberBinding()
|
||||
{
|
||||
var random = MiscHelpers.CreateSeededRandom();
|
||||
var makeIntArray = new Func<int[]>(() => Enumerable.Range(0, random.Next(5, 25)).Select(_ => random.Next(int.MinValue, int.MaxValue)).ToArray());
|
||||
var makeShort = new Func<short>(() => Convert.ToInt16(random.Next(short.MinValue, short.MaxValue)));
|
||||
var makeEnum = new Func<TestEnum>(() => (TestEnum)random.Next(0, 5));
|
||||
var makeTimeSpan = new Func<TimeSpan>(() => TimeSpan.FromMilliseconds(makeShort()));
|
||||
|
||||
var testObject = new TestObject
|
||||
{
|
||||
BaseField = makeIntArray(),
|
||||
BaseScalarField = makeShort(),
|
||||
BaseEnumField = makeEnum(),
|
||||
BaseStructField = makeTimeSpan(),
|
||||
|
||||
BaseProperty = makeIntArray(),
|
||||
BaseScalarProperty = makeShort(),
|
||||
BaseEnumProperty = makeEnum(),
|
||||
BaseStructProperty = makeTimeSpan(),
|
||||
|
||||
BaseInterfaceProperty = makeIntArray(),
|
||||
BaseInterfaceScalarProperty = makeShort(),
|
||||
BaseInterfaceEnumProperty = makeEnum(),
|
||||
BaseInterfaceStructProperty = makeTimeSpan(),
|
||||
|
||||
Field = new[] { 0, 9, 1, 8, 2, 7, 3, 6, 4, 5 },
|
||||
ScalarField = makeShort(),
|
||||
EnumField = makeEnum(),
|
||||
StructField = makeTimeSpan(),
|
||||
|
||||
Property = makeIntArray(),
|
||||
ScalarProperty = makeShort(),
|
||||
EnumProperty = makeEnum(),
|
||||
StructProperty = makeTimeSpan(),
|
||||
|
||||
InterfaceProperty = makeIntArray(),
|
||||
InterfaceScalarProperty = makeShort(),
|
||||
InterfaceEnumProperty = makeEnum(),
|
||||
InterfaceStructProperty = makeTimeSpan(),
|
||||
};
|
||||
|
||||
var explicitBaseTestInterface = (IExplicitBaseTestInterface)testObject;
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceProperty = makeIntArray();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty = makeEnum();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
var explicitTestInterface = (IExplicitTestInterface)testObject;
|
||||
explicitTestInterface.ExplicitInterfaceProperty = makeIntArray();
|
||||
explicitTestInterface.ExplicitInterfaceScalarProperty = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceEnumProperty = makeEnum();
|
||||
explicitTestInterface.ExplicitInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
engine.AddHostType(typeof(TestEnum));
|
||||
engine.Script.testObject = testObject;
|
||||
engine.Script.testBaseInterface = testObject.ToRestrictedHostObject<IBaseTestInterface>(engine);
|
||||
engine.Script.testInterface = testObject.ToRestrictedHostObject<ITestInterface>(engine);
|
||||
engine.Script.explicitBaseTestInterface = testObject.ToRestrictedHostObject<IExplicitBaseTestInterface>(engine);
|
||||
engine.Script.explicitTestInterface = testObject.ToRestrictedHostObject<IExplicitTestInterface>(engine);
|
||||
|
||||
Assert.IsTrue(testObject.BaseField.SequenceEqual((int[])engine.Evaluate("testObject.baseField")));
|
||||
Assert.AreEqual(testObject.BaseScalarField, Convert.ToInt16(engine.Evaluate("testObject.baseScalarField")));
|
||||
Assert.AreEqual(testObject.BaseEnumField, engine.Evaluate("testObject.baseEnumField"));
|
||||
Assert.AreEqual(testObject.BaseStructField, engine.Evaluate("testObject.baseStructField"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseProperty")));
|
||||
Assert.AreEqual(testObject.BaseScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseEnumProperty, engine.Evaluate("testObject.baseEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseStructProperty, engine.Evaluate("testObject.baseStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseEvent.connect(function (sender, args) { sender.baseScalarProperty = args.arg; });");
|
||||
var arg = makeShort();
|
||||
testObject.BaseFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4), engine.Evaluate("testObject.baseMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseMethod<TestEnum>(4), engine.Evaluate("testObject.baseMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseBindTestMethod(Math.PI), engine.Evaluate("testObject.baseBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseInterfaceProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceEnumProperty, engine.Evaluate("testObject.baseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceStructProperty, engine.Evaluate("testObject.baseInterfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseInterfaceEvent.connect(function (sender, args) { sender.baseInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.BaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.baseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.baseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.Field.SequenceEqual((int[])engine.Evaluate("testObject.field")));
|
||||
Assert.AreEqual(testObject.ScalarField, Convert.ToInt16(engine.Evaluate("testObject.scalarField")));
|
||||
Assert.AreEqual(testObject.EnumField, engine.Evaluate("testObject.enumField"));
|
||||
Assert.AreEqual(testObject.StructField, engine.Evaluate("testObject.structField"));
|
||||
|
||||
Assert.IsTrue(testObject.Property.SequenceEqual((int[])engine.Evaluate("testObject.property")));
|
||||
Assert.AreEqual(testObject.ScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.scalarProperty")));
|
||||
Assert.AreEqual(testObject.EnumProperty, engine.Evaluate("testObject.enumProperty"));
|
||||
Assert.AreEqual(testObject.StructProperty, engine.Evaluate("testObject.structProperty"));
|
||||
Assert.AreEqual(testObject.ReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.readOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.event.connect(function (sender, args) { sender.scalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.FireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.FireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.Method("foo", 4), engine.Evaluate("testObject.method('foo', 4)"));
|
||||
Assert.AreEqual(testObject.Method("foo", 4, TestEnum.Second), engine.Evaluate("testObject.method('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.Method<TestEnum>(4), engine.Evaluate("testObject.method(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BindTestMethod(Math.PI), engine.Evaluate("testObject.bindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.InterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.interfaceProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.interfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceEnumProperty, engine.Evaluate("testObject.interfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceStructProperty, engine.Evaluate("testObject.interfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.interfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.interfaceEvent.connect(function (sender, args) { sender.interfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.InterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.InterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4), engine.Evaluate("testObject.interfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.interfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.interfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.interfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitBaseTestInterface.ExplicitBaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitBaseTestInterface.explicitBaseInterfaceEvent.connect(function (sender, args) { explicitBaseTestInterface.explicitBaseInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitTestInterface.ExplicitInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitTestInterface.explicitInterfaceProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitTestInterface.explicitInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceEnumProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceStructProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitTestInterface.explicitInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitTestInterface.explicitInterfaceEvent.connect(function (sender, args) { explicitTestInterface.explicitInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitTestInterface.explicitInterfaceBindTestMethod(Math.PI)"));
|
||||
}
|
||||
|
||||
private sealed class CamelCaseAttributeLoader : CustomAttributeLoader
|
||||
{
|
||||
public override T[] LoadCustomAttributes<T>(ICustomAttributeProvider resource, bool inherit)
|
||||
{
|
||||
if (typeof(T) == typeof(ScriptMemberAttribute) && (resource is MemberInfo member))
|
||||
{
|
||||
var name = char.ToLowerInvariant(member.Name[0]) + member.Name.Substring(1);
|
||||
return new[] { new ScriptMemberAttribute(name) } as T[];
|
||||
}
|
||||
|
||||
return base.LoadCustomAttributes<T>(resource, inherit);
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable UnusedMember.Local
|
||||
|
||||
private void PrivateMethod()
|
||||
|
|
|
@ -2702,6 +2702,16 @@ namespace Microsoft.ClearScript.Test
|
|||
Assert.AreEqual("123,456.75", engine.Evaluate("StringT.Format('{0:###,###.00}', 123456.75)"));
|
||||
}
|
||||
|
||||
[TestMethod, TestCategory("JScriptEngine")]
|
||||
public void JScriptEngine_CustomAttributeLoader()
|
||||
{
|
||||
using (Scope.Create(() => HostSettings.CustomAttributeLoader, loader => HostSettings.CustomAttributeLoader = loader))
|
||||
{
|
||||
HostSettings.CustomAttributeLoader = new CamelCaseAttributeLoader();
|
||||
TestCamelCaseMemberBinding();
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper restore InconsistentNaming
|
||||
|
||||
#endregion
|
||||
|
@ -2774,6 +2784,205 @@ namespace Microsoft.ClearScript.Test
|
|||
|
||||
public static object StaticTestProperty { get; set; }
|
||||
|
||||
private void TestCamelCaseMemberBinding()
|
||||
{
|
||||
var random = MiscHelpers.CreateSeededRandom();
|
||||
var makeIntArray = new Func<int[]>(() => Enumerable.Range(0, random.Next(5, 25)).Select(_ => random.Next(int.MinValue, int.MaxValue)).ToArray());
|
||||
var makeShort = new Func<short>(() => Convert.ToInt16(random.Next(short.MinValue, short.MaxValue)));
|
||||
var makeEnum = new Func<TestEnum>(() => (TestEnum)random.Next(0, 5));
|
||||
var makeTimeSpan = new Func<TimeSpan>(() => TimeSpan.FromMilliseconds(makeShort()));
|
||||
|
||||
var testObject = new TestObject
|
||||
{
|
||||
BaseField = makeIntArray(),
|
||||
BaseScalarField = makeShort(),
|
||||
BaseEnumField = makeEnum(),
|
||||
BaseStructField = makeTimeSpan(),
|
||||
|
||||
BaseProperty = makeIntArray(),
|
||||
BaseScalarProperty = makeShort(),
|
||||
BaseEnumProperty = makeEnum(),
|
||||
BaseStructProperty = makeTimeSpan(),
|
||||
|
||||
BaseInterfaceProperty = makeIntArray(),
|
||||
BaseInterfaceScalarProperty = makeShort(),
|
||||
BaseInterfaceEnumProperty = makeEnum(),
|
||||
BaseInterfaceStructProperty = makeTimeSpan(),
|
||||
|
||||
Field = new[] { 0, 9, 1, 8, 2, 7, 3, 6, 4, 5 },
|
||||
ScalarField = makeShort(),
|
||||
EnumField = makeEnum(),
|
||||
StructField = makeTimeSpan(),
|
||||
|
||||
Property = makeIntArray(),
|
||||
ScalarProperty = makeShort(),
|
||||
EnumProperty = makeEnum(),
|
||||
StructProperty = makeTimeSpan(),
|
||||
|
||||
InterfaceProperty = makeIntArray(),
|
||||
InterfaceScalarProperty = makeShort(),
|
||||
InterfaceEnumProperty = makeEnum(),
|
||||
InterfaceStructProperty = makeTimeSpan(),
|
||||
};
|
||||
|
||||
var explicitBaseTestInterface = (IExplicitBaseTestInterface)testObject;
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceProperty = makeIntArray();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty = makeEnum();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
var explicitTestInterface = (IExplicitTestInterface)testObject;
|
||||
explicitTestInterface.ExplicitInterfaceProperty = makeIntArray();
|
||||
explicitTestInterface.ExplicitInterfaceScalarProperty = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceEnumProperty = makeEnum();
|
||||
explicitTestInterface.ExplicitInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
engine.AddHostType(typeof(TestEnum));
|
||||
engine.Script.testObject = testObject;
|
||||
engine.Script.testBaseInterface = testObject.ToRestrictedHostObject<IBaseTestInterface>(engine);
|
||||
engine.Script.testInterface = testObject.ToRestrictedHostObject<ITestInterface>(engine);
|
||||
engine.Script.explicitBaseTestInterface = testObject.ToRestrictedHostObject<IExplicitBaseTestInterface>(engine);
|
||||
engine.Script.explicitTestInterface = testObject.ToRestrictedHostObject<IExplicitTestInterface>(engine);
|
||||
|
||||
Assert.IsTrue(testObject.BaseField.SequenceEqual((int[])engine.Evaluate("testObject.baseField")));
|
||||
Assert.AreEqual(testObject.BaseScalarField, Convert.ToInt16(engine.Evaluate("testObject.baseScalarField")));
|
||||
Assert.AreEqual(testObject.BaseEnumField, engine.Evaluate("testObject.baseEnumField"));
|
||||
Assert.AreEqual(testObject.BaseStructField, engine.Evaluate("testObject.baseStructField"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseProperty")));
|
||||
Assert.AreEqual(testObject.BaseScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseEnumProperty, engine.Evaluate("testObject.baseEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseStructProperty, engine.Evaluate("testObject.baseStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseEvent.connect(function (sender, args) { sender.baseScalarProperty = args.arg; });");
|
||||
var arg = makeShort();
|
||||
testObject.BaseFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4), engine.Evaluate("testObject.baseMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseMethod<TestEnum>(4), engine.Evaluate("testObject.baseMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseBindTestMethod(Math.PI), engine.Evaluate("testObject.baseBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseInterfaceProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceEnumProperty, engine.Evaluate("testObject.baseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceStructProperty, engine.Evaluate("testObject.baseInterfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseInterfaceEvent.connect(function (sender, args) { sender.baseInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.BaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.baseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.baseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.Field.SequenceEqual((int[])engine.Evaluate("testObject.field")));
|
||||
Assert.AreEqual(testObject.ScalarField, Convert.ToInt16(engine.Evaluate("testObject.scalarField")));
|
||||
Assert.AreEqual(testObject.EnumField, engine.Evaluate("testObject.enumField"));
|
||||
Assert.AreEqual(testObject.StructField, engine.Evaluate("testObject.structField"));
|
||||
|
||||
Assert.IsTrue(testObject.Property.SequenceEqual((int[])engine.Evaluate("testObject.property")));
|
||||
Assert.AreEqual(testObject.ScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.scalarProperty")));
|
||||
Assert.AreEqual(testObject.EnumProperty, engine.Evaluate("testObject.enumProperty"));
|
||||
Assert.AreEqual(testObject.StructProperty, engine.Evaluate("testObject.structProperty"));
|
||||
Assert.AreEqual(testObject.ReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.readOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.event.connect(function (sender, args) { sender.scalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.FireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.FireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.Method("foo", 4), engine.Evaluate("testObject.method('foo', 4)"));
|
||||
Assert.AreEqual(testObject.Method("foo", 4, TestEnum.Second), engine.Evaluate("testObject.method('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.Method<TestEnum>(4), engine.Evaluate("testObject.method(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BindTestMethod(Math.PI), engine.Evaluate("testObject.bindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.InterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.interfaceProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.interfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceEnumProperty, engine.Evaluate("testObject.interfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceStructProperty, engine.Evaluate("testObject.interfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.interfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.interfaceEvent.connect(function (sender, args) { sender.interfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
testObject.InterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.InterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4), engine.Evaluate("testObject.interfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.interfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.interfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.interfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitBaseTestInterface.ExplicitBaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitBaseTestInterface.explicitBaseInterfaceEvent.connect(function (sender, args) { explicitBaseTestInterface.explicitBaseInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitTestInterface.ExplicitInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitTestInterface.explicitInterfaceProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitTestInterface.explicitInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceEnumProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceStructProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitTestInterface.explicitInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitTestInterface.explicitInterfaceEvent.connect(function (sender, args) { explicitTestInterface.explicitInterfaceScalarProperty = args.arg; });");
|
||||
arg = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitTestInterface.explicitInterfaceBindTestMethod(Math.PI)"));
|
||||
}
|
||||
|
||||
private sealed class CamelCaseAttributeLoader : CustomAttributeLoader
|
||||
{
|
||||
public override T[] LoadCustomAttributes<T>(ICustomAttributeProvider resource, bool inherit)
|
||||
{
|
||||
if (typeof(T) == typeof(ScriptMemberAttribute) && (resource is MemberInfo member))
|
||||
{
|
||||
var name = char.ToLowerInvariant(member.Name[0]) + member.Name.Substring(1);
|
||||
return new[] { new ScriptMemberAttribute(name) } as T[];
|
||||
}
|
||||
|
||||
return base.LoadCustomAttributes<T>(resource, inherit);
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable UnusedMember.Local
|
||||
|
||||
private void PrivateMethod()
|
||||
|
|
|
@ -11,6 +11,6 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCopyright("(c) Microsoft Corporation")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("7.2.3")]
|
||||
[assembly: AssemblyFileVersion("7.2.3")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyVersion("7.2.4")]
|
||||
[assembly: AssemblyFileVersion("7.2.4")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.4")]
|
||||
|
|
|
@ -3632,6 +3632,25 @@ namespace Microsoft.ClearScript.Test
|
|||
Assert.AreEqual("hello, world!", task.Result);
|
||||
}
|
||||
|
||||
[TestMethod, TestCategory("V8ScriptEngine")]
|
||||
public void V8ScriptEngine_CaseInsensitiveMemberBinding()
|
||||
{
|
||||
engine.Dispose();
|
||||
engine = new V8ScriptEngine(V8ScriptEngineFlags.EnableDebugging | V8ScriptEngineFlags.UseCaseInsensitiveMemberBinding);
|
||||
|
||||
TestCamelCaseMemberBinding();
|
||||
}
|
||||
|
||||
[TestMethod, TestCategory("V8ScriptEngine")]
|
||||
public void V8ScriptEngine_CustomAttributeLoader()
|
||||
{
|
||||
using (Scope.Create(() => HostSettings.CustomAttributeLoader, loader => HostSettings.CustomAttributeLoader = loader))
|
||||
{
|
||||
HostSettings.CustomAttributeLoader = new CamelCaseAttributeLoader();
|
||||
TestCamelCaseMemberBinding();
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper restore InconsistentNaming
|
||||
|
||||
#endregion
|
||||
|
@ -3762,6 +3781,205 @@ namespace Microsoft.ClearScript.Test
|
|||
Assert.AreEqual(value.ToString(), engine.Evaluate("value.toString()"));
|
||||
}
|
||||
|
||||
private void TestCamelCaseMemberBinding()
|
||||
{
|
||||
var random = MiscHelpers.CreateSeededRandom();
|
||||
var makeIntArray = new Func<int[]>(() => Enumerable.Range(0, random.Next(5, 25)).Select(_ => random.Next(int.MinValue, int.MaxValue)).ToArray());
|
||||
var makeShort = new Func<short>(() => Convert.ToInt16(random.Next(short.MinValue, short.MaxValue)));
|
||||
var makeEnum = new Func<TestEnum>(() => (TestEnum)random.Next(0, 5));
|
||||
var makeTimeSpan = new Func<TimeSpan>(() => TimeSpan.FromMilliseconds(makeShort()));
|
||||
|
||||
var testObject = new TestObject
|
||||
{
|
||||
BaseField = makeIntArray(),
|
||||
BaseScalarField = makeShort(),
|
||||
BaseEnumField = makeEnum(),
|
||||
BaseStructField = makeTimeSpan(),
|
||||
|
||||
BaseProperty = makeIntArray(),
|
||||
BaseScalarProperty = makeShort(),
|
||||
BaseEnumProperty = makeEnum(),
|
||||
BaseStructProperty = makeTimeSpan(),
|
||||
|
||||
BaseInterfaceProperty = makeIntArray(),
|
||||
BaseInterfaceScalarProperty = makeShort(),
|
||||
BaseInterfaceEnumProperty = makeEnum(),
|
||||
BaseInterfaceStructProperty = makeTimeSpan(),
|
||||
|
||||
Field = new[] { 0, 9, 1, 8, 2, 7, 3, 6, 4, 5 },
|
||||
ScalarField = makeShort(),
|
||||
EnumField = makeEnum(),
|
||||
StructField = makeTimeSpan(),
|
||||
|
||||
Property = makeIntArray(),
|
||||
ScalarProperty = makeShort(),
|
||||
EnumProperty = makeEnum(),
|
||||
StructProperty = makeTimeSpan(),
|
||||
|
||||
InterfaceProperty = makeIntArray(),
|
||||
InterfaceScalarProperty = makeShort(),
|
||||
InterfaceEnumProperty = makeEnum(),
|
||||
InterfaceStructProperty = makeTimeSpan(),
|
||||
};
|
||||
|
||||
var explicitBaseTestInterface = (IExplicitBaseTestInterface)testObject;
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceProperty = makeIntArray();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty = makeEnum();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
var explicitTestInterface = (IExplicitTestInterface)testObject;
|
||||
explicitTestInterface.ExplicitInterfaceProperty = makeIntArray();
|
||||
explicitTestInterface.ExplicitInterfaceScalarProperty = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceEnumProperty = makeEnum();
|
||||
explicitTestInterface.ExplicitInterfaceStructProperty = makeTimeSpan();
|
||||
|
||||
engine.AddHostType(typeof(TestEnum));
|
||||
engine.Script.testObject = testObject;
|
||||
engine.Script.testBaseInterface = testObject.ToRestrictedHostObject<IBaseTestInterface>(engine);
|
||||
engine.Script.testInterface = testObject.ToRestrictedHostObject<ITestInterface>(engine);
|
||||
engine.Script.explicitBaseTestInterface = testObject.ToRestrictedHostObject<IExplicitBaseTestInterface>(engine);
|
||||
engine.Script.explicitTestInterface = testObject.ToRestrictedHostObject<IExplicitTestInterface>(engine);
|
||||
|
||||
Assert.IsTrue(testObject.BaseField.SequenceEqual((int[])engine.Evaluate("testObject.baseField")));
|
||||
Assert.AreEqual(testObject.BaseScalarField, Convert.ToInt16(engine.Evaluate("testObject.baseScalarField")));
|
||||
Assert.AreEqual(testObject.BaseEnumField, engine.Evaluate("testObject.baseEnumField"));
|
||||
Assert.AreEqual(testObject.BaseStructField, engine.Evaluate("testObject.baseStructField"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseProperty")));
|
||||
Assert.AreEqual(testObject.BaseScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseEnumProperty, engine.Evaluate("testObject.baseEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseStructProperty, engine.Evaluate("testObject.baseStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseEvent.connect((sender, args) => sender.baseScalarProperty = args.arg);");
|
||||
var arg = makeShort();
|
||||
testObject.BaseFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4), engine.Evaluate("testObject.baseMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseMethod<TestEnum>(4), engine.Evaluate("testObject.baseMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseBindTestMethod(Math.PI), engine.Evaluate("testObject.baseBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.BaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.baseInterfaceProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.baseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.BaseInterfaceEnumProperty, engine.Evaluate("testObject.baseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceStructProperty, engine.Evaluate("testObject.baseInterfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.baseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.baseInterfaceEvent.connect((sender, args) => sender.baseInterfaceScalarProperty = args.arg);");
|
||||
arg = makeShort();
|
||||
testObject.BaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.BaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.BaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.baseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.baseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.baseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.Field.SequenceEqual((int[])engine.Evaluate("testObject.field")));
|
||||
Assert.AreEqual(testObject.ScalarField, Convert.ToInt16(engine.Evaluate("testObject.scalarField")));
|
||||
Assert.AreEqual(testObject.EnumField, engine.Evaluate("testObject.enumField"));
|
||||
Assert.AreEqual(testObject.StructField, engine.Evaluate("testObject.structField"));
|
||||
|
||||
Assert.IsTrue(testObject.Property.SequenceEqual((int[])engine.Evaluate("testObject.property")));
|
||||
Assert.AreEqual(testObject.ScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.scalarProperty")));
|
||||
Assert.AreEqual(testObject.EnumProperty, engine.Evaluate("testObject.enumProperty"));
|
||||
Assert.AreEqual(testObject.StructProperty, engine.Evaluate("testObject.structProperty"));
|
||||
Assert.AreEqual(testObject.ReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.readOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.event.connect((sender, args) => sender.scalarProperty = args.arg);");
|
||||
arg = makeShort();
|
||||
testObject.FireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.FireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.ScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.Method("foo", 4), engine.Evaluate("testObject.method('foo', 4)"));
|
||||
Assert.AreEqual(testObject.Method("foo", 4, TestEnum.Second), engine.Evaluate("testObject.method('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.Method<TestEnum>(4), engine.Evaluate("testObject.method(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.BindTestMethod(Math.PI), engine.Evaluate("testObject.bindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(testObject.InterfaceProperty.SequenceEqual((int[])engine.Evaluate("testObject.interfaceProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("testObject.interfaceScalarProperty")));
|
||||
Assert.AreEqual(testObject.InterfaceEnumProperty, engine.Evaluate("testObject.interfaceEnumProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceStructProperty, engine.Evaluate("testObject.interfaceStructProperty"));
|
||||
Assert.AreEqual(testObject.InterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("testObject.interfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = testObject.interfaceEvent.connect((sender, args) => sender.interfaceScalarProperty = args.arg);");
|
||||
arg = makeShort();
|
||||
testObject.InterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
testObject.InterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, testObject.InterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4), engine.Evaluate("testObject.interfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("testObject.interfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(testObject.InterfaceMethod<TestEnum>(4), engine.Evaluate("testObject.interfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(testObject.InterfaceBindTestMethod(Math.PI), engine.Evaluate("testObject.interfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitBaseTestInterface.ExplicitBaseInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceEnumProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceStructProperty, engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitBaseTestInterface.explicitBaseInterfaceEvent.connect((sender, args) => explicitBaseTestInterface.explicitBaseInterfaceScalarProperty = args.arg);");
|
||||
arg = makeShort();
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitBaseTestInterface.ExplicitBaseInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitBaseTestInterface.ExplicitBaseInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitBaseTestInterface.ExplicitBaseInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitBaseTestInterface.explicitBaseInterfaceBindTestMethod(Math.PI)"));
|
||||
|
||||
Assert.IsTrue(explicitTestInterface.ExplicitInterfaceProperty.SequenceEqual((int[])engine.Evaluate("explicitTestInterface.explicitInterfaceProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceScalarProperty, Convert.ToInt16(engine.Evaluate("explicitTestInterface.explicitInterfaceScalarProperty")));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceEnumProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceEnumProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceStructProperty, engine.Evaluate("explicitTestInterface.explicitInterfaceStructProperty"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceReadOnlyProperty, Convert.ToByte(engine.Evaluate("explicitTestInterface.explicitInterfaceReadOnlyProperty")));
|
||||
|
||||
engine.Execute("var connection = explicitTestInterface.explicitInterfaceEvent.connect((sender, args) => explicitTestInterface.explicitInterfaceScalarProperty = args.arg);");
|
||||
arg = makeShort();
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(arg);
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
engine.Execute("connection.disconnect();");
|
||||
explicitTestInterface.ExplicitInterfaceFireEvent(makeShort());
|
||||
Assert.AreEqual(arg, explicitTestInterface.ExplicitInterfaceScalarProperty);
|
||||
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod("foo", 4, TestEnum.Second), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod('foo', 4, TestEnum.second)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceMethod<TestEnum>(4), engine.Evaluate("explicitTestInterface.explicitInterfaceMethod(TestEnum, 4)"));
|
||||
Assert.AreEqual(explicitTestInterface.ExplicitInterfaceBindTestMethod(Math.PI), engine.Evaluate("explicitTestInterface.explicitInterfaceBindTestMethod(Math.PI)"));
|
||||
}
|
||||
|
||||
private sealed class CamelCaseAttributeLoader : CustomAttributeLoader
|
||||
{
|
||||
public override T[] LoadCustomAttributes<T>(ICustomAttributeProvider resource, bool inherit)
|
||||
{
|
||||
if (typeof(T) == typeof(ScriptMemberAttribute) && (resource is MemberInfo member))
|
||||
{
|
||||
var name = char.ToLowerInvariant(member.Name[0]) + member.Name.Substring(1);
|
||||
return new[] { new ScriptMemberAttribute(name) } as T[];
|
||||
}
|
||||
|
||||
return base.LoadCustomAttributes<T>(resource, inherit);
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable UnusedMember.Local
|
||||
|
||||
private void PrivateMethod()
|
||||
|
|
|
@ -39,6 +39,9 @@
|
|||
<Compile Include="..\..\ClearScript\ByRefArg.cs" Link="ByRefArg.cs" />
|
||||
<Compile Include="..\..\ClearScript\CanonicalRefTable.cs" Link="CanonicalRefTable.cs" />
|
||||
<Compile Include="..\..\ClearScript\ContinuationCallback.cs" Link="ContinuationCallback.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributeLoader.cs" Link="CustomAttributeLoader.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.cs" Link="CustomAttributes.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.NetStandard.cs" Link="CustomAttributes.NetStandard.cs" />
|
||||
<Compile Include="..\..\ClearScript\DefaultScriptUsageAttribute.cs" Link="DefaultScriptUsageAttribute.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.cs" Link="DelegateFactory.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.Generated.cs" Link="DelegateFactory.Generated.cs" />
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
<Compile Include="..\..\ClearScript\ByRefArg.cs" Link="ByRefArg.cs" />
|
||||
<Compile Include="..\..\ClearScript\CanonicalRefTable.cs" Link="CanonicalRefTable.cs" />
|
||||
<Compile Include="..\..\ClearScript\ContinuationCallback.cs" Link="ContinuationCallback.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributeLoader.cs" Link="CustomAttributeLoader.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.cs" Link="CustomAttributes.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.NetFramework.cs" Link="CustomAttributes.NetFramework.cs" />
|
||||
<Compile Include="..\..\ClearScript\DefaultScriptUsageAttribute.cs" Link="DefaultScriptUsageAttribute.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.cs" Link="DelegateFactory.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.Generated.cs">
|
||||
|
@ -189,10 +192,7 @@
|
|||
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
|
||||
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
||||
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -39,6 +39,9 @@
|
|||
<Compile Include="..\..\ClearScript\ByRefArg.cs" Link="ByRefArg.cs" />
|
||||
<Compile Include="..\..\ClearScript\CanonicalRefTable.cs" Link="CanonicalRefTable.cs" />
|
||||
<Compile Include="..\..\ClearScript\ContinuationCallback.cs" Link="ContinuationCallback.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributeLoader.cs" Link="CustomAttributeLoader.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.cs" Link="CustomAttributes.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.NetStandard.cs" Link="CustomAttributes.NetStandard.cs" />
|
||||
<Compile Include="..\..\ClearScript\DefaultScriptUsageAttribute.cs" Link="DefaultScriptUsageAttribute.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.cs" Link="DelegateFactory.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.Generated.cs" Link="DelegateFactory.Generated.cs" />
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
|
||||
<UseWPF>true</UseWPF>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AssemblyName>ClearScriptTest</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<UseWPF>true</UseWPF>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -63,6 +63,9 @@
|
|||
<Compile Include="..\..\ClearScript\ByRefArg.cs" Link="ByRefArg.cs" />
|
||||
<Compile Include="..\..\ClearScript\CanonicalRefTable.cs" Link="CanonicalRefTable.cs" />
|
||||
<Compile Include="..\..\ClearScript\ContinuationCallback.cs" Link="ContinuationCallback.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributeLoader.cs" Link="CustomAttributeLoader.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.cs" Link="CustomAttributes.cs" />
|
||||
<Compile Include="..\..\ClearScript\CustomAttributes.NetStandard.cs" Link="CustomAttributes.NetStandard.cs" />
|
||||
<Compile Include="..\..\ClearScript\DefaultScriptUsageAttribute.cs" Link="DefaultScriptUsageAttribute.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.cs" Link="DelegateFactory.cs" />
|
||||
<Compile Include="..\..\ClearScript\DelegateFactory.Generated.cs" Link="DelegateFactory.Generated.cs" />
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<AssemblyName>ClearScriptConsole</AssemblyName>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AssemblyName>ClearScriptTest</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'>='17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(VisualStudioVersion)'<'17.0'">
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<RootNamespace>Microsoft.ClearScript.Test</RootNamespace>
|
||||
|
|
|
@ -72,7 +72,7 @@ ifeq ($(TARGETOS), linux)
|
|||
ifndef DEBUG
|
||||
CXXLINKFLAGS := -s
|
||||
endif
|
||||
CXXLINKFLAGS := $(CXXLINKFLAGS) -static-libstdc++ -static-libgcc
|
||||
CXXLINKFLAGS := $(CXXLINKFLAGS) -static-libstdc++ -static-libgcc -ldl -lrt --no-undefined
|
||||
ifneq ($(HOSTCPU), $(CPU))
|
||||
CXXCROSSFLAGS = -I/usr/$(TARGET)/include
|
||||
CXXLINKFLAGS := -fuse-ld=/usr/$(TARGET)/bin/ld $(CXXLINKFLAGS)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
v8testedrev=9.9.115.8
|
||||
v8testedrev=10.0.139.8
|
||||
v8testedcommit=
|
||||
|
||||
if [[ $v8testedcommit == "" ]]; then
|
||||
|
@ -193,10 +193,15 @@ cd build/v8 || abort
|
|||
echo "Creating/updating patches ..."
|
||||
git diff --ignore-space-change --ignore-space-at-eol >V8Patch.txt 2>createV8Patch.log || fail
|
||||
|
||||
echo "Building V8 ..."
|
||||
if [[ $linux == true ]]; then
|
||||
build/linux/sysroot_scripts/install-sysroot.py --arch=$cpu
|
||||
echo "Installing LKG sysroots ..."
|
||||
cp ../../sysroots.json build/linux/sysroot_scripts
|
||||
build/linux/sysroot_scripts/install-sysroot.py --arch=x64 || fail
|
||||
build/linux/sysroot_scripts/install-sysroot.py --arch=i386 || fail
|
||||
build/linux/sysroot_scripts/install-sysroot.py --arch=$cpu || fail
|
||||
fi
|
||||
|
||||
echo "Building V8 ..."
|
||||
gn gen out/$cpu/$mode --args="enable_precompiled_headers=false fatal_linker_warnings=false is_cfi=false is_component_build=false is_debug=$isdebug is_official_build=$isofficial target_cpu=\"$cpu\" use_custom_libcxx=false use_thin_lto=false v8_embedder_string=\"-ClearScript\" v8_enable_pointer_compression=false v8_enable_31bit_smis_on_64bit_arch=false v8_monolithic=true v8_use_external_startup_data=false v8_target_cpu=\"$cpu\" chrome_pgo_phase=0" >gn-$cpu-$mode.log || fail
|
||||
ninja -C out/$cpu/$mode obj/libv8_monolith.a >build-$cpu-$mode.log || fail
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/BUILD.gn b/BUILD.gn
|
||||
index 7304e8c3f9..172d2ffc84 100644
|
||||
index fb68d0ec4d..87149262f0 100644
|
||||
--- a/BUILD.gn
|
||||
+++ b/BUILD.gn
|
||||
@@ -981,7 +981,7 @@ config("toolchain") {
|
||||
@@ -1000,7 +1000,7 @@ config("toolchain") {
|
||||
visibility = [ "./*" ]
|
||||
|
||||
defines = []
|
||||
|
@ -40,10 +40,10 @@ index 75109e35b7..659f44852a 100644
|
|||
// Keep prototypes in slow-mode. Let them be lazily turned fast later on.
|
||||
// TODO(dcarney): is this necessary?
|
||||
diff --git a/src/api/api.cc b/src/api/api.cc
|
||||
index ff8febe4ae..e09587f9e3 100644
|
||||
index e6797c92a5..5091b1c2ed 100644
|
||||
--- a/src/api/api.cc
|
||||
+++ b/src/api/api.cc
|
||||
@@ -1966,6 +1966,17 @@ void ObjectTemplate::SetImmutableProto() {
|
||||
@@ -1934,6 +1934,17 @@ void ObjectTemplate::SetImmutableProto() {
|
||||
self->set_immutable_proto(true);
|
||||
}
|
||||
|
||||
|
@ -62,10 +62,10 @@ index ff8febe4ae..e09587f9e3 100644
|
|||
return Utils::OpenHandle(this)->code_like();
|
||||
}
|
||||
diff --git a/src/base/platform/platform.h b/src/base/platform/platform.h
|
||||
index 8bf135709b..6630424d6c 100644
|
||||
index 413edb2a0d..ad90a1a8c7 100644
|
||||
--- a/src/base/platform/platform.h
|
||||
+++ b/src/base/platform/platform.h
|
||||
@@ -45,6 +45,8 @@
|
||||
@@ -46,6 +46,8 @@
|
||||
#include <sanitizer/asan_interface.h>
|
||||
#endif // V8_USE_ADDRESS_SANITIZER
|
||||
|
||||
|
@ -89,10 +89,10 @@ index 7128ad7e9d..46d6e2b958 100644
|
|||
}
|
||||
|
||||
diff --git a/src/codegen/code-stub-assembler.cc b/src/codegen/code-stub-assembler.cc
|
||||
index af863948f7..8c0f9f692d 100644
|
||||
index 9d3cf1954f..33d0a94946 100644
|
||||
--- a/src/codegen/code-stub-assembler.cc
|
||||
+++ b/src/codegen/code-stub-assembler.cc
|
||||
@@ -1915,6 +1915,10 @@ TNode<Uint32T> CodeStubAssembler::LoadMapBitField3(TNode<Map> map) {
|
||||
@@ -1898,6 +1898,10 @@ TNode<Uint32T> CodeStubAssembler::LoadMapBitField3(TNode<Map> map) {
|
||||
return LoadObjectField<Uint32T>(map, Map::kBitField3Offset);
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ index af863948f7..8c0f9f692d 100644
|
|||
TNode<Uint16T> CodeStubAssembler::LoadMapInstanceType(TNode<Map> map) {
|
||||
return LoadObjectField<Uint16T>(map, Map::kInstanceTypeOffset);
|
||||
}
|
||||
@@ -13459,6 +13463,11 @@ TNode<String> CodeStubAssembler::Typeof(TNode<Object> value) {
|
||||
@@ -13444,6 +13448,11 @@ TNode<String> CodeStubAssembler::Typeof(TNode<Object> value) {
|
||||
|
||||
GotoIf(InstanceTypeEqual(instance_type, ODDBALL_TYPE), &if_oddball);
|
||||
|
||||
|
@ -116,10 +116,10 @@ index af863948f7..8c0f9f692d 100644
|
|||
Word32And(LoadMapBitField(map),
|
||||
Int32Constant(Map::Bits1::IsCallableBit::kMask |
|
||||
diff --git a/src/codegen/code-stub-assembler.h b/src/codegen/code-stub-assembler.h
|
||||
index e01975e3a8..552e78a2e9 100644
|
||||
index 8797a08da9..edcd0f73bf 100644
|
||||
--- a/src/codegen/code-stub-assembler.h
|
||||
+++ b/src/codegen/code-stub-assembler.h
|
||||
@@ -1378,6 +1378,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
|
||||
@@ -1400,6 +1400,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
|
||||
TNode<Int32T> LoadMapBitField2(TNode<Map> map);
|
||||
// Load bit field 3 of a map.
|
||||
TNode<Uint32T> LoadMapBitField3(TNode<Map> map);
|
||||
|
@ -221,7 +221,7 @@ index d50767421a..f3fa0f3a70 100644
|
|||
// Unprotect reserved page.
|
||||
DWORD old_protect;
|
||||
diff --git a/src/execution/isolate.h b/src/execution/isolate.h
|
||||
index 89e09c3f4e..c9370d8b4c 100644
|
||||
index 420e317e73..dd3fd350d0 100644
|
||||
--- a/src/execution/isolate.h
|
||||
+++ b/src/execution/isolate.h
|
||||
@@ -618,7 +618,6 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
|
||||
|
@ -233,10 +233,10 @@ index 89e09c3f4e..c9370d8b4c 100644
|
|||
}
|
||||
|
||||
diff --git a/src/execution/stack-guard.cc b/src/execution/stack-guard.cc
|
||||
index 9a7c8cb6eb..ee58676047 100644
|
||||
index ddd6b7f153..abffe98f86 100644
|
||||
--- a/src/execution/stack-guard.cc
|
||||
+++ b/src/execution/stack-guard.cc
|
||||
@@ -215,8 +215,10 @@ void StackGuard::FreeThreadResources() {
|
||||
@@ -214,8 +214,10 @@ void StackGuard::FreeThreadResources() {
|
||||
void StackGuard::ThreadLocal::Initialize(Isolate* isolate,
|
||||
const ExecutionAccess& lock) {
|
||||
const uintptr_t kLimitSize = FLAG_stack_size * KB;
|
||||
|
@ -249,34 +249,34 @@ index 9a7c8cb6eb..ee58676047 100644
|
|||
set_jslimit(SimulatorStack::JsLimitFromCLimit(isolate, limit));
|
||||
real_climit_ = limit;
|
||||
diff --git a/src/heap/factory.cc b/src/heap/factory.cc
|
||||
index 92c2b1432e..db36c9e1bc 100644
|
||||
index 95fcf4aaa6..7f3fd050e2 100644
|
||||
--- a/src/heap/factory.cc
|
||||
+++ b/src/heap/factory.cc
|
||||
@@ -1849,6 +1849,7 @@ Map Factory::InitializeMap(Map map, InstanceType type, int instance_size,
|
||||
@@ -1868,6 +1868,7 @@ Map Factory::InitializeMap(Map map, InstanceType type, int instance_size,
|
||||
Map::Bits3::ConstructionCounterBits::encode(Map::kNoSlackTracking) |
|
||||
Map::Bits3::IsExtensibleBit::encode(true);
|
||||
map.set_bit_field3(bit_field3);
|
||||
DCHECK(!map.is_in_retained_map_list());
|
||||
+ map.set_host_bit_field(0);
|
||||
map.clear_padding();
|
||||
map.set_elements_kind(elements_kind);
|
||||
isolate()->counters()->maps_created()->Increment();
|
||||
map.set_instance_type(type);
|
||||
HeapObject raw_null_value = *null_value();
|
||||
map.set_prototype(raw_null_value, SKIP_WRITE_BARRIER);
|
||||
diff --git a/src/heap/setup-heap-internal.cc b/src/heap/setup-heap-internal.cc
|
||||
index 1a950d50dd..7ced652c5a 100644
|
||||
index 7de65c3351..6a613f8805 100644
|
||||
--- a/src/heap/setup-heap-internal.cc
|
||||
+++ b/src/heap/setup-heap-internal.cc
|
||||
@@ -182,6 +182,7 @@ AllocationResult Heap::AllocatePartialMap(InstanceType instance_type,
|
||||
@@ -181,6 +181,7 @@ AllocationResult Heap::AllocatePartialMap(InstanceType instance_type,
|
||||
Map::Bits3::OwnsDescriptorsBit::encode(true) |
|
||||
Map::Bits3::ConstructionCounterBits::encode(Map::kNoSlackTracking);
|
||||
map.set_bit_field3(bit_field3);
|
||||
DCHECK(!map.is_in_retained_map_list());
|
||||
+ map.set_host_bit_field(0);
|
||||
DCHECK(!map.is_in_retained_map_list());
|
||||
map.clear_padding();
|
||||
map.set_elements_kind(TERMINAL_FAST_ELEMENTS_KIND);
|
||||
return map;
|
||||
diff --git a/src/init/v8.cc b/src/init/v8.cc
|
||||
index 746bdbbfda..c08f94ef8f 100644
|
||||
index edac725e8e..fcad817c86 100644
|
||||
--- a/src/init/v8.cc
|
||||
+++ b/src/init/v8.cc
|
||||
@@ -90,7 +90,6 @@ V8_DECLARE_ONCE(init_snapshot_once);
|
||||
@@ -89,7 +89,6 @@ V8_DECLARE_ONCE(init_snapshot_once);
|
||||
|
||||
void V8::InitializePlatform(v8::Platform* platform) {
|
||||
AdvanceStartupState(V8StartupState::kPlatformInitializing);
|
||||
|
@ -285,10 +285,10 @@ index 746bdbbfda..c08f94ef8f 100644
|
|||
platform_ = platform;
|
||||
v8::base::SetPrintStackTrace(platform_->GetStackTracePrinter());
|
||||
diff --git a/src/objects/intl-objects.h b/src/objects/intl-objects.h
|
||||
index 2d38231744..e66c173c28 100644
|
||||
index e9b2537b06..3907df7a76 100644
|
||||
--- a/src/objects/intl-objects.h
|
||||
+++ b/src/objects/intl-objects.h
|
||||
@@ -236,7 +236,7 @@ class Intl {
|
||||
@@ -267,7 +267,7 @@ class Intl {
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
UEnumeration* uenum =
|
||||
uloc_openAvailableByType(ULOC_AVAILABLE_WITH_LEGACY_ALIASES, &status);
|
||||
|
@ -298,10 +298,10 @@ index 2d38231744..e66c173c28 100644
|
|||
std::vector<std::string> all_locales;
|
||||
const char* loc;
|
||||
diff --git a/src/objects/js-date-time-format.cc b/src/objects/js-date-time-format.cc
|
||||
index 61eaa618b2..0f9280f539 100644
|
||||
index fab3890bb5..3af6ce86ba 100644
|
||||
--- a/src/objects/js-date-time-format.cc
|
||||
+++ b/src/objects/js-date-time-format.cc
|
||||
@@ -1569,8 +1569,12 @@ MaybeHandle<JSDateTimeFormat> JSDateTimeFormat::New(
|
||||
@@ -1583,8 +1583,12 @@ MaybeHandle<JSDateTimeFormat> JSDateTimeFormat::New(
|
||||
// requestedLocales, opt, %DateTimeFormat%.[[RelevantExtensionKeys]],
|
||||
// localeData).
|
||||
//
|
||||
|
@ -316,10 +316,10 @@ index 61eaa618b2..0f9280f539 100644
|
|||
if (maybe_resolve_locale.IsNothing()) {
|
||||
THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError),
|
||||
diff --git a/src/objects/js-objects.cc b/src/objects/js-objects.cc
|
||||
index a3a64311a9..4f87a29262 100644
|
||||
index b68ab7cf6d..5edad4913f 100644
|
||||
--- a/src/objects/js-objects.cc
|
||||
+++ b/src/objects/js-objects.cc
|
||||
@@ -4947,6 +4947,13 @@ void JSObject::SetImmutableProto(Handle<JSObject> object) {
|
||||
@@ -4950,6 +4950,13 @@ void JSObject::SetImmutableProto(Handle<JSObject> object) {
|
||||
object->set_map(*new_map, kReleaseStore);
|
||||
}
|
||||
|
||||
|
@ -334,10 +334,10 @@ index a3a64311a9..4f87a29262 100644
|
|||
JavaScriptArguments* args,
|
||||
uint32_t arg_count,
|
||||
diff --git a/src/objects/js-objects.h b/src/objects/js-objects.h
|
||||
index fa61c8a63a..2a0af282fa 100644
|
||||
index c47687c560..358aea6b7f 100644
|
||||
--- a/src/objects/js-objects.h
|
||||
+++ b/src/objects/js-objects.h
|
||||
@@ -709,6 +709,8 @@ class JSObject : public TorqueGeneratedJSObject<JSObject, JSReceiver> {
|
||||
@@ -713,6 +713,8 @@ class JSObject : public TorqueGeneratedJSObject<JSObject, JSReceiver> {
|
||||
// Never called from JavaScript
|
||||
static void SetImmutableProto(Handle<JSObject> object);
|
||||
|
||||
|
@ -347,7 +347,7 @@ index fa61c8a63a..2a0af282fa 100644
|
|||
// the caller to initialize object header. Fill the pre-allocated fields with
|
||||
// undefined_value and the rest with filler_map.
|
||||
diff --git a/src/objects/map-inl.h b/src/objects/map-inl.h
|
||||
index 37d189b67a..9a2d16d545 100644
|
||||
index 82672a1491..0c44e4008f 100644
|
||||
--- a/src/objects/map-inl.h
|
||||
+++ b/src/objects/map-inl.h
|
||||
@@ -113,6 +113,9 @@ BIT_FIELD_ACCESSORS(Map, bit_field3, may_have_interesting_symbols,
|
||||
|
@ -361,10 +361,10 @@ index 37d189b67a..9a2d16d545 100644
|
|||
DCHECK(has_named_interceptor());
|
||||
FunctionTemplateInfo info = GetFunctionTemplateInfo(cage_base);
|
||||
diff --git a/src/objects/map.cc b/src/objects/map.cc
|
||||
index ea6ad0a27c..451224222e 100644
|
||||
index df3f28bb7b..923ab41765 100644
|
||||
--- a/src/objects/map.cc
|
||||
+++ b/src/objects/map.cc
|
||||
@@ -1150,6 +1150,7 @@ Handle<Map> Map::RawCopy(Isolate* isolate, Handle<Map> map, int instance_size,
|
||||
@@ -1151,6 +1151,7 @@ Handle<Map> Map::RawCopy(Isolate* isolate, Handle<Map> map, int instance_size,
|
||||
}
|
||||
// Same as bit_field comment above.
|
||||
result->set_bit_field3(new_bit_field3);
|
||||
|
@ -372,7 +372,7 @@ index ea6ad0a27c..451224222e 100644
|
|||
result->clear_padding();
|
||||
return result;
|
||||
}
|
||||
@@ -1268,6 +1269,12 @@ Handle<Map> Map::TransitionToImmutableProto(Isolate* isolate, Handle<Map> map) {
|
||||
@@ -1269,6 +1270,12 @@ Handle<Map> Map::TransitionToImmutableProto(Isolate* isolate, Handle<Map> map) {
|
||||
return new_map;
|
||||
}
|
||||
|
||||
|
@ -386,10 +386,10 @@ index ea6ad0a27c..451224222e 100644
|
|||
void EnsureInitialMap(Isolate* isolate, Handle<Map> map) {
|
||||
#ifdef DEBUG
|
||||
diff --git a/src/objects/map.h b/src/objects/map.h
|
||||
index fe2cdf150a..581c74cd20 100644
|
||||
index 384866734f..d5146fec4a 100644
|
||||
--- a/src/objects/map.h
|
||||
+++ b/src/objects/map.h
|
||||
@@ -309,6 +309,11 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
@@ -310,6 +310,11 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
STATIC_ASSERT(kSlackTrackingCounterStart <=
|
||||
Bits3::ConstructionCounterBits::kMax);
|
||||
|
||||
|
@ -401,7 +401,7 @@ index fe2cdf150a..581c74cd20 100644
|
|||
// Inobject slack tracking is the way to reclaim unused inobject space.
|
||||
//
|
||||
// The instance size is initially determined by adding some slack to
|
||||
@@ -644,6 +649,8 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
@@ -645,6 +650,8 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
|
||||
DECL_BOOLEAN_ACCESSORS(is_immutable_proto)
|
||||
|
||||
|
@ -410,7 +410,7 @@ index fe2cdf150a..581c74cd20 100644
|
|||
// This counter is used for in-object slack tracking.
|
||||
// The in-object slack tracking is considered enabled when the counter is
|
||||
// non zero. The counter only has a valid count for initial maps. For
|
||||
@@ -812,6 +819,8 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
@@ -813,6 +820,8 @@ class Map : public TorqueGeneratedMap<Map, HeapObject> {
|
||||
static Handle<Map> TransitionToImmutableProto(Isolate* isolate,
|
||||
Handle<Map> map);
|
||||
|
||||
|
@ -446,10 +446,10 @@ index a8b367ff82..98637087ee 100644
|
|||
prototype: JSReceiver|Null;
|
||||
constructor_or_back_pointer_or_native_context: Object;
|
||||
diff --git a/src/objects/objects.cc b/src/objects/objects.cc
|
||||
index 05433226be..828f6e2909 100644
|
||||
index c2c9fe36c5..b1539323cd 100644
|
||||
--- a/src/objects/objects.cc
|
||||
+++ b/src/objects/objects.cc
|
||||
@@ -877,6 +877,12 @@ Handle<String> Object::TypeOf(Isolate* isolate, Handle<Object> object) {
|
||||
@@ -878,6 +878,12 @@ Handle<String> Object::TypeOf(Isolate* isolate, Handle<Object> object) {
|
||||
if (object->IsString()) return isolate->factory()->string_string();
|
||||
if (object->IsSymbol()) return isolate->factory()->symbol_string();
|
||||
if (object->IsBigInt()) return isolate->factory()->bigint_string();
|
||||
|
@ -463,7 +463,7 @@ index 05433226be..828f6e2909 100644
|
|||
return isolate->factory()->object_string();
|
||||
}
|
||||
diff --git a/src/objects/source-text-module.cc b/src/objects/source-text-module.cc
|
||||
index 3d8056bc5f..ca72931e89 100644
|
||||
index 3dfcfac10d..edab093679 100644
|
||||
--- a/src/objects/source-text-module.cc
|
||||
+++ b/src/objects/source-text-module.cc
|
||||
@@ -737,7 +737,7 @@ MaybeHandle<Object> SourceTextModule::Evaluate(
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"sid_amd64": {
|
||||
"Sha1Sum": "95051d95804a77144986255f534acb920cee375b",
|
||||
"SysrootDir": "debian_sid_amd64-sysroot",
|
||||
"Tarball": "debian_sid_amd64_sysroot.tar.xz"
|
||||
},
|
||||
"sid_arm": {
|
||||
"Sha1Sum": "8cf8dfa68861f84ce79d038f08da6e685487def5",
|
||||
"SysrootDir": "debian_sid_arm-sysroot",
|
||||
"Tarball": "debian_sid_arm_sysroot.tar.xz"
|
||||
},
|
||||
"sid_arm64": {
|
||||
"Sha1Sum": "9677df0c176ac33116618f109c4988b719ad78c6",
|
||||
"SysrootDir": "debian_sid_arm64-sysroot",
|
||||
"Tarball": "debian_sid_arm64_sysroot.tar.xz"
|
||||
},
|
||||
"sid_armel": {
|
||||
"Sha1Sum": "a0e2a51aaa7d779fc45415ac30c835b67caa6663",
|
||||
"SysrootDir": "debian_sid_armel-sysroot",
|
||||
"Tarball": "debian_sid_armel_sysroot.tar.xz"
|
||||
},
|
||||
"sid_i386": {
|
||||
"Sha1Sum": "4840dc83ec7c3816ae0262e9e93231736bf0a5b7",
|
||||
"SysrootDir": "debian_sid_i386-sysroot",
|
||||
"Tarball": "debian_sid_i386_sysroot.tar.xz"
|
||||
},
|
||||
"sid_mips": {
|
||||
"Sha1Sum": "779ca2ab213f78b0c7d94ff157ee444ae2d40043",
|
||||
"SysrootDir": "debian_sid_mips-sysroot",
|
||||
"Tarball": "debian_sid_mips_sysroot.tar.xz"
|
||||
},
|
||||
"sid_mips64el": {
|
||||
"Sha1Sum": "27d205329440aa96002da71968a0dbef09aa7d6a",
|
||||
"SysrootDir": "debian_sid_mips64el-sysroot",
|
||||
"Tarball": "debian_sid_mips64el_sysroot.tar.xz"
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
set v8testedrev=9.9.115.8
|
||||
set v8testedrev=10.0.139.8
|
||||
set v8testedcommit=
|
||||
|
||||
if not "%v8testedcommit%"=="" goto ProcessArgs
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<#
|
||||
var version = new Version(7, 2, 3);
|
||||
var version = new Version(7, 2, 4);
|
||||
var versionSuffix = string.Empty;
|
||||
new Random(versionSuffix.Length); // suppress "versionSuffix not used" warning
|
||||
#>
|
||||
|
|
|
@ -688,7 +688,7 @@ style='font-size:10.0pt;line-height:115%;font-family:Consolas;color:black'>Clear
|
|||
|
||||
<p class=MsoNormal style='margin-top:0in;margin-right:36.7pt;margin-bottom:
|
||||
0in;margin-left:.5in;margin-bottom:.0001pt;background:#F2F2F2'><b><span
|
||||
style='font-size:10.0pt;line-height:115%;font-family:Consolas;color:black'>ClearScriptV8.osx-x64.dylib</span></b></p>
|
||||
style='font-size:10.0pt;line-height:115%;font-family:Consolas;color:black'>ClearScriptV8.osx-[x64|arm64].dylib</span></b></p>
|
||||
|
||||
<h1 style='margin-top:14.0pt;margin-right:0in;margin-bottom:0in;margin-left:
|
||||
.5in;margin-bottom:.0001pt;text-indent:-.5in'>VI. Machine-level (global) deployment
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
</HelpKINode>
|
||||
<HelpKINode Title="ColumnNumber property" Url="html/P_Microsoft_ClearScript_V8_V8CpuProfile_Node_ColumnNumber.htm" />
|
||||
<HelpKINode Title="CommonJS property" Url="html/P_Microsoft_ClearScript_JavaScript_ModuleCategory_CommonJS.htm" />
|
||||
<HelpKINode Title="Comparer property" Url="html/P_Microsoft_ClearScript_PropertyBag_Comparer.htm" />
|
||||
<HelpKINode Title="Compile method">
|
||||
<HelpKINode Title="V8Runtime.Compile Method " Url="html/Overload_Microsoft_ClearScript_V8_V8Runtime_Compile.htm" />
|
||||
<HelpKINode Title="V8ScriptEngine.Compile Method " Url="html/Overload_Microsoft_ClearScript_V8_V8ScriptEngine_Compile.htm" />
|
||||
|
@ -82,6 +83,15 @@
|
|||
</HelpKINode>
|
||||
<HelpKINode Title="CreateScriptEngine method" Url="html/Overload_Microsoft_ClearScript_V8_V8Runtime_CreateScriptEngine.htm" />
|
||||
<HelpKINode Title="Current property" Url="html/P_Microsoft_ClearScript_ScriptEngine_Current.htm" />
|
||||
<HelpKINode Title="CustomAttributeLoader class">
|
||||
<HelpKINode Title="CustomAttributeLoader Class" Url="html/T_Microsoft_ClearScript_CustomAttributeLoader.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader__ctor.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_CustomAttributeLoader.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="CustomAttributeLoader property" Url="html/P_Microsoft_ClearScript_HostSettings_CustomAttributeLoader.htm" />
|
||||
<HelpKINode Title="CustomAttributeLoader.CustomAttributeLoader constructor" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader__ctor.htm" />
|
||||
<HelpKINode Title="CustomAttributeLoader.LoadCustomAttributes(Of T) method" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader_LoadCustomAttributes__1.htm" />
|
||||
<HelpKINode Title="CustomAttributeLoader.LoadCustomAttributes<T> method" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader_LoadCustomAttributes__1.htm" />
|
||||
<HelpKINode Title="Default property" Url="html/P_Microsoft_ClearScript_DocumentLoader_Default.htm" />
|
||||
<HelpKINode Title="DefaultAccess property" Url="html/P_Microsoft_ClearScript_ScriptEngine_DefaultAccess.htm" />
|
||||
<HelpKINode Title="DefaultScriptUsageAttribute class">
|
||||
|
@ -270,12 +280,12 @@
|
|||
<HelpKINode Title="V8ScriptEngine.Execute Method " Url="html/Overload_Microsoft_ClearScript_V8_V8ScriptEngine_Execute.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="ExecuteCommand method">
|
||||
<HelpKINode Title="JScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_Core_JScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="JScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_JScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="JScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_Core_JScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="ScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_ScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="V8ScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_V8_V8ScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_Core_VBScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_VBScriptEngine_ExecuteCommand.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_Core_VBScriptEngine_ExecuteCommand.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="ExecuteDocument method" Url="html/Overload_Microsoft_ClearScript_ScriptEngine_ExecuteDocument.htm" />
|
||||
<HelpKINode Title="ExecutionStarted property">
|
||||
|
@ -310,8 +320,8 @@
|
|||
<HelpKINode Title="JScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_Core_JScriptEngine_FileNameExtension.htm" />
|
||||
<HelpKINode Title="ScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_ScriptEngine_FileNameExtension.htm" />
|
||||
<HelpKINode Title="V8ScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_V8_V8ScriptEngine_FileNameExtension.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_Core_VBScriptEngine_FileNameExtension.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_VBScriptEngine_FileNameExtension.htm" />
|
||||
<HelpKINode Title="VBScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_Core_VBScriptEngine_FileNameExtension.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="FileNameExtensions property" Url="html/P_Microsoft_ClearScript_DocumentSettings_FileNameExtensions.htm" />
|
||||
<HelpKINode Title="Finalize method" Url="html/M_Microsoft_ClearScript_ScriptEngine_Finalize.htm" />
|
||||
|
@ -419,6 +429,7 @@
|
|||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_HostSettings.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="HostSettings.AuxiliarySearchPath property" Url="html/P_Microsoft_ClearScript_HostSettings_AuxiliarySearchPath.htm" />
|
||||
<HelpKINode Title="HostSettings.CustomAttributeLoader property" Url="html/P_Microsoft_ClearScript_HostSettings_CustomAttributeLoader.htm" />
|
||||
<HelpKINode Title="HostSettings.UseAssemblyTable property" Url="html/P_Microsoft_ClearScript_HostSettings_UseAssemblyTable.htm" />
|
||||
<HelpKINode Title="HostTypeCollection class">
|
||||
<HelpKINode Title="HostTypeCollection Class" Url="html/T_Microsoft_ClearScript_HostTypeCollection.htm" />
|
||||
|
@ -577,8 +588,8 @@
|
|||
<HelpKINode Title="JScriptEngine Class" Url="html/T_Microsoft_ClearScript_Windows_Core_JScriptEngine.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/Overload_Microsoft_ClearScript_Windows_Core_JScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/Overload_Microsoft_ClearScript_Windows_JScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_Core_JScriptEngine.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_JScriptEngine.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_Core_JScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_JScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_Core_JScriptEngine.htm" />
|
||||
</HelpKINode>
|
||||
|
@ -591,8 +602,8 @@
|
|||
<HelpKINode Title="JScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_JScriptEngine_FileNameExtension.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="JScriptEngine.JScriptEngine constructor">
|
||||
<HelpKINode Title="JScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_Core_JScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="JScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_JScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="JScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_Core_JScriptEngine__ctor.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="Keys property" Url="html/P_Microsoft_ClearScript_PropertyBag_Keys.htm" />
|
||||
<HelpKINode Title="Length property" Url="html/P_Microsoft_ClearScript_JavaScript_ITypedArray_Length.htm" />
|
||||
|
@ -600,6 +611,8 @@
|
|||
<HelpKINode Title="LineNumber field" Url="html/F_Microsoft_ClearScript_V8_V8CpuProfile_Node_HitLine_LineNumber.htm" />
|
||||
<HelpKINode Title="LineNumber property" Url="html/P_Microsoft_ClearScript_V8_V8CpuProfile_Node_LineNumber.htm" />
|
||||
<HelpKINode Title="LoadCallback property" Url="html/P_Microsoft_ClearScript_DocumentSettings_LoadCallback.htm" />
|
||||
<HelpKINode Title="LoadCustomAttributes(Of T) method" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader_LoadCustomAttributes__1.htm" />
|
||||
<HelpKINode Title="LoadCustomAttributes<T> method" Url="html/M_Microsoft_ClearScript_CustomAttributeLoader_LoadCustomAttributes__1.htm" />
|
||||
<HelpKINode Title="LoadDocument method" Url="html/M_Microsoft_ClearScript_DocumentLoader_LoadDocument.htm" />
|
||||
<HelpKINode Title="LoadDocumentAsync method" Url="html/M_Microsoft_ClearScript_DocumentLoader_LoadDocumentAsync.htm" />
|
||||
<HelpKINode Title="Loader property" Url="html/P_Microsoft_ClearScript_DocumentSettings_Loader.htm" />
|
||||
|
@ -625,6 +638,7 @@
|
|||
<HelpKINode Title="Message property" Url="html/P_Microsoft_ClearScript_IScriptEngineException_Message.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript namespace" Url="html/N_Microsoft_ClearScript.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript.ContinuationCallback delegate" Url="html/T_Microsoft_ClearScript_ContinuationCallback.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript.CustomAttributeLoader class" Url="html/T_Microsoft_ClearScript_CustomAttributeLoader.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript.DefaultScriptUsageAttribute class" Url="html/T_Microsoft_ClearScript_DefaultScriptUsageAttribute.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript.Document class" Url="html/T_Microsoft_ClearScript_Document.htm" />
|
||||
<HelpKINode Title="Microsoft.ClearScript.DocumentAccessFlags enumeration" Url="html/T_Microsoft_ClearScript_DocumentAccessFlags.htm" />
|
||||
|
@ -786,6 +800,7 @@
|
|||
</HelpKINode>
|
||||
<HelpKINode Title="PropertyBag.Add method" Url="html/M_Microsoft_ClearScript_PropertyBag_Add.htm" />
|
||||
<HelpKINode Title="PropertyBag.ClearNoCheck method" Url="html/M_Microsoft_ClearScript_PropertyBag_ClearNoCheck.htm" />
|
||||
<HelpKINode Title="PropertyBag.Comparer property" Url="html/P_Microsoft_ClearScript_PropertyBag_Comparer.htm" />
|
||||
<HelpKINode Title="PropertyBag.ContainsKey method" Url="html/M_Microsoft_ClearScript_PropertyBag_ContainsKey.htm" />
|
||||
<HelpKINode Title="PropertyBag.Item property" Url="html/P_Microsoft_ClearScript_PropertyBag_Item.htm" />
|
||||
<HelpKINode Title="PropertyBag.Keys property" Url="html/P_Microsoft_ClearScript_PropertyBag_Keys.htm" />
|
||||
|
@ -1006,6 +1021,7 @@
|
|||
<HelpKINode Title="UndefinedImportValue property" Url="html/P_Microsoft_ClearScript_ScriptEngine_UndefinedImportValue.htm" />
|
||||
<HelpKINode Title="Uri property" Url="html/P_Microsoft_ClearScript_DocumentInfo_Uri.htm" />
|
||||
<HelpKINode Title="UseAssemblyTable property" Url="html/P_Microsoft_ClearScript_HostSettings_UseAssemblyTable.htm" />
|
||||
<HelpKINode Title="UseCaseInsensitiveMemberBinding enumeration member" Url="html/T_Microsoft_ClearScript_V8_V8ScriptEngineFlags.htm" />
|
||||
<HelpKINode Title="UsedHeapSize property" Url="html/P_Microsoft_ClearScript_V8_V8RuntimeHeapInfo_UsedHeapSize.htm" />
|
||||
<HelpKINode Title="UseReflectionBindFallback property" Url="html/P_Microsoft_ClearScript_ScriptEngine_UseReflectionBindFallback.htm" />
|
||||
<HelpKINode Title="V8CacheKind enumeration" Url="html/T_Microsoft_ClearScript_V8_V8CacheKind.htm" />
|
||||
|
@ -1145,12 +1161,12 @@
|
|||
<HelpKINode Title="VBScriptEngine class">
|
||||
<HelpKINode Title="VBScriptEngine Class" Url="html/T_Microsoft_ClearScript_Windows_Core_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="VBScriptEngine Class" Url="html/T_Microsoft_ClearScript_Windows_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/Overload_Microsoft_ClearScript_Windows_Core_VBScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/Overload_Microsoft_ClearScript_Windows_VBScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/Overload_Microsoft_ClearScript_Windows_Core_VBScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_Core_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_Core_VBScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_VBScriptEngine.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="VBScriptEngine.ExecuteCommand method">
|
||||
<HelpKINode Title="VBScriptEngine.ExecuteCommand Method " Url="html/M_Microsoft_ClearScript_Windows_VBScriptEngine_ExecuteCommand.htm" />
|
||||
|
@ -1161,8 +1177,8 @@
|
|||
<HelpKINode Title="VBScriptEngine.FileNameExtension Property " Url="html/P_Microsoft_ClearScript_Windows_VBScriptEngine_FileNameExtension.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="VBScriptEngine.VBScriptEngine constructor">
|
||||
<HelpKINode Title="VBScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_Core_VBScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="VBScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_VBScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="VBScriptEngine Constructor " Url="html/Overload_Microsoft_ClearScript_Windows_Core_VBScriptEngine__ctor.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="VerifyAccess method">
|
||||
<HelpKINode Title="ISyncInvoker.VerifyAccess Method " Url="html/M_Microsoft_ClearScript_Windows_Core_ISyncInvoker_VerifyAccess.htm" />
|
||||
|
@ -1178,10 +1194,10 @@
|
|||
<HelpKINode Title="WindowsScriptEngine Class" Url="html/T_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/M_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="constructor" Url="html/M_Microsoft_ClearScript_Windows_WindowsScriptEngine__ctor.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="methods" Url="html/Methods_T_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_WindowsScriptEngine.htm" />
|
||||
<HelpKINode Title="properties" Url="html/Properties_T_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine.htm" />
|
||||
</HelpKINode>
|
||||
<HelpKINode Title="WindowsScriptEngine.CheckAccess method" Url="html/M_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine_CheckAccess.htm" />
|
||||
<HelpKINode Title="WindowsScriptEngine.CollectGarbage method" Url="html/M_Microsoft_ClearScript_Windows_Core_WindowsScriptEngine_CollectGarbage.htm" />
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1 +1 @@
|
|||
{"json":[2621442,16777218,17039363,19595265,21233665,47316994],"jscript":[22478849,22740993,22937602,24313857,24903681,26083329,26279938,26804225,27459585,28180482,28246017,29360130,31195141,31522821,42598402,44302337,44564483,46989318,48496646],"javascript":[1769473,1835009,1900545,2162689,2228225,2359297,5439489,5570562,5898241,6488065,6619137,6815745,6946817,7012353,7208961,7340033,7405569,7667713,7864321,7929857,8060929,8192001,8257537,8519681,8585217,8650753,8781825,8847361,8978433,9306113,9502722,9699329,9764866,9830401,9961474,10158081,10354689,10420225,10616834,10682370,10747906,10813442,10878978,10944514,11010049,11075586,11141122,11337730,11403266,11534338,11730946,12189698,12255233,12517378,13107202,13762562,14221314,14548994,15204354,23134209,27852809,28573697,28770307,29163521,29884417,30408705,30801921,31391745,32702466,33095681,33161218,33816578,34406402,35061762,35782658,36503553,36569089,40763393,41222145,41549825,42008580,42598404,42795009,43057154,43384836,43778052,44171267,44630018,44957699,45154305,45219843,47120385,47448070],"javascrip":[15269889,34471937,44695553],"javascriptextensions":[2228227,11337730,11403266,11534338,12189698,13107202,13762562,14221314,14548994,15204354,27852801,30408706,43384839],"jscriptengine":[4784131,5373955,21823491,22478854,22740998,22937606,24313862,24903686,26083334,26279937,26804230,27459590,27721731,28180486,28246022,29360129,31195143,31522823,36831235,41156611,41418755,41943043,44564482,46727169,46989324,48300033,48496652],"just":[44564481,48037890]}
|
||||
{"json":[2752514,15400963,15663106,17432577,20774913,42205186],"jscript":[21757953,23461889,23986178,24117249,24969217,26017794,27000837,27066373,27394050,39452673,40304641,40828929,42795011,43712513,44564482,46399494,47644674,48955398,49020929],"javascript":[1769473,1835009,1900545,2293761,2359297,2490369,5701633,5767169,6160385,6356993,6553601,6750209,7012353,7208961,7405569,7471105,7536641,7602177,7733249,7864321,8323073,8519681,8650754,8847362,8978434,9109506,9240578,9306114,9371650,9502722,9568258,9633794,9699330,9764866,9830402,9961474,10092546,10158082,10223618,10289154,10354690,10878978,11075586,11141122,14614530,14942209,16056321,16646145,16842753,17629185,18743297,18939905,20119553,20971521,22216705,23003137,24838145,25231361,25427969,25690121,26542083,26673153,31195138,31588354,32374786,33423362,34144258,34734082,34930689,35454978,36765697,37748737,40108033,40435713,40697857,40960003,41222145,41353217,41549826,41615361,41811969,41877510,42139651,42270721,42729475,43515905,43909124,44695553,45285377,46661636,47054852,47644676,48627713],"javascrip":[14483457,33488897,42467329],"javascriptextensions":[2293763,9502722,9699330,9764866,9830402,10158082,10223618,10289154,10878978,11075586,25690113,26673154,46661639],"jscriptengine":[5111811,9437187,21692419,21757958,23461894,23986177,24117254,24969222,26017798,27000839,27066375,27394049,30539779,30801923,39452678,39845891,40304646,40828934,42795010,43712518,44564486,46268419,46399500,46727171,48365569,48758785,48955404],"just":[42795009,43253762]}
|
|
@ -1 +1 @@
|
|||
{"kind":[17760257,17956865,18219009,18284545,18612225,18743297,19267585,19464193,19398657,20512769,20578305,20905985,21037057,21495809,21561345,23330817,23789569,23920641,24248321,25100289,25231361,25755649,26476545,27394049,47448065],"keys":[30932993,34078721,37158919,39649282,43515906,45547521,48168961],"key":[2293764,11468806,11599878,11796486,12124166,32899073,36438022,39649281,43122689,43515909],"keyword":[15269889],"keyvaluepair":[2293766,39649282,43515920,45547528]}
|
||||
{"kind":[16384001,16515073,16711681,16777217,16973825,17104897,17170433,17301505,17498113,18022401,18546689,19398657,19660801,19726337,20709377,20905985,21233665,21823489,22151169,22282241,22806529,23592961,28049409,40370177,41877505],"keys":[29294593,34668551,38862850,40042497,44761089,47513601,47972354],"key":[2424836,10616838,10682374,10813446,11403270,28704769,33816582,38862849,43843585,47972357],"keyword":[14483457],"keyvaluepair":[2424838,38862850,47513608,47972368]}
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1 +1 @@
|
|||
{"qux":[7405569],"qualified":[1245185,2686977,5570561,5898241,8912897,9437185,9699329,10158081,13893633,14680065,15335425,41746433,45744129,47841281]}
|
||||
{"qux":[16646145],"qualified":[1179649,2883585,7864321,7929857,8126465,12058625,12189697,12845057,13107201,14614529,16842753,18743297,42008577,46858241]}
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1 +1 @@
|
|||
{"www":[6488065],"writeruntimeheapsnapshot":[5242881,21233669,47120385],"writeheapsnapshot":[3735553,19595269,48234497],"windowsscriptengineflags":[22740998,22937606,23527430,24313862,24444934,24707078,25690117,26083334,26935302,27459590,27787270,28114950,28180486,28508165,29360129,29687811,30081027,31195139,31522819,44564485,46661635,46989315,48103427,48496643],"windowsscriptengine":[4784134,4980742,5177350,5373958,5505027,7536649,23724034,24051715,24576002,24772610,25034754,25165826,25690117,26279937,28508165,29360129,30343170,36831236,37879810,38010884,38600706,39124994,39452675,41418757,42205186,42532869,42926082,44040199,46661649,46727191,46989327,47120385,47185921,48103439,48300041,48365569,48496657],"writes":[2621441,3735553,5242881,16777217,19595265,21233665,47120385,47316993,48234497],"written":[47775745],"webclient":[8847364],"writable":[11665409,12451841,30998529,45547521,45875201],"window":[40108033,40566785,48365569],"way":[5570561,15269889],"write":[2359297,7405569,11075589,16777217,19595265,21233665,42008577],"wrapnullresult":[6684674,34471937,44695553],"writeline":[8257537,8585217,8847363],"writer":[2621441,16777223,47316993],"widget":[7012353],"work":[48037890],"webclientt":[8847362],"web":[8847362,30146561,43450369],"waiting":[5242881,22347777,47120385],"wrapping":[6684673,32112641,34471937,34996225,36831233,38010881,39452673,41418753,42532865,44040193,46661633,46727169,46989313,47120385,47185921,48103425,48300033,48496641],"writejson":[2621441,16777221,47316993],"wrapped":[36503553,36569089],"windows":[458753,524289,786436,1114116,3145729,3407873,3538945,4784129,4980737,5177345,5373953,5505025,5963777,6029313,7536641,11337729,11534337,14221313,15204353,15269889,16384001,21626884,21823492,22282244,22478853,22740998,22937606,23003140,23068677,23199748,23265284,23461892,23527430,23658500,23724036,23986181,24051716,24313862,24444934,24576004,24707078,24772612,24903685,25034756,25165828,25690120,25952260,26017796,26083333,26279941,26345476,26411012,26542084,26804228,26869764,26935301,27000836,27459589,27525124,27721732,27787269,28114949,28180485,28246020,28508167,29229057,29360135,29687809,30081025,30343169,30670849,31195137,31522817,36831233,37879812,38010881,38600708,39124996,39452673,40108033,40566788,40697857,41156612,41418753,41811972,41943044,42205188,42401796,42532865,42598406,42926084,43974661,44040193,44302342,44564485,46661640,46727179,46989318,47185921,47251462,47710209,48103430,48300042,48365573,48431109,48496648],"writebytes":[1769473,1835009,1900545,2162689,2359297,10747909,10878981,42008577,44171265,44630017,44957697,45219841],"wait":[47448065],"weight":[7012353]}
|
||||
{"www":[23003137],"writeruntimeheapsnapshot":[5308417,20774917,48627713],"writeheapsnapshot":[3932161,17432581,42926081],"windowsscriptengineflags":[22609926,23068678,23461894,24182790,24510470,24969222,25493510,25755653,25821190,26017798,26607621,27000835,27066371,27394049,27852803,28311555,39452678,42795013,43712518,44564486,45613059,46399491,48496643,48955395],"windowsscriptengine":[4915203,5111814,5242889,5505030,5636102,9437190,23265283,23855106,23986177,24444930,25100290,25755653,26083330,26607621,27394049,28901378,30539780,30801925,31981572,32112645,33357827,33554439,38404098,42336257,43450370,45154306,45613073,45744130,46399503,47120386,47448066,48365591,48496655,48627713,48758793,48824321,48955409],"writes":[2752513,3932161,5308417,15663105,17432577,20774913,42205185,42926081,48627713],"written":[42991617],"webclient":[16056324],"writable":[10485761,10551297,11272193,11337729,27262978,47513602,47841281],"window":[33685505,46137345,48824321],"way":[14483457,14614529],"write":[2490369,9306117,15663105,16646145,17432577,20774913,43909121],"wrapnullresult":[15466498,33488897,42467329],"writeline":[5767169,16056323,17629185],"writer":[2752513,15663111,42205185],"widget":[42270721],"work":[43253762],"webclientt":[16056322],"web":[16056322,28114945,47579137],"waiting":[5308417,18153473,48627713],"wrapping":[15466497,30539777,30801921,31981569,32112641,33357825,33488897,33554433,33751041,40894465,42336257,45613057,46399489,48365569,48496641,48627713,48758785,48955393],"writejson":[2752513,15663109,42205185],"wrapped":[44695553,45285377],"windows":[327681,393217,786436,851972,3276801,3407873,3604481,3801089,4915201,5111809,5177345,5242881,5505025,5636097,9437185,9699329,9830401,10158081,11075585,13500417,14483457,21430276,21692420,21757957,21889028,22478852,22544388,22609926,22675460,23068678,23134212,23199748,23265284,23330820,23461893,23527429,23658501,23724036,23789572,23855108,23986181,24117252,24182790,24444932,24510469,24641540,24969221,25100292,25296900,25493509,25755656,25821189,26017797,26083332,26607623,27000833,27066369,27394055,27721729,27852801,28311553,28377092,28901377,29032452,29097985,30539777,30801921,31981569,32112641,33357825,33554433,33685505,38404100,39059460,39452678,39845892,40304644,40828933,42336257,42598401,42795013,43384837,43450372,43712518,44564486,45154308,45613064,45744132,46137348,46268420,46399494,46727172,46792708,46923780,46989318,47120388,47448068,47644678,48234497,48365579,48496646,48758794,48824325,48889861,48955400,49020934],"writebytes":[1769473,1835009,1900545,2359297,2490369,9109509,10092549,40960001,41549825,42139649,42729473,43909121],"wait":[41877505],"weight":[42270721]}
|
|
@ -1 +1 @@
|
|||
{"yields":[47448065],"young":[32636929,36372481,42729473],"yield":[5570561,5701633,5898241,13369345,13565953,13828097,13893633,14680065,15335425,16056321,16842753,45744129]}
|
||||
{"yields":[41877505],"young":[31326209,43778049,44957697],"yield":[5963777,11993089,12058625,12189697,12386305,12713985,12845057,13107201,13631489,14614529,18743297,20840449]}
|
|
@ -1 +1 @@
|
|||
{"zero":[37289985,40435713,40828929,43909121,46792705]}
|
||||
{"zero":[30998529,39256065,39583745,40239105,45416449]}
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> event <span class="identifier">PropertyChangedEventHandler</span> <span class="identifier">PropertyChanged</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> Event <span class="identifier">PropertyChanged</span> <span class="keyword">As</span> <span class="identifier">PropertyChangedEventHandler</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> event <span class="identifier">PropertyChangedEventHandler</span> <span class="identifier">PropertyChanged</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> Event <span class="identifier">PropertyChanged</span> <span class="keyword">As</span> <span class="identifier">PropertyChangedEventHandler</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="keyword">virtual</span> <span class="keyword">event</span> <span class="identifier">PropertyChangedEventHandler</span>^ <span class="identifier">PropertyChanged</span> {
|
||||
<span class="keyword">void</span> <span class="keyword">add</span> (<span class="identifier">PropertyChangedEventHandler</span>^ <span class="parameter">value</span>);
|
||||
<span class="keyword">void</span> <span class="keyword">remove</span> (<span class="identifier">PropertyChangedEventHandler</span>^ <span class="parameter">value</span>);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Undefined</span> <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Value</span> <span class="keyword">As</span> <span class="identifier">Undefined</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Undefined</span> <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Value</span> <span class="keyword">As</span> <span class="identifier">Undefined</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">Undefined</span>^ <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Value</span>: <span class="identifier">Undefined</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Microsoft_ClearScript_Undefined.htm">Undefined</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_Undefined.htm">Undefined Class</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript_V8.htm">Microsoft.ClearScript.V8</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.V8 (in ClearScript.V8.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ulong</span> <span class="identifier">HitCount</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="identifier">HitCount</span> <span class="keyword">As</span> <span class="identifier">ULong</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.V8 (in ClearScript.V8.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ulong</span> <span class="identifier">HitCount</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="identifier">HitCount</span> <span class="keyword">As</span> <span class="identifier">ULong</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="identifier">unsigned long long</span> <span class="identifier">HitCount</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">HitCount</span>: <span class="identifier">uint64</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="https://docs.microsoft.com/dotnet/api/system.uint64" target="_blank" rel="noopener noreferrer">UInt64</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Remarks</span></div><div id="ID2RBSection" class="collapsibleSection">
|
||||
This value represents the number of times the CPU profiler observed the current
|
||||
script line at the top of the call stack.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript_V8.htm">Microsoft.ClearScript.V8</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.V8 (in ClearScript.V8.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">long</span> <span class="identifier">LineNumber</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="identifier">LineNumber</span> <span class="keyword">As</span> <span class="identifier">Long</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.V8 (in ClearScript.V8.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">long</span> <span class="identifier">LineNumber</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="identifier">LineNumber</span> <span class="keyword">As</span> <span class="identifier">Long</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="identifier">long long</span> <span class="identifier">LineNumber</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">LineNumber</span>: <span class="identifier">int64</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="https://docs.microsoft.com/dotnet/api/system.int64" target="_blank" rel="noopener noreferrer">Int64</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_V8_V8CpuProfile_Node_HitLine.htm">V8CpuProfile<span id="LST128EBBB0_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST128EBBB0_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Node<span id="LST128EBBB0_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST128EBBB0_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>HitLine Structure</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript_V8.htm">Microsoft.ClearScript.V8 Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript_Windows_Core.htm">Microsoft.ClearScript.Windows.Core</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Windows.Core (in ClearScript.Windows.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">ISyncInvoker</span> <span class="identifier">Instance</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Instance</span> <span class="keyword">As</span> <span class="identifier">ISyncInvoker</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Windows.Core (in ClearScript.Windows.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">ISyncInvoker</span> <span class="identifier">Instance</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Instance</span> <span class="keyword">As</span> <span class="identifier">ISyncInvoker</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">ISyncInvoker</span>^ <span class="identifier">Instance</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Instance</span>: <span class="identifier">ISyncInvoker</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Microsoft_ClearScript_Windows_Core_ISyncInvoker.htm">ISyncInvoker</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_Windows_Core_NullSyncInvoker.htm">NullSyncInvoker Class</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript_Windows_Core.htm">Microsoft.ClearScript.Windows.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript_Windows.htm">Microsoft.ClearScript.Windows</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Windows.Core (in ClearScript.Windows.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Nothing</span> <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Value</span> <span class="keyword">As</span> <span class="identifier">Nothing</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Windows.Core (in ClearScript.Windows.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Nothing</span> <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Value</span> <span class="keyword">As</span> <span class="identifier">Nothing</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">Nothing</span>^ <span class="identifier">Value</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Value</span>: <span class="identifier">Nothing</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Microsoft_ClearScript_Windows_Nothing.htm">Nothing</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_Windows_Nothing.htm">Nothing Class</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript_Windows.htm">Microsoft.ClearScript.Windows Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,15 @@
|
|||
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CustomAttributeLoader Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CustomAttributeLoader class, constructor" /><meta name="System.Keywords" content="CustomAttributeLoader.CustomAttributeLoader constructor" /><meta name="Microsoft.Help.F1" content="Microsoft.ClearScript.CustomAttributeLoader.#ctor" /><meta name="Microsoft.Help.F1" content="Microsoft.ClearScript.CustomAttributeLoader.CustomAttributeLoader" /><meta name="Microsoft.Help.Id" content="M:Microsoft.ClearScript.CustomAttributeLoader.#ctor" /><meta name="Description" content="Initializes a new instance." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Microsoft.ClearScript" /><meta name="file" content="M_Microsoft_ClearScript_CustomAttributeLoader__ctor" /><meta name="guid" content="M_Microsoft_ClearScript_CustomAttributeLoader__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-3.5.1.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">ClearScript Library<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="../html/R_Project_Reference.htm" title="ClearScript Library" tocid="roottoc">ClearScript Library</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="../html/R_Project_Reference.htm" title="ClearScript Library Reference" tocid="R_Project_Reference">ClearScript Library Reference</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="../html/N_Microsoft_ClearScript.htm" title="Microsoft.ClearScript" tocid="N_Microsoft_ClearScript">Microsoft.ClearScript</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="../html/T_Microsoft_ClearScript_CustomAttributeLoader.htm" title="CustomAttributeLoader Class" tocid="T_Microsoft_ClearScript_CustomAttributeLoader">CustomAttributeLoader Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="../html/M_Microsoft_ClearScript_CustomAttributeLoader__ctor.htm" title="CustomAttributeLoader Constructor " tocid="M_Microsoft_ClearScript_CustomAttributeLoader__ctor">CustomAttributeLoader Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="../html/Methods_T_Microsoft_ClearScript_CustomAttributeLoader.htm" title="CustomAttributeLoader Methods" tocid="Methods_T_Microsoft_ClearScript_CustomAttributeLoader">CustomAttributeLoader Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn"><h1>CustomAttributeLoader Constructor </h1></td></tr></table><span class="introStyle"></span> <div class="summary">
|
||||
Initializes a new <a href="T_Microsoft_ClearScript_CustomAttributeLoader.htm">CustomAttributeLoader</a> instance.
|
||||
</div><p> </p>
|
||||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CustomAttributeLoader</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="identifier">CustomAttributeLoader</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-></span> <span class="identifier">CustomAttributeLoader</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_CustomAttributeLoader.htm">CustomAttributeLoader Class</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
var HT_mailLink = document.getElementById("HT_MailLink");
|
||||
var HT_mailLinkText = HT_mailLink.innerHTML;
|
||||
HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
|
||||
HT_mailLink.innerHTML = HT_mailLinkText;
|
||||
</script> </div></body></html>
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DefaultScriptUsageAttribute</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DefaultScriptUsageAttribute</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="identifier">DefaultScriptUsageAttribute</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-></span> <span class="identifier">DefaultScriptUsageAttribute</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_DefaultScriptUsageAttribute.htm">DefaultScriptUsageAttribute Class</a></div><div class="seeAlsoStyle"><a href="Overload_Microsoft_ClearScript_DefaultScriptUsageAttribute__ctor.htm">DefaultScriptUsageAttribute Overload</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DefaultScriptUsageAttribute</span>(
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DefaultScriptUsageAttribute</span>(
|
||||
<span class="identifier">ScriptAccess</span> <span class="parameter">access</span>
|
||||
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> (
|
||||
<span class="parameter">access</span> <span class="keyword">As</span> <span class="identifier">ScriptAccess</span>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DocumentInfo</span>(
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DocumentInfo</span>(
|
||||
<span class="identifier">string</span> <span class="parameter">name</span>
|
||||
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> (
|
||||
<span class="parameter">name</span> <span class="keyword">As</span> <span class="identifier">String</span>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DocumentInfo</span>(
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DocumentInfo</span>(
|
||||
<span class="identifier">Uri</span> <span class="parameter">uri</span>
|
||||
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> (
|
||||
<span class="parameter">uri</span> <span class="keyword">As</span> <span class="identifier">Uri</span>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="identifier">Document</span> <span class="identifier">CacheDocument</span>(
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="identifier">Document</span> <span class="identifier">CacheDocument</span>(
|
||||
<span class="identifier">Document</span> <span class="parameter">document</span>,
|
||||
<span class="identifier">bool</span> <span class="parameter">replace</span>
|
||||
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overridable</span> <span class="keyword">Function</span> <span class="identifier">CacheDocument</span> (
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">DiscardCachedDocuments</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overridable</span> <span class="keyword">Sub</span> <span class="identifier">DiscardCachedDocuments</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">DiscardCachedDocuments</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overridable</span> <span class="keyword">Sub</span> <span class="identifier">DiscardCachedDocuments</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
|
||||
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">DiscardCachedDocuments</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">DiscardCachedDocuments</span> : <span class="keyword">unit</span> <span class="keyword">-></span> <span class="keyword">unit</span>
|
||||
<span class="keyword">override</span> <span class="identifier">DiscardCachedDocuments</span> : <span class="keyword">unit</span> <span class="keyword">-></span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Microsoft_ClearScript_DocumentLoader.htm">DocumentLoader Class</a></div><div class="seeAlsoStyle"><a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"><p>Copyright © Microsoft Corporation. All rights reserved.</p><div class="feedbackLink">Send comments on this topic to
|
||||
<a id="HT_MailLink" href="mailto:ClearScript%40microsoft.com?Subject=ClearScript%20Library">Microsoft</a></div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<strong>Namespace:</strong>
|
||||
<a href="N_Microsoft_ClearScript.htm">Microsoft.ClearScript</a><br />
|
||||
<strong>Assembly:</strong>
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.3<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="identifier">Document</span> <span class="identifier">GetCachedDocument</span>(
|
||||
ClearScript.Core (in ClearScript.Core.dll) Version: 7.2.4<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="identifier">Document</span> <span class="identifier">GetCachedDocument</span>(
|
||||
<span class="identifier">Uri</span> <span class="parameter">uri</span>
|
||||
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overridable</span> <span class="keyword">Function</span> <span class="identifier">GetCachedDocument</span> (
|
||||
<span class="parameter">uri</span> <span class="keyword">As</span> <span class="identifier">Uri</span>
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче