public static global::ValueType @typeof(object v) { if ((v == null)) { return(global::ValueType.TNull); } global::System.Type t = ((global::System.Type)((v as global::System.Type))); if (!(global::haxe.lang.Runtime.typeEq(t, null))) { return(global::ValueType.TObject); } t = ((global::System.Type)(v.GetType())); if ((t.IsEnum || (v is global::haxe.lang.Enum))) { return(global::ValueType.TEnum(((global::System.Type)(t)))); } if (t.IsValueType) { global::System.IConvertible vc = ((global::System.IConvertible)(v)); if ((vc != null)) { global::System.TypeCode _g = vc.GetTypeCode(); switch (_g) { case global::System.TypeCode.Boolean: { return(global::ValueType.TBool); } case global::System.TypeCode.Int32: { return(global::ValueType.TInt); } case global::System.TypeCode.Double: { double d = vc.ToDouble(default(global::System.IFormatProvider)); if ((((d >= global::System.Int32.MinValue) && (d <= global::System.Int32.MaxValue)) && (d == vc.ToInt32(default(global::System.IFormatProvider))))) { return(global::ValueType.TInt); } else { return(global::ValueType.TFloat); } } default: { return(global::ValueType.TClass(((global::System.Type)(t)))); } } } else { return(global::ValueType.TClass(((global::System.Type)(t)))); } } if ((v is global::haxe.lang.IHxObject)) { if ((v is global::haxe.lang.DynamicObject)) { return(global::ValueType.TObject); } else if ((v is global::haxe.lang.Enum)) { return(global::ValueType.TEnum(((global::System.Type)(t)))); } return(global::ValueType.TClass(((global::System.Type)(t)))); } else if ((v is global::haxe.lang.Function)) { return(global::ValueType.TFunction); } else { return(global::ValueType.TClass(((global::System.Type)(t)))); } }
public static bool eq(object v1, object v2) { if (global::System.Object.ReferenceEquals(((object)(v1)), ((object)(v2)))) { return(true); } if ((global::System.Object.ReferenceEquals(((object)(v1)), default(object)) || global::System.Object.ReferenceEquals(((object)(v2)), default(object)))) { return(false); } global::System.IConvertible v1c = ((global::System.IConvertible)((v1 as global::System.IConvertible))); if ((v1c != null)) { global::System.IConvertible v2c = ((global::System.IConvertible)((v2 as global::System.IConvertible))); if ((v2c == null)) { return(false); } global::System.TypeCode t1 = v1c.GetTypeCode(); global::System.TypeCode t2 = v2c.GetTypeCode(); if ((t1 == t2)) { return(global::System.Object.Equals(((object)(v1c)), ((object)(v2c)))); } if (((t1 == global::System.TypeCode.String) || (t2 == global::System.TypeCode.String))) { return(false); } switch (t1) { case global::System.TypeCode.Int64: { switch (t2) { case global::System.TypeCode.Int64: case global::System.TypeCode.UInt64: case global::System.TypeCode.Single: case global::System.TypeCode.Double: case global::System.TypeCode.DateTime: { return(((long)(v1c.ToInt64(default(global::System.IFormatProvider)))) == ((long)(v2c.ToInt64(default(global::System.IFormatProvider))))); } case global::System.TypeCode.Decimal: { return(v1c.ToDecimal(default(global::System.IFormatProvider)).Equals(v2c.ToDecimal(default(global::System.IFormatProvider)))); } default: { return(((long)(v1c.ToInt64(default(global::System.IFormatProvider)))) == ((long)(v2c.ToInt64(default(global::System.IFormatProvider))))); } } } case global::System.TypeCode.Single: case global::System.TypeCode.Double: { switch (t2) { case global::System.TypeCode.Int64: { return(((long)(v1c.ToInt64(default(global::System.IFormatProvider)))) == ((long)(v2c.ToInt64(default(global::System.IFormatProvider))))); } case global::System.TypeCode.Single: case global::System.TypeCode.Double: { return(v1c.ToDouble(default(global::System.IFormatProvider)) == v2c.ToDouble(default(global::System.IFormatProvider))); } case global::System.TypeCode.Decimal: { return(v1c.ToDecimal(default(global::System.IFormatProvider)).Equals(v2c.ToDecimal(default(global::System.IFormatProvider)))); } case global::System.TypeCode.UInt64: case global::System.TypeCode.DateTime: { return(v1c.ToUInt64(default(global::System.IFormatProvider)) == v2c.ToUInt64(default(global::System.IFormatProvider))); } default: { return(v1c.ToDouble(default(global::System.IFormatProvider)) == v2c.ToDouble(default(global::System.IFormatProvider))); } } } case global::System.TypeCode.Decimal: { return(v1c.ToDecimal(default(global::System.IFormatProvider)).Equals(v2c.ToDecimal(default(global::System.IFormatProvider)))); } case global::System.TypeCode.UInt64: case global::System.TypeCode.DateTime: { switch (t2) { case global::System.TypeCode.Int64: { return(((long)(v1c.ToInt64(default(global::System.IFormatProvider)))) == ((long)(v2c.ToInt64(default(global::System.IFormatProvider))))); } case global::System.TypeCode.UInt64: case global::System.TypeCode.Single: case global::System.TypeCode.Double: case global::System.TypeCode.DateTime: { return(v1c.ToUInt64(default(global::System.IFormatProvider)) == v2c.ToUInt64(default(global::System.IFormatProvider))); } case global::System.TypeCode.Decimal: { return(v1c.ToDecimal(default(global::System.IFormatProvider)).Equals(v2c.ToDecimal(default(global::System.IFormatProvider)))); } default: { return(v1c.ToUInt64(default(global::System.IFormatProvider)) == v2c.ToUInt64(default(global::System.IFormatProvider))); } } } default: { switch (t2) { case global::System.TypeCode.Int64: { return(((long)(v1c.ToInt64(default(global::System.IFormatProvider)))) == ((long)(v2c.ToInt64(default(global::System.IFormatProvider))))); } case global::System.TypeCode.Single: case global::System.TypeCode.Double: { return(v1c.ToDouble(default(global::System.IFormatProvider)) == v2c.ToDouble(default(global::System.IFormatProvider))); } case global::System.TypeCode.Decimal: { return(v1c.ToDecimal(default(global::System.IFormatProvider)).Equals(v2c.ToDecimal(default(global::System.IFormatProvider)))); } case global::System.TypeCode.UInt64: case global::System.TypeCode.DateTime: { return(v1c.ToUInt64(default(global::System.IFormatProvider)) == v2c.ToUInt64(default(global::System.IFormatProvider))); } default: { return(v1c.ToInt32(default(global::System.IFormatProvider)) == v2c.ToInt32(default(global::System.IFormatProvider))); } } } } } if ((((global::System.ValueType)((v1 as global::System.ValueType))) != null)) { return(v1.Equals(v2)); } else { global::System.Type v1t = ((global::System.Type)((v1 as global::System.Type))); if ((v1t != null)) { global::System.Type v2t = ((global::System.Type)((v2 as global::System.Type))); if ((v2t != null)) { return(global::haxe.lang.Runtime.typeEq(v1t, v2t)); } return(false); } } return(false); }