示例#1
0
        protected JsInstance DecodeURI(JsInstance[] arguments)
        {
            if (arguments.Length < 1 || arguments[0] == JsUndefined.Instance)
            {
                return(StringClass.New());
            }

            return(this.StringClass.New(Uri.UnescapeDataString(arguments[0].ToString().Replace("+", " "))));
        }
示例#2
0
        protected JsInstance EncodeURIComponent(JsInstance[] arguments)
        {
            if (arguments.Length < 1 || arguments[0] == JsUndefined.Instance)
            {
                return(this.StringClass.New());
            }

            return(StringClass.New(Uri.EscapeDataString(arguments[0].ToString())));
        }
示例#3
0
        public JsObject Wrap(object value)
        {
            switch (Convert.GetTypeCode(value))
            {
            case TypeCode.Boolean:
                return(BooleanClass.New((bool)value));

            case TypeCode.Char:
            case TypeCode.String:
                return(StringClass.New(Convert.ToString(value)));

            case TypeCode.DateTime:
                return(DateClass.New((DateTime)value));

            case TypeCode.Byte:
            case TypeCode.Int16:
            case TypeCode.Int32:
            case TypeCode.Int64:
            case TypeCode.SByte:
            case TypeCode.UInt16:
            case TypeCode.UInt32:
            case TypeCode.UInt64:
            case TypeCode.Decimal:
            case TypeCode.Double:
            case TypeCode.Single:
                return(NumberClass.New(Convert.ToDouble(value)));

            case TypeCode.Object:
                return(ObjectClass.New(value));

            case TypeCode.DBNull:
            case TypeCode.Empty:
            default:
                throw new ArgumentNullException("value");
            }
        }