public static Object As(this JsValue value, Type targetType, EngineInstance engine) { if (value != JsValue.Null) { if (targetType == typeof(Int32)) { return(TypeConverter.ToInt32(value)); } else if (targetType == typeof(Double)) { return(TypeConverter.ToNumber(value)); } else if (targetType == typeof(String)) { return(value.IsPrimitive() ? TypeConverter.ToString(value) : value.ToString()); } else if (targetType == typeof(Boolean)) { return(TypeConverter.ToBoolean(value)); } else if (targetType == typeof(UInt32)) { return(TypeConverter.ToUint32(value)); } else if (targetType == typeof(UInt16)) { return(TypeConverter.ToUint16(value)); } else { return(value.AsComplex(targetType, engine)); } } return(null); }