private static CharSequence Js_substr(CharSequence target, object[] args)
{
if (args.Length < 1)
{
return target;
}
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 = 0;
}
end += begin;
if (end > length)
{
end = length;
}
}
return target.SubSequence((int)begin, (int)end);
}