private static CharSequence Js_slice(CharSequence target, object[] args)
{
if (args.Length != 0)
{
double begin = ScriptRuntime.ToInteger(args[0]);
double end;
int length = target.Length;
if (begin < 0)
{
begin += length;
if (begin < 0)
{
begin = 0;
}
}
else
{
if (begin > length)
{
begin = length;
}
}
if (args.Length == 1)
{
end = length;
}
else
{
end = ScriptRuntime.ToInteger(args[1]);
if (end < 0)
{
end += length;
if (end < 0)
{
end = 0;
}
}
else
{
if (end > length)
{
end = length;
}
}
if (end < begin)
{
end = begin;
}
}
return target.SubSequence((int)begin, (int)end);
}
return target;
}