public static object ElemIncrDecr(object obj, object index, Context cx, int incrDecrMask)
{
object value = GetObjectElem(obj, index, cx);
bool post = ((incrDecrMask & Node.POST_FLAG) != 0);
double number;
if (value is Number)
{
number = System.Convert.ToDouble(((Number)value));
}
else
{
number = ToNumber(value);
if (post)
{
// convert result to number
value = WrapNumber(number);
}
}
if ((incrDecrMask & Node.DECR_FLAG) == 0)
{
++number;
}
else
{
--number;
}
Number result = WrapNumber(number);
SetObjectElem(obj, index, result, cx);
if (post)
{
return value;
}
else
{
return result;
}
}