public static double ToDouble(NSJSValue value) { if (value == null || value.IsNullOrUndfined) { return(0); } NSJSInt32 i32 = value as NSJSInt32; if (i32 != null) { return(i32.Value); } NSJSUInt32 u32 = value as NSJSUInt32; if (u32 != null) { return(u32.Value); } NSJSBoolean boolean = value as NSJSBoolean; if (boolean != null) { return(boolean.Value ? 1 : 0); } NSJSDateTime time = value as NSJSDateTime; if (time != null) { return(NSJSDateTime.DateTimeToLocalDate(time.Value)); } NSJSDouble dbl = value as NSJSDouble; if (dbl != null) { return(dbl.Value); } NSJSInt64 i64 = value as NSJSInt64; if (i64 != null) { return(i64.Value); } NSJSString str = value as NSJSString; if (str != null) { double n; if (double.TryParse(str.Value, NumberStyles.Float | NumberStyles.None, null, out n)) { return(n); } } return(0); }
private static void GetBytes(IntPtr info) { NSJSFunctionCallbackInfo arguments = NSJSFunctionCallbackInfo.From(info); byte[] result = null; if (arguments.Length > 0) { NSJSValue value = arguments[0]; if (value != null) { NSJSInt32 int32 = value as NSJSInt32; if (int32 != null) { result = BITCONVERTER.GetBytes(int32.Value); } NSJSUInt32 uint32 = value as NSJSUInt32; if (uint32 != null) { result = BITCONVERTER.GetBytes(uint32.Value); } NSJSBoolean boolean = value as NSJSBoolean; if (boolean != null) { result = BITCONVERTER.GetBytes(boolean.Value); } NSJSDouble float64 = value as NSJSDouble; if (float64 != null) { result = BITCONVERTER.GetBytes(float64.Value); } NSJSDateTime datetime = value as NSJSDateTime; if (datetime != null) { result = BITCONVERTER.GetBytes(NSJSDateTime.DateTimeToLocalDate(datetime.Value)); } ; } } if (result != null) { arguments.SetReturnValue(result); } else { arguments.SetReturnValue(NSJSValue.Undefined(arguments.VirtualMachine)); } }