Example #1
0
        public override BoxedValue DefaultValue(DefaultValueHint hint)
        {
            if (hint == DefaultValueHint.None)
            {
                hint = DefaultValueHint.String;
            }

            return(base.DefaultValue(hint));
        }
Example #2
0
        public override BoxedValue DefaultValue(DefaultValueHint hint)
        {
            if (hint == DefaultValueHint.None)
            {
                hint = DefaultValueHint.String;
            }

            return base.DefaultValue(hint);
        }
Example #3
0
        public static BoxedValue ToPrimitive(object c, DefaultValueHint hint)
        {
            if (c == null)
            {
                return(BoxedValue.Box(default(object)));
            }

            return(BoxedValue.Box(c.ToString()));
        }
Example #4
0
        // Convert an object into a primitive value.
        internal static Object ToPrimitive(Object value, DefaultValueHint hint)
        {
            if (value is ScriptObject)
            {
                // Let the object handle conversion for JScript objects.
                return(((ScriptObject)value).DefaultValue(hint));
            }
            else
            {
                // Handle non-JScript objects.
                switch (hint)
                {
                case DefaultValueHint.None:
                {
                    switch (Support.TypeCodeForObject(value))
                    {
                    case TypeCode.SByte:
                    case TypeCode.Byte:
                    case TypeCode.Int16:
                    case TypeCode.UInt16:
                    case TypeCode.Int32:
                    case TypeCode.UInt32:
                    case TypeCode.Int64:
                    case TypeCode.UInt64:
                    case TypeCode.Single:
                    case TypeCode.Double:
                    case TypeCode.Decimal:
                    {
                        value = ToNumber(value);
                    }
                    break;

                    default:
                    {
                        value = ToString(value);
                    }
                    break;
                    }
                }
                break;

                case DefaultValueHint.Number:
                {
                    value = ToNumber(value);
                }
                break;

                case DefaultValueHint.String:
                case DefaultValueHint.LocaleString:
                {
                    value = ToString(value);
                }
                break;
                }
                return(value);
            }
        }
Example #5
0
        public static BoxedValue ToPrimitive(BoxedValue v, DefaultValueHint hint)
        {
            switch (v.Tag)
            {
            case TypeTags.Clr:
                return(ToPrimitive(v.Clr, hint));

            case TypeTags.Object:
            case TypeTags.Function:
                return(v.Object.DefaultValue(hint));

            case TypeTags.SuffixString:
                return(BoxedValue.Box(v.Clr.ToString()));

            default:
                return(v);
            }
        }
Example #6
0
        public virtual BoxedValue DefaultValue(DefaultValueHint hint)
        {
            BoxedValue?val;

            switch (hint)
            {
            case DefaultValueHint.String:
                val = this.TryCallMember("toString");
                if (val != null && val.Value.IsPrimitive)
                {
                    return(val.Value);
                }

                val = this.TryCallMember("valueOf");
                if (val != null && val.Value.IsPrimitive)
                {
                    return(val.Value);
                }

                return(this.Env.RaiseTypeError <BoxedValue>("Could not get the default value."));

            default:
                val = this.TryCallMember("valueOf");
                if (val != null && val.Value.IsPrimitive)
                {
                    return(val.Value);
                }

                val = this.TryCallMember("toString");
                if (val != null && val.Value.IsPrimitive)
                {
                    return(val.Value);
                }

                return(this.Env.RaiseTypeError <BoxedValue>("Could not get the default value."));
            }
        }
Example #7
0
        public static BoxedValue ToPrimitive(BoxedValue v, DefaultValueHint hint)
        {
            switch (v.Tag)
            {
                case TypeTags.Clr:
                    return ToPrimitive(v.Clr, hint);

                case TypeTags.Object:
                case TypeTags.Function:
                    return v.Object.DefaultValue(hint);

                case TypeTags.SuffixString:
                    return BoxedValue.Box(v.Clr.ToString());

                default:
                    return v;
            }
        }
Example #8
0
 public static BoxedValue ToPrimitive(bool b, DefaultValueHint hint)
 {
     return BoxedValue.Box(b);
 }
Example #9
0
 public static BoxedValue ToPrimitive(Undefined u, DefaultValueHint hint)
 {
     return(Undefined.Boxed);
 }
Example #10
0
 public static BoxedValue ToPrimitive(CommonObject o, DefaultValueHint hint)
 {
     return(o.DefaultValue(hint));
 }
Example #11
0
 public static BoxedValue ToPrimitive(string s, DefaultValueHint hint)
 {
     return(BoxedValue.Box(s));
 }
Example #12
0
 public static BoxedValue ToPrimitive(double d, DefaultValueHint hint)
 {
     return(BoxedValue.Box(d));
 }
	// Get the default value for this object.
	internal override Object DefaultValue(DefaultValueHint hint)
			{
				// TODO
				return null;
			}
Example #14
0
 // Get the default value for this object.
 internal virtual Object DefaultValue(DefaultValueHint hint)
 {
     // TODO
     return(null);
 }
Example #15
0
        public static BoxedValue ToPrimitive(object c, DefaultValueHint hint)
        {
            if (c == null)
            {
                return BoxedValue.Box(default(object));
            }

            return BoxedValue.Box(c.ToString());
        }
Example #16
0
 public static BoxedValue ToPrimitive(Undefined u, DefaultValueHint hint)
 {
     return Undefined.Boxed;
 }
Example #17
0
 public static BoxedValue ToPrimitive(ScriptObject o, DefaultValueHint hint)
 {
     return o.DefaultValue(hint);
 }
Example #18
0
 public static BoxedValue ToPrimitive(string s, DefaultValueHint hint)
 {
     return BoxedValue.Box(s);
 }
Example #19
0
 public static BoxedValue ToPrimitive(double d, DefaultValueHint hint)
 {
     return BoxedValue.Box(d);
 }
Example #20
0
 // Get the default value for this object.
 internal override Object DefaultValue(DefaultValueHint hint)
 {
     return(value);
 }
Example #21
0
 // Get the default value for this object.
 internal override Object DefaultValue(DefaultValueHint hint)
 {
     // TODO
     return(null);
 }
Example #22
0
 public static BoxedValue ToPrimitive(bool b, DefaultValueHint hint)
 {
     return(BoxedValue.Box(b));
 }
Example #23
0
	// Convert an object into a primitive value.
	internal static Object ToPrimitive(Object value, DefaultValueHint hint)
			{
				if(value is ScriptObject)
				{
					// Let the object handle conversion for JScript objects.
					return ((ScriptObject)value).DefaultValue(hint);
				}
				else
				{
					// Handle non-JScript objects.
					switch(hint)
					{
						case DefaultValueHint.None:
						{
							switch(Support.TypeCodeForObject(value))
							{
								case TypeCode.SByte:
								case TypeCode.Byte:
								case TypeCode.Int16:
								case TypeCode.UInt16:
								case TypeCode.Int32:
								case TypeCode.UInt32:
								case TypeCode.Int64:
								case TypeCode.UInt64:
								case TypeCode.Single:
								case TypeCode.Double:
								case TypeCode.Decimal:
								{
									value = ToNumber(value);
								}
								break;

								default:
								{
									value = ToString(value);
								}
								break;
							}
						}
						break;

						case DefaultValueHint.Number:
						{
							value = ToNumber(value);
						}
						break;

						case DefaultValueHint.String:
						case DefaultValueHint.LocaleString:
						{
							value = ToString(value);
						}
						break;
					}
					return value;
				}
			}
	// Get the default value for this object.
	internal override Object DefaultValue(DefaultValueHint hint)
	{
		return value;
	}
	// Get the default value for this object.
	internal virtual Object DefaultValue(DefaultValueHint hint)
			{
				// TODO
				return null;
			}