public static Object unshift(Object thisob, params Object[] args) { if (args == null || args.Length == 0) { return(thisob); } if (thisob is ArrayObject) { return(((ArrayObject)thisob).Unshift(args)); } uint oldLength = Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); long newLength = oldLength + args.Length; LateBinding.SetMemberValue(thisob, "length", newLength); // shift the array for (long i = oldLength - 1; i >= 0; i--) { Object val = LateBinding.GetValueAtIndex(thisob, (ulong)i); if (val is Missing) { LateBinding.DeleteValueAtIndex(thisob, (ulong)(i + args.Length)); } else { LateBinding.SetValueAtIndex(thisob, (ulong)(i + args.Length), val); } } // copy the input args for (uint i = 0; i < args.Length; i++) { LateBinding.SetValueAtIndex(thisob, i, args[i]); } return(thisob); }
public static Object shift(Object thisob) { Object res = null; if (thisob is ArrayObject) { return(((ArrayObject)thisob).Shift()); } uint length = Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); if (length == 0) { LateBinding.SetMemberValue(thisob, "length", 0); return(res); } res = LateBinding.GetValueAtIndex(thisob, 0); for (uint i = 1; i < length; i++) { Object val = LateBinding.GetValueAtIndex(thisob, i); if (val is Missing) { LateBinding.DeleteValueAtIndex(thisob, i - 1); } else { LateBinding.SetValueAtIndex(thisob, i - 1, val); } } LateBinding.DeleteValueAtIndex(thisob, length - 1); LateBinding.SetMemberValue(thisob, "length", length - 1); return(res); }
public static object unshift(object thisob, params object[] args) { if ((args != null) && (args.Length != 0)) { if (thisob is ArrayObject) { return(((ArrayObject)thisob).Unshift(args)); } uint num = Microsoft.JScript.Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); long num2 = num + args.Length; LateBinding.SetMemberValue(thisob, "length", num2); for (long i = num - 1; i >= 0L; i -= 1L) { object valueAtIndex = LateBinding.GetValueAtIndex(thisob, (ulong)i); if (valueAtIndex is Missing) { LateBinding.DeleteValueAtIndex(thisob, (ulong)(i + args.Length)); } else { LateBinding.SetValueAtIndex(thisob, (ulong)(i + args.Length), valueAtIndex); } } for (uint j = 0; j < args.Length; j++) { LateBinding.SetValueAtIndex(thisob, (ulong)j, args[j]); } } return(thisob); }
public static object shift(object thisob) { object valueAtIndex = null; if (thisob is ArrayObject) { return(((ArrayObject)thisob).Shift()); } uint num = Microsoft.JScript.Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); if (num == 0) { LateBinding.SetMemberValue(thisob, "length", 0); return(valueAtIndex); } valueAtIndex = LateBinding.GetValueAtIndex(thisob, 0L); for (uint i = 1; i < num; i++) { object obj3 = LateBinding.GetValueAtIndex(thisob, (ulong)i); if (obj3 is Missing) { LateBinding.DeleteValueAtIndex(thisob, (ulong)(i - 1)); } else { LateBinding.SetValueAtIndex(thisob, (ulong)(i - 1), obj3); } } LateBinding.DeleteValueAtIndex(thisob, (ulong)(num - 1)); LateBinding.SetMemberValue(thisob, "length", num - 1); return(valueAtIndex); }
public static Object pop(Object thisob) { uint thisLength = Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); if (thisLength == 0) { LateBinding.SetMemberValue(thisob, "length", 0); return(null); } Object result = LateBinding.GetValueAtIndex(thisob, thisLength - 1); LateBinding.DeleteValueAtIndex(thisob, thisLength - 1); LateBinding.SetMemberValue(thisob, "length", thisLength - 1); return(result); }
public static object pop(object thisob) { uint num = Microsoft.JScript.Convert.ToUint32(LateBinding.GetMemberValue(thisob, "length")); if (num == 0) { LateBinding.SetMemberValue(thisob, "length", 0); return(null); } object valueAtIndex = LateBinding.GetValueAtIndex(thisob, (ulong)(num - 1)); LateBinding.DeleteValueAtIndex(thisob, (ulong)(num - 1)); LateBinding.SetMemberValue(thisob, "length", num - 1); return(valueAtIndex); }