protected internal override void DefineOwnProperty(Context cx, object id, ScriptableObject desc, bool checkValid)
{
base.DefineOwnProperty(cx, id, desc, checkValid);
double d = ScriptRuntime.ToNumber(id);
int index = (int)d;
if (d != index)
{
return;
}
object value = Arg(index);
if (value == ScriptableConstants.NOT_FOUND)
{
return;
}
if (IsAccessorDescriptor(desc))
{
RemoveArg(index);
return;
}
object newValue = GetProperty(desc, "value");
if (newValue == ScriptableConstants.NOT_FOUND)
{
return;
}
ReplaceArg(index, newValue);
if (IsFalse(GetProperty(desc, "writable")))
{
RemoveArg(index);
}
}