/// <summary>
/// Executes a mapping from the host type to a script type
/// </summary>
/// <param name="value">The source value</param>
/// <returns>The mapped value</returns>
private static JavaScriptValue MapToScriptType(object value)
{
if (value == null)
{
return(JavaScriptValue.Null);
}
if (value is Undefined)
{
return(JavaScriptValue.Undefined);
}
var typeCode = Type.GetTypeCode(value.GetType());
switch (typeCode)
{
case TypeCode.Boolean:
return(JavaScriptValue.FromBoolean((bool)value));
case TypeCode.Int32:
return(JavaScriptValue.FromInt32((int)value));
case TypeCode.Double:
return(JavaScriptValue.FromDouble((double)value));
case TypeCode.String:
return(JavaScriptValue.FromString((string)value));
default:
return(JavaScriptValue.FromObject(value));
}
}